diff --git a/.ember-cli b/.ember-cli index ee64cfed2..8c1812cff 100644 --- a/.ember-cli +++ b/.ember-cli @@ -5,5 +5,11 @@ Setting `disableAnalytics` to true will prevent any data from being sent. */ - "disableAnalytics": false + "disableAnalytics": false, + + /** + Setting `isTypeScriptProject` to true will force the blueprint generators to generate TypeScript + rather than JavaScript by default, when a TypeScript version of a given blueprint is available. + */ + "isTypeScriptProject": false } diff --git a/.eslintignore b/.eslintignore index b6c5918c8..d474a40bd 100644 --- a/.eslintignore +++ b/.eslintignore @@ -19,4 +19,7 @@ # ember-try /.node_modules.ember-try/ /bower.json.ember-try -/package.json.ember-try \ No newline at end of file +/npm-shrinkwrap.json.ember-try +/package.json.ember-try +/package-lock.json.ember-try +/yarn.lock.ember-try diff --git a/.eslintrc.js b/.eslintrc.js index 351c1bdd9..84a88e07f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,28 +1,29 @@ -'use strict'; - module.exports = { root: true, - parser: 'babel-eslint', parserOptions: { - ecmaVersion: 2018, + parser: '@babel/eslint-parser', + ecmaVersion: 'latest', sourceType: 'module', - ecmaFeatures: { - legacyDecorators: true - } + requireConfigFile: false, + babelOptions: { + plugins: [ + ['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }], + ], + }, }, - plugins: [ - 'ember' - ], + plugins: ['ember', 'decorator-position'], extends: [ 'eslint:recommended', 'airbnb-base', - 'plugin:ember-best-practices/recommended', + 'plugin:ember/recommended', + 'plugin:decorator-position/ember', + 'plugin:prettier/recommended', ], env: { browser: true, }, - globals:{ - '$': true, + globals: { + $: true, d3: true, }, rules: { @@ -34,40 +35,54 @@ module.exports = { 'space-before-function-paren': 0, 'prefer-arrow-callback': 0, 'no-underscore-dangle': 0, - 'camelcase': 0, + camelcase: 0, 'class-methods-use-this': 0, 'max-len': 0, 'no-param-reassign': 0, - 'ember/avoid-leaking-state-in-ember-objects': 0, - 'ember-best-practices/require-dependent-keys': 0, 'no-undef': 0, + 'ember/no-classic-components': 'warn', + 'ember/no-classic-classes': 'warn', + 'ember/no-get': 'warn', + 'ember/no-actions-hash': 'warn', + 'ember/require-tagless-components': 'warn', + 'ember/no-observers': 'warn', + 'ember/classic-decorator-no-classic-methods': 'warn', + 'ember/classic-decorator-hooks': 'warn', + 'ember/no-component-lifecycle-hooks': 'warn', + 'ember/no-empty-glimmer-component-classes': 'warn', + 'ember/require-computed-macros': 'warn', + 'ember/no-computed-properties-in-native-classes': 'warn', + 'ember/no-legacy-test-waiters': 'warn', + 'ember/no-mixins': 'warn', + 'ember/no-new-mixins': 'warn', + 'ember/avoid-leaking-state-in-ember-objects': 'warn', + 'ember/no-incorrect-calls-with-inline-anonymous-functions': 'warn', + 'max-classes-per-file': 0, + 'decorator-position/decorator-position': 0, }, overrides: [ // node files { files: [ - '.eslintrc.js', - '.template-lintrc.js', - 'ember-cli-build.js', - 'testem.js', - 'blueprints/*/index.js', - 'config/**/*.js', - 'lib/*/index.js' + './.eslintrc.js', + './.prettierrc.js', + './.stylelintrc.js', + './.template-lintrc.js', + './ember-cli-build.js', + './testem.js', + './blueprints/*/index.js', + './config/**/*.js', + './lib/*/index.js', + './server/**/*.js', ], parserOptions: { - sourceType: 'script' + sourceType: 'script', }, env: { browser: false, - node: true + node: true, }, - plugins: ['node'], - extends: ['plugin:node/recommended'], - rules: { - // this can be removed once the following is fixed - // https://github.com/mysticatea/eslint-plugin-node/issues/77 - 'node/no-unpublished-require': 'off' - } - } - ] + extends: ['plugin:n/recommended'], + }, + ], }; diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..5c4bfe166 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,47 @@ +name: CI + +on: + push: + branches: + - main + - master + pull_request: {} + +concurrency: + group: ci-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: "Lint" + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v3 + - name: Install Node + uses: actions/setup-node@v3 + with: + node-version: 18.x + cache: yarn + - name: Install Dependencies + run: yarn install --frozen-lockfile + - name: Lint + run: yarn lint + + test: + name: "Test" + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v3 + - name: Install Node + uses: actions/setup-node@v3 + with: + node-version: 18.x + cache: yarn + - name: Install Dependencies + run: yarn install --frozen-lockfile + - name: Run Tests + run: yarn test diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1d5272253..fac056e71 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: install dependencies run: yarn install --frozen-lockfile --non-interactive - name: test diff --git a/.gitignore b/.gitignore index 413c67967..a30d2b21a 100644 --- a/.gitignore +++ b/.gitignore @@ -25,7 +25,13 @@ development.env # ember-try /.node_modules.ember-try/ /bower.json.ember-try +/npm-shrinkwrap.json.ember-try /package.json.ember-try .eslintcache .yalc +/package-lock.json.ember-try +/yarn.lock.ember-try + +# broccoli-debug +/DEBUG/ diff --git a/.nvmrc b/.nvmrc index d9289897d..3c79f30ec 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -16.15.1 +18.16.0 \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 922165552..4178fd571 100644 --- a/.prettierignore +++ b/.prettierignore @@ -14,8 +14,12 @@ /coverage/ !.* .eslintcache +.lint-todo/ # ember-try /.node_modules.ember-try/ /bower.json.ember-try +/npm-shrinkwrap.json.ember-try /package.json.ember-try +/package-lock.json.ember-try +/yarn.lock.ember-try diff --git a/.prettierrc.js b/.prettierrc.js index 534e6d35a..959bd58ac 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,5 +1,10 @@ -'use strict'; - module.exports = { - singleQuote: true, + overrides: [ + { + files: '*.{js,ts}', + options: { + singleQuote: true, + }, + }, + ], }; diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 000000000..a0cf71cbd --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,8 @@ +# unconventional files +/blueprints/*/files/ + +# compiled output +/dist/ + +# addons +/.node_modules.ember-try/ diff --git a/.stylelintrc.js b/.stylelintrc.js new file mode 100644 index 000000000..99fbd8cd7 --- /dev/null +++ b/.stylelintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ['stylelint-config-standard', 'stylelint-prettier/recommended'], +}; diff --git a/.template-lintrc.js b/.template-lintrc.js index f35f61c7b..4a9912677 100644 --- a/.template-lintrc.js +++ b/.template-lintrc.js @@ -1,5 +1,16 @@ -'use strict'; - module.exports = { extends: 'recommended', + rules: { + 'no-inline-styles': false, + 'no-curly-component-invocation': false, + 'no-action': false, + 'no-yield-only': false, + 'require-presentational-children': false, + 'no-invalid-interactive': false, + 'no-unused-block-params': false, + 'no-negated-condition': false, + 'link-href-attributes': false, + 'no-nested-interactive': false, + 'require-input-label': false, + }, }; diff --git a/app/adapters/application.js b/app/adapters/application.js index 2dbb25fdf..d75499ac7 100644 --- a/app/adapters/application.js +++ b/app/adapters/application.js @@ -1,4 +1,3 @@ -import DS from 'ember-data'; +import JSONAPIAdapter from '@ember-data/adapter/json-api'; -export default DS.JSONAPIAdapter.extend({ -}); +export default JSONAPIAdapter.extend({}); diff --git a/app/adapters/bookmark.js b/app/adapters/bookmark.js index 9c79888b6..cbe32f87e 100644 --- a/app/adapters/bookmark.js +++ b/app/adapters/bookmark.js @@ -1 +1,3 @@ -export { default } from 'ember-local-storage/adapters/adapter'; +import LocalAdapter from 'ember-local-storage/adapters/adapter'; + +export default LocalAdapter; diff --git a/app/adapters/commercial-overlay.js b/app/adapters/commercial-overlay.js index 7cef08659..0842cc705 100644 --- a/app/adapters/commercial-overlay.js +++ b/app/adapters/commercial-overlay.js @@ -1,7 +1,7 @@ import { buildSqlUrl } from '../utils/carto'; import CartoGeojsonFeatureAdapter from './carto-geojson-feature'; -const SQL = function(id) { +const SQL = function (id) { return `SELECT * FROM ( SELECT ST_CollectionExtract(ST_Collect(the_geom),3) as the_geom, overlay as id, @@ -13,9 +13,6 @@ const SQL = function(id) { export default CartoGeojsonFeatureAdapter.extend({ urlForFindRecord(id) { - return buildSqlUrl( - SQL(id), - 'geojson', - ); + return buildSqlUrl(SQL(id), 'geojson'); }, }); diff --git a/app/adapters/layer.js b/app/adapters/layer.js index 3219b2eb1..879035664 100644 --- a/app/adapters/layer.js +++ b/app/adapters/layer.js @@ -1,4 +1,3 @@ import ApplicationAdapter from './application'; -export default ApplicationAdapter.extend({ -}); +export default ApplicationAdapter.extend({}); diff --git a/app/adapters/lot.js b/app/adapters/lot.js index 81faa2a21..8df2c31c6 100644 --- a/app/adapters/lot.js +++ b/app/adapters/lot.js @@ -48,7 +48,7 @@ const LotColumnsSQL = [ 'LOWER(zonemap) AS zonemap', ]; -export const cartoQueryTemplate = function(id) { +export const cartoQueryTemplate = function (id) { return `SELECT ${LotColumnsSQL.join(',')}, /* id:${id} */ st_x(st_centroid(the_geom)) as lon, st_y(st_centroid(the_geom)) as lat, @@ -64,9 +64,6 @@ export default CartoGeojsonFeatureAdapter.extend({ return this._super(status, headers, payload, requestData); }, urlForFindRecord(id) { - return buildSqlUrl( - cartoQueryTemplate(id), - 'geojson', - ); + return buildSqlUrl(cartoQueryTemplate(id), 'geojson'); }, }); diff --git a/app/adapters/special-purpose-district.js b/app/adapters/special-purpose-district.js index b2204a457..0a9e1e877 100644 --- a/app/adapters/special-purpose-district.js +++ b/app/adapters/special-purpose-district.js @@ -1,7 +1,7 @@ import { buildSqlUrl } from '../utils/carto'; import CartoGeojsonFeatureAdapter from './carto-geojson-feature'; -const SQL = function(id) { +const SQL = function (id) { return `SELECT cartodb_id as id, cartodb_id, the_geom, @@ -13,9 +13,6 @@ const SQL = function(id) { export default CartoGeojsonFeatureAdapter.extend({ urlForFindRecord(id) { - return buildSqlUrl( - SQL(id), - 'geojson', - ); + return buildSqlUrl(SQL(id), 'geojson'); }, }); diff --git a/app/adapters/special-purpose-subdistrict.js b/app/adapters/special-purpose-subdistrict.js index d0c4bd743..1e1d24502 100644 --- a/app/adapters/special-purpose-subdistrict.js +++ b/app/adapters/special-purpose-subdistrict.js @@ -1,7 +1,7 @@ import { buildSqlUrl } from '../utils/carto'; import CartoGeojsonFeatureAdapter from './carto-geojson-feature'; -const SQL = function(id) { +const SQL = function (id) { return `SELECT cartodb_id as id, cartodb_id, @@ -15,9 +15,6 @@ const SQL = function(id) { export default CartoGeojsonFeatureAdapter.extend({ urlForFindRecord(id) { - return buildSqlUrl( - SQL(id), - 'geojson', - ); + return buildSqlUrl(SQL(id), 'geojson'); }, }); diff --git a/app/adapters/zoning-district.js b/app/adapters/zoning-district.js index a6e87010b..2e0f85a6e 100644 --- a/app/adapters/zoning-district.js +++ b/app/adapters/zoning-district.js @@ -1,7 +1,7 @@ import { buildSqlUrl } from '../utils/carto'; import CartoGeojsonFeatureAdapter from './carto-geojson-feature'; -const SQL = function(id) { +const SQL = function (id) { return `SELECT * FROM ( SELECT ST_CollectionExtract(ST_Collect(the_geom),3) as the_geom, @@ -15,9 +15,6 @@ const SQL = function(id) { export default CartoGeojsonFeatureAdapter.extend({ urlForFindRecord(id) { - return buildSqlUrl( - SQL(id), - 'geojson', - ); + return buildSqlUrl(SQL(id), 'geojson'); }, }); diff --git a/app/adapters/zoning-map-amendment.js b/app/adapters/zoning-map-amendment.js index 2ad874e62..7bd56f0b1 100644 --- a/app/adapters/zoning-map-amendment.js +++ b/app/adapters/zoning-map-amendment.js @@ -1,7 +1,7 @@ import { buildSqlUrl } from '../utils/carto'; import CartoGeojsonFeatureAdapter from './carto-geojson-feature'; -const SQL = function(ulurpno) { +const SQL = function (ulurpno) { return `SELECT the_geom, ulurpno, ulurpno as id, @@ -15,9 +15,6 @@ const SQL = function(ulurpno) { export default CartoGeojsonFeatureAdapter.extend({ urlForFindRecord(id) { - return buildSqlUrl( - SQL(id), - 'geojson', - ); + return buildSqlUrl(SQL(id), 'geojson'); }, }); diff --git a/app/app.js b/app/app.js index ec3e2372f..441bcca0e 100644 --- a/app/app.js +++ b/app/app.js @@ -1,4 +1,5 @@ import Application from '@ember/application'; +import Ember from 'ember'; import Resolver from 'ember-resolver'; import loadInitializers from 'ember-load-initializers'; import 'ember-concurrency-retryable'; diff --git a/app/components/bookmarks/bookmark-button.js b/app/components/bookmarks/bookmark-button.js index ec1d793f3..60081af45 100644 --- a/app/components/bookmarks/bookmark-button.js +++ b/app/components/bookmarks/bookmark-button.js @@ -5,11 +5,9 @@ import { inject as service } from '@ember/service'; export default class BookmarkButton extends Component { bookmarkableModel = null; - @service - store; + @service store; - @service - metrics; + @service metrics; // we don't know what kind of model this is // we only know that it's bookmarkable @@ -44,7 +42,7 @@ export default class BookmarkButton extends Component { }); // GA - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'Bookmark', action: 'Used Bookmark', name: 'Used Bookmark', @@ -52,8 +50,10 @@ export default class BookmarkButton extends Component { const { bookmarkableModel } = this; - await this.store.createRecord('bookmark', { - bookmark: bookmarkableModel, - }).save(); + await this.store + .createRecord('bookmark', { + bookmark: bookmarkableModel, + }) + .save(); } } diff --git a/app/components/bookmarks/types/-default.js b/app/components/bookmarks/types/-default.js index 9e803d2d3..837d192de 100644 --- a/app/components/bookmarks/types/-default.js +++ b/app/components/bookmarks/types/-default.js @@ -4,8 +4,7 @@ import { inject as service } from '@ember/service'; import layout from '../../../templates/components/bookmarks/types/-default'; export default class DefaultBookmark extends Component { - @service - metrics; + @service metrics; layout = layout; @@ -20,7 +19,7 @@ export default class DefaultBookmark extends Component { event_category: 'Bookmark', event_action: 'Deleted Bookmark', }); - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'Bookmark', action: 'Delete', name: 'Deleted Bookmark', @@ -35,7 +34,7 @@ export default class DefaultBookmark extends Component { }); // GA - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'Download', action: `Downloaded Bookmark as ${format}`, name: 'Export', diff --git a/app/components/bookmarks/types/commercial-overlay.js b/app/components/bookmarks/types/commercial-overlay.js index 27db1c321..edcb81e78 100644 --- a/app/components/bookmarks/types/commercial-overlay.js +++ b/app/components/bookmarks/types/commercial-overlay.js @@ -1 +1,3 @@ -export { default } from './-default'; +import DefaultBookmark from './-default'; + +export default DefaultBookmark; diff --git a/app/components/bookmarks/types/lot.js b/app/components/bookmarks/types/lot.js index 27db1c321..edcb81e78 100644 --- a/app/components/bookmarks/types/lot.js +++ b/app/components/bookmarks/types/lot.js @@ -1 +1,3 @@ -export { default } from './-default'; +import DefaultBookmark from './-default'; + +export default DefaultBookmark; diff --git a/app/components/bookmarks/types/special-purpose-district.js b/app/components/bookmarks/types/special-purpose-district.js index 27db1c321..edcb81e78 100644 --- a/app/components/bookmarks/types/special-purpose-district.js +++ b/app/components/bookmarks/types/special-purpose-district.js @@ -1 +1,3 @@ -export { default } from './-default'; +import DefaultBookmark from './-default'; + +export default DefaultBookmark; diff --git a/app/components/bookmarks/types/special-purpose-subdistrict.js b/app/components/bookmarks/types/special-purpose-subdistrict.js index 27db1c321..edcb81e78 100644 --- a/app/components/bookmarks/types/special-purpose-subdistrict.js +++ b/app/components/bookmarks/types/special-purpose-subdistrict.js @@ -1 +1,3 @@ -export { default } from './-default'; +import DefaultBookmark from './-default'; + +export default DefaultBookmark; diff --git a/app/components/bookmarks/types/zoning-district.js b/app/components/bookmarks/types/zoning-district.js index 27db1c321..edcb81e78 100644 --- a/app/components/bookmarks/types/zoning-district.js +++ b/app/components/bookmarks/types/zoning-district.js @@ -1 +1,3 @@ -export { default } from './-default'; +import DefaultBookmark from './-default'; + +export default DefaultBookmark; diff --git a/app/components/bookmarks/types/zoning-map-amendment.js b/app/components/bookmarks/types/zoning-map-amendment.js index 27db1c321..edcb81e78 100644 --- a/app/components/bookmarks/types/zoning-map-amendment.js +++ b/app/components/bookmarks/types/zoning-map-amendment.js @@ -1 +1,3 @@ -export { default } from './-default'; +import DefaultBookmark from './-default'; + +export default DefaultBookmark; diff --git a/app/components/carto-data-provider.js b/app/components/carto-data-provider.js index ebbc87aff..caa5d5da3 100644 --- a/app/components/carto-data-provider.js +++ b/app/components/carto-data-provider.js @@ -1,18 +1,17 @@ import Component from '@ember/component'; -import { keepLatestTask } from 'ember-concurrency-decorators'; +import { keepLatestTask } from 'ember-concurrency'; import { inject as service } from '@ember/service'; import { computed } from '@ember/object'; import { DelayPolicy } from 'ember-concurrency-retryable'; -import DS from 'ember-data'; +import AdapterError from '@ember-data/adapter/error'; const delayRetryPolicy = new DelayPolicy({ delay: [1000, 2000], - reasons: [DS.AdapterError], + reasons: [AdapterError], }); export default class CartoDataProvider extends Component { - @service - store; + @service store; modelName = 'carto-geojson-feature'; @@ -23,7 +22,7 @@ export default class CartoDataProvider extends Component { return yield this.store.findRecord(this.modelName, this.modelId); }; - @computed('modelName', 'modelId') + @computed('findRecordTask', 'modelId', 'modelName') get taskInstance() { return this.findRecordTask.perform(); } diff --git a/app/components/grouped-checkboxes.js b/app/components/grouped-checkboxes.js index d81f1062b..5d2715350 100644 --- a/app/components/grouped-checkboxes.js +++ b/app/components/grouped-checkboxes.js @@ -9,29 +9,27 @@ export default class GroupedCheckboxesComponent extends Component { group; - selectionChanged = () => {} + selectionChanged = () => {}; @computed('group.codes.length') get hasMany() { - return (this.get('group.codes.length') > 1); + return this.get('group.codes.length') > 1; } - @intersect('selected', 'group.codes') - selectedInGroup; + @intersect('selected', 'group.codes') selectedInGroup; @computed('selectedInGroup', 'group', 'selected') get isIndeterminateGroup() { - const { - selectedInGroup, - group, - } = this; + const { selectedInGroup, group } = this; - return (selectedInGroup.length > 0) && (selectedInGroup.length < group.codes.length); + return ( + selectedInGroup.length > 0 && selectedInGroup.length < group.codes.length + ); } @action addOrRemoveMultiple(needles, haystack) { - if (haystack.any(hay => needles.includes(hay))) { + if (haystack.some((hay) => needles.includes(hay))) { haystack.removeObjects(needles); } else { haystack.pushObjects(needles); diff --git a/app/components/intersecting-layers.js b/app/components/intersecting-layers.js index 176aa5bce..ea1afd86b 100644 --- a/app/components/intersecting-layers.js +++ b/app/components/intersecting-layers.js @@ -1,10 +1,10 @@ -import Component from '@ember/component'; +import Component from '@glimmer/component'; import { get, computed } from '@ember/object'; import RSVP from 'rsvp'; import { task } from 'ember-concurrency'; import carto from '../utils/carto'; -const generateSQL = function(table, bbl) { +const generateSQL = function (table, bbl) { // special handling for tables where we don't want to SELECT * let intersectionTable = table; if (table === 'floodplain_firm2007') { @@ -31,48 +31,63 @@ const generateSQL = function(table, bbl) { }; export default class IntersectingLayersComponent extends Component { - responseIdentifier = 'intersects'; + responseIdentifier = 'intersects'; - bbl = null; + bbl = null; - @task(function* (tables, bbl, responseIdentifier) { - const hash = {}; + @task + *calculateIntersections(tables, bbl, responseIdentifier) { + const hash = {}; - tables.forEach((table) => { - hash[table] = carto.SQL(generateSQL(table, bbl)) - .then((response => get(response[0] || {}, responseIdentifier))); - }); + tables.forEach((table) => { + hash[table] = carto + .SQL(generateSQL(table, bbl)) + .then((response) => get(response[0] || {}, responseIdentifier)); + }); - return yield RSVP.hash(hash); - }) - calculateIntersections; - - willDestroyElement() { - this.get('calculateIntersections').cancelAll(); - } + return yield RSVP.hash(hash); + } - willUpdate() { - this.get('calculateIntersections').cancelAll(); - } + // todo use render modifiers + willDestroyElement(...args) { + super.willDestroyElement(...args); + this.calculateIntersections.cancelAll(); + } - @computed('tables.@each', 'bbl', 'responseIdentifier') - get intersectingLayers() { - const { tables, bbl, responseIdentifier } = this.getProperties('tables', 'bbl', 'responseIdentifier'); - return this.get('calculateIntersections').perform(tables, bbl, responseIdentifier); - } + willUpdate(...args) { + super.willUpdate(...args); + this.calculateIntersections.cancelAll(); + } - @computed('intersectingLayers.value') - get numberIntersecting() { - const intersectingLayers = this.get('intersectingLayers.value'); + @computed( + 'args', + 'bbl', + 'calculateIntersections', + 'responseIdentifier', + 'tables.[]' + ) + get intersectingLayers() { + const { tables, bbl } = this.args; + + return this.calculateIntersections.perform( + tables, + bbl, + this.responseIdentifier + ); + } - if (intersectingLayers) { - const truthyValues = Object - .values(intersectingLayers) - .filter(val => val); + @computed('intersectingLayers.value') + get numberIntersecting() { + const intersectingLayers = this.intersectingLayers.value; - return get(truthyValues, 'length'); - } + if (intersectingLayers) { + const truthyValues = Object.values(intersectingLayers).filter( + (val) => val + ); - return 0; + return truthyValues.length; } + + return 0; + } } diff --git a/app/components/labs-map.js b/app/components/labs-map.js index ed92bd4ac..4c726baaa 100644 --- a/app/components/labs-map.js +++ b/app/components/labs-map.js @@ -1,6 +1,5 @@ import mapboxGlMap from 'ember-mapbox-gl/components/mapbox-gl'; import { assign } from '@ember/polyfills'; -import { get } from '@ember/object'; import { computed, action } from '@ember/object'; import layout from '../templates/components/labs-map'; @@ -24,7 +23,6 @@ const highlightedCircleFeatureLayer = { }, }; - const highlightedLineFeatureLayer = { id: 'highlighted-feature-line', source: 'hovered-feature', @@ -68,14 +66,12 @@ export default class LabsMap extends mapboxGlMap { super.init(...args); // if layerGroups are passed to the map, use the style from that - if (this.get('layerGroups')) { + if (this.layerGroups) { const { - meta: { - mapboxStyle - } - } = this.get('layerGroups') || {}; + meta: { mapboxStyle }, + } = this.layerGroups || {}; - if (mapboxStyle) assign(get(this, 'initOptions') || {}, { style: mapboxStyle }); + if (mapboxStyle) assign(this.initOptions || {}, { style: mapboxStyle }); } } @@ -83,7 +79,7 @@ export default class LabsMap extends mapboxGlMap { @computed('hoveredFeature') get hoveredFeatureSource() { - const feature = this.get('hoveredFeature'); + const feature = this.hoveredFeature; return { type: 'geojson', @@ -92,7 +88,9 @@ export default class LabsMap extends mapboxGlMap { } hoveredFeature = null; + highlightedCircleFeatureLayer = highlightedCircleFeatureLayer; + highlightedLineFeatureLayer = highlightedLineFeatureLayer; /** @@ -111,8 +109,7 @@ export default class LabsMap extends mapboxGlMap { @action _onLoad(map) { // add source for highlighted-feature - map - .addSource('hovered-feature', this.get('hoveredFeatureSource')); + map.addSource('hovered-feature', this.hoveredFeatureSource); map.addLayer(this.highlightedLineFeatureLayer); map.addLayer(this.highlightedCircleFeatureLayer); diff --git a/app/components/labs-ui-overrides/layer-group-toggle.js b/app/components/labs-ui-overrides/layer-group-toggle.js index 92bbb308c..865130267 100644 --- a/app/components/labs-ui-overrides/layer-group-toggle.js +++ b/app/components/labs-ui-overrides/layer-group-toggle.js @@ -5,11 +5,9 @@ import { inject as service } from '@ember/service'; import layout from '../../templates/components/labs-ui-overrides/layer-group-toggle'; export default class LayerGroupToggle extends Component { - @service - fastboot; + @service fastboot; - @service - metrics; + @service metrics; // ember component class options classNames = ['layer-group-toggle']; @@ -19,13 +17,14 @@ export default class LayerGroupToggle extends Component { layout = layout; init(...args) { - super.init(...args); + super.init(args); - this.get('didInit')(this); + this.didInit(this); } - willDestroy() { - this.get('willDestroyHook')(this); + willDestroy(...args) { + super.willDestroy(args); + this.willDestroyHook(this); } // main layerGroup @@ -42,20 +41,15 @@ export default class LayerGroupToggle extends Component { // property bindings from the layer group // includes: label, tooltip, infolink, icon, active - @alias('layerGroup.legend.label') - label = ''; + @alias('layerGroup.legend.label') label = ''; - @alias('layerGroup.legend.tooltip') - tooltip = ''; + @alias('layerGroup.legend.tooltip') tooltip = ''; - @alias('layerGroup.legend.infolink') - infolink = ''; + @alias('layerGroup.legend.infolink') infolink = ''; - @alias('layerGroup.legend.icon') - icon = []; + @alias('layerGroup.legend.icon') icon = []; - @alias('layerGroup.visible') - active = true; + @alias('layerGroup.visible') active = true; // additional options infoLinkIcon = 'external-link-alt'; @@ -88,7 +82,7 @@ export default class LayerGroupToggle extends Component { }); // GA - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'External Link', action: 'Clicked Supporting Zoning Link', name: `Clicked ${label} Link`, diff --git a/app/components/layer-control-timeline.js b/app/components/layer-control-timeline.js index d74e4a0df..0d2efa80b 100644 --- a/app/components/layer-control-timeline.js +++ b/app/components/layer-control-timeline.js @@ -1,12 +1,12 @@ import Component from '@ember/component'; -import { ChildMixin } from 'ember-composability-tools'; +import { action } from '@ember/object'; const defaultMax = new Date(); const defaultStart = [220924800, defaultMax.getTime()]; function formatDate(date) { const d = new Date(date); - let month = `${(d.getMonth() + 1)}`; + let month = `${d.getMonth() + 1}`; const year = d.getFullYear(); if (month.length < 2) month = `0${month}`; @@ -14,29 +14,32 @@ function formatDate(date) { return [year, month].join('-'); } -export default Component.extend(ChildMixin, { - format: { - to: number => formatDate(number), - from: number => formatDate(number), - }, +export default class LayerControlTimelineComponent extends Component { + layerGroup; - column: '', - start: defaultStart, // epoch time - min: defaultStart[0], - max: defaultStart[1], + column = ''; - actions: { - sliderChanged(value) { - const [min, max] = value; - const { layerGroup, column } = this; + format = { + to: (number) => formatDate(number), + from: (number) => formatDate(number), + }; - this.set('start', value); + start = defaultStart; - const expression = ['all', ['>=', column, min], ['<=', column, max]]; + min = defaultStart[0]; - layerGroup.layerIds.forEach((id) => { - layerGroup.setFilterForLayer(id, expression); - }); - }, - }, -}); + max = defaultStart[1]; + + @action + sliderChanged(value) { + const [min, max] = value; + const { layerGroup, column } = this; + this.set('start', value); + + const expression = ['all', ['>=', column, min], ['<=', column, max]]; + + layerGroup.layerIds.forEach((id) => { + layerGroup.setFilterForLayer(id, expression); + }); + } +} diff --git a/app/components/layer-palette.js b/app/components/layer-palette.js index 68bd0fa94..7a4e6ae41 100644 --- a/app/components/layer-palette.js +++ b/app/components/layer-palette.js @@ -15,11 +15,9 @@ const { @classNames('layer-palette') export default class LayerPaletteComponent extends Component { - @service - metrics; + @service metrics; - @service - fastboot; + @service fastboot; init(...args) { super.init(...args); @@ -31,8 +29,7 @@ export default class LayerPaletteComponent extends Component { this.setFilterForCouncilDistricts(); } - @service - mainMap + @service mainMap; zoomWarningLabel = 'Some information may not be visible at this zoom level.'; @@ -70,20 +67,25 @@ export default class LayerPaletteComponent extends Component { handleLayerGroupChange = () => {}; - toggled = () => this.cityCouncilToggled = !this.cityCouncilToggled; + toggled = () => { + this.cityCouncilToggled = !this.cityCouncilToggled; + }; @action setFilterForZoning() { const expression = [ 'any', - ...this.selectedZoning.map(value => ['==', 'primaryzone', value]), + ...this.selectedZoning.map((value) => ['==', 'primaryzone', value]), ]; // if-guard to prevent the node-based fastboot server from running this // mapbox-gl method which gets ignored in fastboot. if (!this.fastboot.isFastBoot) { next(() => { - this.layerGroups['zoning-districts'].setFilterForLayer('zd-fill', expression); + this.layerGroups['zoning-districts'].setFilterForLayer( + 'zd-fill', + expression + ); }); } } @@ -92,14 +94,20 @@ export default class LayerPaletteComponent extends Component { setFilterForOverlays() { const expression = [ 'any', - ...this.selectedOverlays.map(value => ['==', 'overlay', value]), + ...this.selectedOverlays.map((value) => ['==', 'overlay', value]), ]; // if-guard to prevent the node-based fastboot server from running this // mapbox-gl method which gets ignored in fastboot. if (!this.fastboot.isFastBoot) { next(() => { - this.layerGroups['commercial-overlays'].setFilterForLayer('co', expression); - this.layerGroups['commercial-overlays'].setFilterForLayer('co_labels', expression); + this.layerGroups['commercial-overlays'].setFilterForLayer( + 'co', + expression + ); + this.layerGroups['commercial-overlays'].setFilterForLayer( + 'co_labels', + expression + ); }); } } @@ -108,7 +116,7 @@ export default class LayerPaletteComponent extends Component { setFilterForCouncilDistricts() { const expression = [ 'any', - ...this.selectedCouncilDistricts.map(value => ['==', 'year', value]), + ...this.selectedCouncilDistricts.map((value) => ['==', 'year', value]), ]; this.toggled(); @@ -116,9 +124,18 @@ export default class LayerPaletteComponent extends Component { // mapbox-gl method which gets ignored in fastboot. if (!this.fastboot.isFastBoot) { next(() => { - this.layerGroups['nyc-council-districts-combined'].setFilterForLayer('dcp_city_council_districts_combined-line-glow', expression); - this.layerGroups['nyc-council-districts-combined'].setFilterForLayer('dcp_city_council_districts_combined-line', expression); - this.layerGroups['nyc-council-districts-combined'].setFilterForLayer('dcp_city_council_districts_combined-label', expression); + this.layerGroups['nyc-council-districts-combined'].setFilterForLayer( + 'dcp_city_council_districts_combined-line-glow', + expression + ); + this.layerGroups['nyc-council-districts-combined'].setFilterForLayer( + 'dcp_city_council_districts_combined-line', + expression + ); + this.layerGroups['nyc-council-districts-combined'].setFilterForLayer( + 'dcp_city_council_districts_combined-label', + expression + ); }); } } @@ -127,14 +144,17 @@ export default class LayerPaletteComponent extends Component { setFilterForFirm() { const expression = [ 'any', - ...this.selectedFirm.map(value => ['==', 'fld_zone', value]), + ...this.selectedFirm.map((value) => ['==', 'fld_zone', value]), ]; // if-guard to prevent the node-based fastboot server from running this // mapbox-gl method which gets ignored in fastboot. if (!this.fastboot.isFastBoot) { next(() => { - this.layerGroups['floodplain-efirm2007'].setFilterForLayer('effective-flood-insurance-rate-2007', expression); + this.layerGroups['floodplain-efirm2007'].setFilterForLayer( + 'effective-flood-insurance-rate-2007', + expression + ); }); } } @@ -143,14 +163,17 @@ export default class LayerPaletteComponent extends Component { setFilterForPfirm() { const expression = [ 'any', - ...this.selectedPfirm.map(value => ['==', 'fld_zone', value]), + ...this.selectedPfirm.map((value) => ['==', 'fld_zone', value]), ]; // if-guard to prevent the node-based fastboot server from running this // mapbox-gl method which gets ignored in fastboot. if (!this.fastboot.isFastBoot) { next(() => { - this.layerGroups['floodplain-pfirm2015'].setFilterForLayer('preliminary-flood-insurance-rate', expression); + this.layerGroups['floodplain-pfirm2015'].setFilterForLayer( + 'preliminary-flood-insurance-rate', + expression + ); }); } } @@ -171,14 +194,18 @@ export default class LayerPaletteComponent extends Component { handleLayerGroupToggle(layerGroup) { gtag('event', 'toggle_layer', { event_category: 'Layers', - event_action: `${ layerGroup.visible ? 'Turned on' : 'Turned off' } ${ layerGroup.legend.label }`, + event_action: `${layerGroup.visible ? 'Turned on' : 'Turned off'} ${ + layerGroup.legend.label + }`, }); // GA - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'Layers', - action: `${ layerGroup.visible ? 'Turned on' : 'Turned off' } ${ layerGroup.legend.label }`, - name: `${ layerGroup.legend.label }`, + action: `${layerGroup.visible ? 'Turned on' : 'Turned off'} ${ + layerGroup.legend.label + }`, + name: `${layerGroup.legend.label}`, }); this.handleLayerGroupChange(); } diff --git a/app/components/layer-record-views/-base.js b/app/components/layer-record-views/-base.js index e852cbd9d..e3bfd1a34 100644 --- a/app/components/layer-record-views/-base.js +++ b/app/components/layer-record-views/-base.js @@ -3,8 +3,7 @@ import { action } from '@ember/object'; import { inject as service } from '@ember/service'; export default class LayerRecordBase extends Component { - @service - metrics; + @service metrics; model = {}; @@ -15,7 +14,7 @@ export default class LayerRecordBase extends Component { event_action: `Clicked ${label} Link`, }); // GA - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'External Link', action: 'Clicked External Link', name: `Clicked ${label} Link`, diff --git a/app/components/layer-record-views/special-purpose-district.js b/app/components/layer-record-views/special-purpose-district.js index ff9bb917c..6794a82a2 100644 --- a/app/components/layer-record-views/special-purpose-district.js +++ b/app/components/layer-record-views/special-purpose-district.js @@ -1,3 +1,14 @@ +import config from 'labs-zola/config/environment'; import LayerRecordComponent from './-base'; -export default LayerRecordComponent; +const { specialDistrictCrosswalk } = config; + +export default class SpecialPurposeDistrictRecordComponent extends LayerRecordComponent { + get readMoreLink() { + const name = this.model.sdname; + const [, [anchorName, boroName]] = specialDistrictCrosswalk.find( + ([dist]) => dist === name + ) || [[], []]; + return `https://www1.nyc.gov/site/planning/zoning/districts-tools/special-purpose-districts-${boroName}.page#${anchorName}`; + } +} diff --git a/app/components/layer-record-views/special-purpose-subdistrict.js b/app/components/layer-record-views/special-purpose-subdistrict.js index ff9bb917c..236e70d74 100644 --- a/app/components/layer-record-views/special-purpose-subdistrict.js +++ b/app/components/layer-record-views/special-purpose-subdistrict.js @@ -1,3 +1,15 @@ +import config from 'labs-zola/config/environment'; import LayerRecordComponent from './-base'; -export default LayerRecordComponent; +const { specialDistrictCrosswalk } = config; + +export default class SpecialPurposeDistrictRecordComponent extends LayerRecordComponent { + get readMoreLink() { + const name = this.model.sdname; + const [, [anchorName, boroName]] = specialDistrictCrosswalk.find( + ([dist]) => dist === name + ) || [[], []]; + + return `https://www1.nyc.gov/site/planning/zoning/districts-tools/special-purpose-districts-${boroName}.page#${anchorName}`; + } +} diff --git a/app/components/layer-record-views/tax-lot.js b/app/components/layer-record-views/tax-lot.js index ff9bb917c..b6b1d9b8f 100644 --- a/app/components/layer-record-views/tax-lot.js +++ b/app/components/layer-record-views/tax-lot.js @@ -1,3 +1,468 @@ +import carto from 'labs-zola/utils/carto'; +import config from 'labs-zola/config/environment'; import LayerRecordComponent from './-base'; -export default LayerRecordComponent; +const { specialDistrictCrosswalk } = config; + +const specialPurposeDistrictsSQL = function (table, spdist1, spdist2, spdist3) { + return `SELECT DISTINCT sdname, sdlbl FROM ${table} + WHERE sdlbl IN ('${spdist1}', '${spdist2}', '${spdist3}')`; +}; + +const getPrimaryZone = (zonedist = '') => { + if (!zonedist) return ''; + let primary = zonedist.match(/\w\d*/)[0].toLowerCase(); + // special handling for c1 and c2 + if (primary === 'c1' || primary === 'c2') primary = 'c1-c2'; + // special handling for c3 and c3a + if (primary === 'c3' || primary === 'c3a') primary = 'c3-c3a'; + return primary; +}; + +const bldgclassLookup = { + A0: 'One Family Dwellings - Cape Cod', + A1: 'One Family Dwellings - Two Stories Detached (Small or Moderate Size, With or Without Attic)', + A2: 'One Family Dwellings - One Story (Permanent Living Quarters)', + A3: 'One Family Dwellings - Large Suburban Residence', + A4: 'One Family Dwellings - City Residence', + A5: 'One Family Dwellings - Attached or Semi-Detached', + A6: 'One Family Dwellings - Summer Cottages', + A7: 'One Family Dwellings - Mansion Type or Town House', + A8: 'One Family Dwellings - Bungalow Colony/Land Coop Owned', + A9: 'One Family Dwellings - Miscellaneous', + + B1: 'Two Family Dwellings - Brick', + B2: 'Frame', + B3: 'Converted From One Family', + B9: 'Miscellaneous', + + C0: 'Walk-up Apartments - Three Families', + C1: 'Walk-up Apartments - Over Six Families Without Stores', + C2: 'Walk-up Apartments - Five to Six Families', + C3: 'Walk-up Apartments - Four Families', + C4: 'Walk-up Apartments - Old Law Tenements', + C5: 'Walk-up Apartments - Converted Dwelling or Rooming House', + C6: 'Walk-up Apartments - Cooperative', + C7: 'Walk-up Apartments - Over Six Families With Stores', + C8: 'Walk-up Apartments - Co-Op Conversion From Loft/Warehouse', + C9: 'Walk-up Apartments - Garden Apartments', + CM: 'Mobile Homes/Trailer Parks', + + D0: 'Elevator Apartments - Co-op Conversion from Loft/Warehouse', + D1: 'Elevator Apartments - Semi-fireproof (Without Stores)', + D2: 'Elevator Apartments - Artists in Residence', + D3: 'Elevator Apartments - Fireproof (Without Stores)', + D4: 'Elevator Apartments - Cooperatives (Other Than Condominiums)', + D5: 'Elevator Apartments - Converted', + D6: 'Elevator Apartments - Fireproof With Stores', + D7: 'Elevator Apartments - Semi-Fireproof With Stores', + D8: 'Elevator Apartments - Luxury Type', + D9: 'Elevator Apartments - Miscellaneous', + + E1: 'Warehouses - Fireproof', + E2: 'Warehouses - Contractor’s Warehouse', + E3: 'Warehouses - Semi-Fireproof', + E4: 'Warehouses - Frame, Metal', + E7: 'Warehouses - Warehouse, Self Storage', + E9: 'Warehouses - Miscellaneous', + + F1: 'Factory and Industrial Buildings - Heavy Manufacturing - Fireproof', + F2: 'Factory and Industrial Buildings - Special Construction - Fireproof', + F4: 'Factory and Industrial Buildings - Semi-Fireproof', + F5: 'Factory and Industrial Buildings - Light Manufacturing', + F8: 'Factory and Industrial Buildings - Tank Farms', + F9: 'Factory and Industrial Buildings - Miscellaneous', + + G: 'GARAGES AND GASOLINE STATIONS', + G0: 'Residential Tax Class 1 Garage', + G1: 'All Parking Garages', + G2: 'Auto Body/Collision or Auto Repair', + G3: 'Gas Station with Retail Store', + G4: 'Gas Station with Service/Auto Repair', + G5: 'Gas Station only with/without Small Kiosk', + G6: 'Licensed Parking Lot', + G7: 'Unlicensed Parking Lot', + G8: 'Car Sales/Rental with Showroom', + G9: 'Miscellaneous Garage or Gas Station', + GU: 'Car Sales/Rental without Showroom', + GW: 'Car Wash or Lubritorium Facility', + + H1: 'Hotels - Luxury Type', + H2: 'Hotels - Full Service Hotel', + H3: 'Hotels - Limited Service – Many Affiliated with National Chain', + H4: 'Hotels - Motels', + H5: 'Hotels - Private Club, Luxury Type', + H6: 'Hotels - Apartment Hotels', + H7: 'Hotels - Apartment Hotels-Co-op Owned', + H8: 'Hotels - Dormitories', + H9: 'Hotels - Miscellaneous', + HB: 'Hotels - Boutique 10-100 Rooms, with Luxury Facilities, Themed, Stylish, with Full Service Accommodations', + HH: 'Hotels - Hostel-Bed Rental in Dorm Like Setting with Shared Rooms & Bathrooms', + HR: 'Hotels - SRO- 1 or 2 People Housed in Individual Rooms in Multiple Dwelling Affordable Housing', + HS: 'Hotels - Extended Stay/Suite Amenities Similar to Apt., Typically Charge Weekly Rates & Less Expensive than Full Service Hotel', + + I1: 'Hospitals and Health - Hospitals, Sanitariums, Mental Institutions', + I2: 'Hospitals and Health - Infirmary', + I3: 'Hospitals and Health - Dispensary', + I4: 'Hospitals and Health - Staff Facilities', + I5: 'Hospitals and Health - Health Center, Child Center, Clinic', + I6: 'Hospitals and Health - Nursing Home', + I7: 'Hospitals and Health - Adult Care Facility', + I9: 'Hospitals and Health - Miscellaneous', + + J1: 'Theatres - Art Type (Seating Capacity under 400 Seats)', + J2: 'Theatres - Art Type (Seating Capacity Over 400 Seats)', + J3: 'Theatres - Motion Picture Theatre with Balcony', + J4: 'Theatres - Legitimate Theatres (Theatre Sole Use of Building)', + J5: 'Theatres - Theatre in Mixed Use Building', + J6: 'Theatres - T.V. Studios', + J7: 'Theatres - Off-Broadway Type', + J8: 'Theatres - Multiplex Picture Theatre', + J9: 'Theatres - Miscellaneous', + + K1: 'Store Buildings (Taxpayers Included) - One Story Retail Building', + K2: 'Store Buildings (Taxpayers Included) - Multi-Story Retail Building', + K3: 'Store Buildings (Taxpayers Included) - Multi-Story Department Store', + K4: 'Store Buildings (Taxpayers Included) - Predominant Retail with Other Uses', + K5: 'Store Buildings (Taxpayers Included) - Stand Alone Food Establishment', + K6: 'Store Buildings (Taxpayers Included) - Shopping Centers With or Without Parking', + K7: 'Store Buildings (Taxpayers Included) - Banking Facilities with or Without Parking', + K8: 'Store Buildings (Taxpayers Included) - Big Box Retail Not Affixed & Standing On Own Lot with Parking', + K9: 'Store Buildings (Taxpayers Included) - Miscellaneous', + + L1: 'Loft Buildinghs - Over Eight Stores (Mid-Manhattan Type)', + L2: 'Loft Buildinghs - Fireproof and Storage Type (Without Stores)', + L3: 'Loft Buildinghs - Semi-Fireproof', + L8: 'Loft Buildinghs - With Retail Stores Other Than Type 1', + L9: 'Loft Buildinghs - Miscellaneous', + + M1: 'Churches, Synagogues, etc. - Church, Synagogue, Chapel', + M2: 'Churches, Synagogues, etc. - Mission House (Non-Residential)', + M3: 'Churches, Synagogues, etc. - Parsonage, Rectory', + M4: 'Churches, Synagogues, etc. - Convents', + M9: 'Churches, Synagogues, etc. - Miscellaneous', + + N1: 'Asylums and Homes - Asylums', + N2: 'Asylums and Homes - Homes for Indigent Children, Aged, Homeless', + N3: 'Asylums and Homes - Orphanages', + N4: 'Asylums and Homes - Detention House For Wayward Girls', + N9: 'Asylums and Homes - Miscellaneous', + + O1: 'Office Buildings - Office Only – 1 Story', + O2: 'Office Buildings - Office Only – 2-6 Stories', + O3: 'Office Buildings - Office Only – 7-19 Stories', + O4: 'Office Buildings - Office Only or Office with Comm – 20 Stories or More', + O5: 'Office Buildings - Office with Comm – 1 to 6 Stories', + O6: 'Office Buildings - Office with Comm – 7 to 19 Stories', + O7: 'Office Buildings - Professional Buildings/Stand Alone Funeral Homes', + O8: 'Office Buildings - Office with Apartments Only (No Comm)', + O9: 'Office Buildings - Miscellaneous and Old Style Bank Bldgs', + + P1: 'Places of Public Assembly (indoor) and Cultural - Concert Halls', + P2: 'Places of Public Assembly (indoor) and Cultural - Lodge Rooms', + P3: 'Places of Public Assembly (indoor) and Cultural - YWCA, YMCA, YWHA, YMHA, PAL', + P4: 'Places of Public Assembly (indoor) and Cultural - Beach Club', + P5: 'Places of Public Assembly (indoor) and Cultural - Community Center', + P6: 'Places of Public Assembly (indoor) and Cultural - Amusement Place, Bathhouse, Boat House', + P7: 'Places of Public Assembly (indoor) and Cultural - Museum', + P8: 'Places of Public Assembly (indoor) and Cultural - Library', + P9: 'Places of Public Assembly (indoor) and Cultural - Miscellaneous', + + Q0: 'Outdoor Recreation Facilities - Open Space', + Q1: 'Outdoor Recreation Facilities - Parks/Recreation Facilities', + Q2: 'Outdoor Recreation Facilities - Playground', + Q3: 'Outdoor Recreation Facilities - Outdoor Pool', + Q4: 'Outdoor Recreation Facilities - Beach', + Q5: 'Outdoor Recreation Facilities - Golf Course', + Q6: 'Outdoor Recreation Facilities - Stadium, Race Track, Baseball Field', + Q7: 'Outdoor Recreation Facilities - Tennis Court', + Q8: 'Outdoor Recreation Facilities - Marina, Yacht Club', + Q9: 'Outdoor Recreation Facilities - Miscellaneous', + + R0: 'Condominiums - Condo Billing Lot', + R1: 'Condominiums - Residential Unit in 2-10 Unit Bldg', + R2: 'Condominiums - Residential Unit in Walk-Up Bldg', + R3: 'Condominiums - Residential Unit in 1-3 Story Bldg', + R4: 'Condominiums - Residential Unit in Elevator Bldg', + R5: 'Condominiums - Miscellaneous Commercial', + R6: 'Condominiums - Residential Unit of 1-3 Unit Bldg-Orig Class 1', + R7: 'Condominiums - Commercial Unit of 1-3 Units Bldg- Orig Class 1', + R8: 'Condominiums - Commercial Unit of 2-10 Unit Bldg', + R9: 'Condominiums - Co-op within a Condominium', + RA: 'Condominiums - Cultural, Medical, Educational, etc.', + RB: 'Condominiums - Office Space', + RC: 'Condominiums - Commercial Building (Mixed Commercial Condo Building Classification Codes)', + RD: 'Condominiums - Residential Building (Mixed Residential Condo Building Classification Codes)', + RG: 'Condominiums - Indoor Parking', + RH: 'Condominiums - Hotel/Boatel', + RI: 'Condominiums - Mixed Warehouse/Factory/Industrial & Commercial', + RK: 'Condominiums - Retail Space', + RM: 'Condominiums - Mixed Residential & Commercial Building (Mixed Residential & Commercial)', + RP: 'Condominiums - Outdoor Parking', + RR: 'Condominiums - Condominium Rentals', + RS: 'Condominiums - Non-Business Storage Space', + RT: 'Condominiums - Terraces/Gardens/Cabanas', + RW: 'Condominiums - Warehouse/Factory/Industrial', + RX: 'Condominiums - Mixed Residential, Commercial & Industrial', + RZ: 'Condominiums - Mixed Residential & Warehouse', + + S0: 'Residence (Multiple Use) - Primarily One Family with Two Stores or Offices', + S1: 'Residence (Multiple Use) - Primarily One Family with One Store or Office', + S2: 'Residence (Multiple Use) - Primarily Two Family with One Store or Office', + S3: 'Residence (Multiple Use) - Primarily Three Family with One Store or Office', + S4: 'Residence (Multiple Use) - Primarily Four Family with One Store or Office', + S5: 'Residence (Multiple Use) - Primarily Five to Six Family with One Store or Office', + S9: 'Residence (Multiple Use) - Single or Multiple Dwelling with Stores or Offices', + + T1: 'Transportation Facilities (Assessed in ORE) - Airport, Air Field, Terminal', + T2: 'Transportation Facilities (Assessed in ORE) - Pier, Dock, Bulkhead', + T9: 'Transportation Facilities (Assessed in ORE) - Miscellaneous', + + U0: 'Utility Bureau Properties - Utility Company Land and Building', + U1: 'Utility Bureau Properties - Bridge, Tunnel, Highway', + U2: 'Utility Bureau Properties - Gas or Electric Utility', + U3: 'Utility Bureau Properties - Ceiling Railroad', + U4: 'Utility Bureau Properties - Telephone Utility', + U5: 'Utility Bureau Properties - Communications Facilities Other Than Telephone', + U6: 'Utility Bureau Properties - Railroad - Private Ownership', + U7: 'Utility Bureau Properties - Transportation - Public Ownership', + U8: 'Utility Bureau Properties - Revocable Consent', + U9: 'Utility Bureau Properties - Miscellaneous', + + V0: 'Vacant Land - Zoned Residential; Not Manhattan', + V1: 'Vacant Land - Zoned Commercial or Manhattan Residential', + V2: 'Vacant Land - Zoned Commercial Adjacent to Class 1 Dwelling; Not Manhattan', + V3: 'Vacant Land - Zoned Primarily Residential; Not Manhattan', + V4: 'Vacant Land - Police or Fire Department', + V5: 'Vacant Land - School Site or Yard', + V6: 'Vacant Land - Library, Hospital or Museum', + V7: 'Vacant Land - Port Authority of NY and NJ', + V8: 'Vacant Land - New York State & U.S. Government', + V9: 'Vacant Land - Miscellaneous', + + W1: 'Educational Structures - Public Elementary, Junior or Senior High', + W2: 'Educational Structures - Parochial School, Yeshiva', + W3: 'Educational Structures - School or Academy', + W4: 'Educational Structures - Training School', + W5: 'Educational Structures - City University', + W6: 'Educational Structures - Other College and University', + W7: 'Educational Structures - Theological Seminary', + W8: 'Educational Structures - Other Private School', + W9: 'Educational Structures - Miscellaneous', + + Y1: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Fire Department', + Y2: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Police Department', + Y3: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Prison, Jail, House of Detention', + Y4: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Military and Naval Installation', + Y5: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Department of Real Estate', + Y6: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Department of Sanitation', + Y7: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Department of Ports and Terminals', + Y8: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Department of Public Works', + Y9: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Department of Environmental Protection', + + Z0: 'Miscellaneous - Tennis Court, Pool, Shed, etc.', + Z1: 'Miscellaneous - Court House', + Z2: 'Miscellaneous - Public Parking Area', + Z3: 'Miscellaneous - Post Office', + Z4: 'Miscellaneous - Foreign Government', + Z5: 'Miscellaneous - United Nations', + Z7: 'Miscellaneous - Easement', + Z8: 'Miscellaneous - Cemetery', + Z9: 'Miscellaneous - Other', +}; + +const boroughLookup = { + BX: 'Bronx', + BK: 'Brooklyn', + MN: 'Manhattan', + QN: 'Queens', + SI: 'Staten Island', +}; + +const boroLookup = { + 1: 'Manhattan', + 2: 'Bronx', + 3: 'Brooklyn', + 4: 'Queens', + 5: 'Staten Island', +}; + +const ownertypeLookup = { + C: 'City', + M: 'Mixed City & Private', + O: 'Public Authority, State, or Federal', + P: 'Private', + X: 'Mixed', +}; + +const landuseLookup = { + '01': 'One & Two Family Buildings', + '02': 'Multi-Family Walk-Up Buildings', + '03': 'Multi-Family Elevator Buildings', + '04': 'Mixed Residential & Commercial Buildings', + '05': 'Commercial & Office Buildings', + '06': 'Industrial & Manufacturing', + '07': 'Transportation & Utility', + '08': 'Public Facilities & Institutions', + '09': 'Open Space & Outdoor Recreation', + 10: 'Parking Facilities', + 11: 'Vacant Land', +}; + +export default class TaxLotRecordComponent extends LayerRecordComponent { + get bldgclassname() { + return bldgclassLookup[this.model.bldgclass]; + } + + get boroname() { + return boroughLookup[this.model.borough]; + } + + get cdName() { + const borocd = this.model.cd; + const cdborocode = `${borocd}`.substring(0, 1); + const cd = parseInt(`${borocd}`.substring(1, 3), 10).toString(); + return `${boroLookup[cdborocode]} Community District ${cd}`; + } + + get cdURLSegment() { + const borocd = this.model.cd; + const borocode = this.model.borocode; // eslint-disable-line prefer-destructuring + const cleanBorough = boroLookup[borocode].toLowerCase().replace(/\s/g, '-'); + const cd = parseInt(`${borocd}`.substring(1, 3), 10).toString(); + return `${cleanBorough}/${cd}`; + } + + get landusename() { + return landuseLookup[this.model.landuse]; + } + + get ownertypename() { + return ownertypeLookup[this.model.ownertype]; + } + + get housenum() { + const match = this.model.address.match(/([0-9-]*)\s[0-9A-Za-z\s]*/); + return match ? match[1] : ''; + } + + get street() { + const match = this.model.address.match(/[0-9-]*\s([0-9A-Za-z\s]*)/); + return match ? match[1] : ''; + } + + get paddedZonemap() { + const { zonemap } = this.model; + return `0${zonemap}`.slice(-3); + } + + get primaryzone1() { + const zonedist = this.model.zonedist1; + return getPrimaryZone(zonedist); + } + + get primaryzone2() { + const zonedist = this.model.zonedist2; + return getPrimaryZone(zonedist); + } + + get primaryzone3() { + const zonedist = this.model.zonedist3; + return getPrimaryZone(zonedist); + } + + get primaryzone4() { + const zonedist = this.model.zonedist4; + return getPrimaryZone(zonedist); + } + + get parentSpecialPurposeDistricts() { + const DISTRICT_TOOLS_URL = + 'https://www1.nyc.gov/site/planning/zoning/districts-tools'; + const { spdist1, spdist2, spdist3 } = this.model; + + return carto + .SQL( + specialPurposeDistrictsSQL( + 'dcp_special_purpose_districts', + spdist1, + spdist2, + spdist3 + ) + ) + .then((response) => + response.map((item) => { + const [, [anchorName, boroName]] = specialDistrictCrosswalk.find( + ([dist]) => dist === item.sdname + ); + const specialDistrictLink = `${DISTRICT_TOOLS_URL}/special-purpose-districts-${boroName}.page#${anchorName}`; + + return { + label: item.sdlbl.toUpperCase(), + name: item.sdname, + anchorName, + boroName, + specialDistrictLink, + }; + }) + ); + } + + get biswebLink() { + const BISWEB_HOST = + 'http://a810-bisweb.nyc.gov/bisweb/PropertyBrowseByBBLServlet'; + const { borocode, block, lot } = this.model; + + return `${BISWEB_HOST}?allborough=${borocode}&allblock=${block}&alllot=${lot}&go5=+GO+&requestid=0`; + } + + get fullCommunityDistrictURL() { + return `https://communityprofiles.planning.nyc.gov/${this.cdURLSegment}`; + } + + get zoneDistLinks() { + const primaryZones = { + primaryzone1: this.primaryzone1, + primaryzone2: this.primaryzone2, + primaryzone3: this.primaryzone3, + primaryzone4: this.primaryzone4, + }; + + Object.keys(primaryZones).forEach((key) => { + const value = primaryZones[key]; + primaryZones[ + key + ] = `https://www1.nyc.gov/site/planning/zoning/districts-tools/${value}.page`; + }); + + return { + ...primaryZones, + }; + } + + get digitalTaxMapLink() { + return `http://gis.nyc.gov/taxmap/map.htm?searchType=BblSearch&featureTypeName=EVERY_BBL&featureName=${this.model.bbl}`; + } + + get zoningMapLink() { + return `https://s-media.nyc.gov/agencies/dcp/assets/files/pdf/zoning/zoning-maps/map${this.model.zonemap}.pdf`; + } + + get historicalZoningMapLink() { + return `https://s-media.nyc.gov/agencies/dcp/assets/files/pdf/zoning/zoning-maps/maps${this.paddedZonemap}.pdf`; + } + + get ACRISLink() { + const { borocode, block, lot } = this.model; + return `http://a836-acris.nyc.gov/bblsearch/bblsearch.asp?borough=${borocode}&block=${block}&lot=${lot}`; + } + + get housingInfoLink() { + const { borocode } = this.model; + return `https://hpdonline.hpdnyc.org/Hpdonline/Provide_address.aspx?p1=${borocode}&p2=${this.housenum}&p3=${this.street}&SearchButton=Search`; + } + + get councilLink() { + return `https://council.nyc.gov/district-${this.model.council}/`; + } +} diff --git a/app/components/layer-record-views/zoning-district.js b/app/components/layer-record-views/zoning-district.js index ff9bb917c..c4ab2354b 100644 --- a/app/components/layer-record-views/zoning-district.js +++ b/app/components/layer-record-views/zoning-district.js @@ -1,3 +1,123 @@ import LayerRecordComponent from './-base'; -export default LayerRecordComponent; +const zoningDescriptions = { + m1: 'M1 districts are designated for areas with light industries.', + m2: 'M2 districts occupy the middle ground between light and heavy industrial areas.', + m3: 'M3 districts are designated for areas with heavy industries that generate noise, traffic or pollutants.', + c1: 'C1 districts are mapped along streets that serve local retail needs within residential neighborhoods.', + c2: 'C2 districts are mapped along streets that serve local retail needs within residential neighborhoods.', + c3: 'C3 districts permit waterfront recreational activities, primarily boating and fishing, in areas along the waterfront.', + c4: 'C4 districts are mapped in regional centers where larger stores, theaters and office uses serve a wider region and generate more traffic than neighborhood shopping areas.', + c5: 'C5 districts are intended for commercial areas that require central locations or serve the entire metropolitan region.', + c6: 'C6 districts are intended for commercial areas that require central locations or serve the entire metropolitan region.', + c7: 'C7 districts are specifically designated for large open amusement parks.', + c8: 'C8 districts, bridging commercial and manufacturing uses, provide for automotive and other heavy commercial services that often require large amounts of land.', + p: 'A public park is any park, playground, beach, parkway, or roadway within the jurisdiction and control of the New York City Commissioner of Parks & Recreation. Typically, public parks are not subject to zoning regulations.', + r1: 'R1 districts are leafy, low-density neighborhoods of large, single-family detached homes on spacious lots.', + r2: 'Residential development in R2 districts is limited exclusively to single-family detached houses.', + r2a: 'R2A is a contextual district intended to preserve low-rise neighborhoods characterized by single-family detached homes on lots with a minimum width of 40 feet', + r2x: 'R2X districts allow large single-family detached houses on lots with a minimum width of 30 feet.', + r31: 'R3-1 contextual districts are the lowest density districts that allow semi-detached one- and two-family residences, as well as detached homes', + r32: 'R3-2 districts are general residence districts that allow a variety of housing types, including low-rise attached houses, small multifamily apartment houses, and detached and semi-detached one- and two-family residences.', + r3a: 'Characteristic of many of the city’s older neighborhoods, R3A contextual districts feature modest single- and two-family detached residences on zoning lots as narrow as 25 feet in width.', + r3x: 'R3X contextual districts, mapped extensively in lower-density neighborhoods permit only one- and two-family detached homes on lots that must be at least 35 feet wide.', + r4: 'R4 districts are general residence districts that allow a variety of housing types, including low-rise attached houses, small multifamily apartment houses, and detached and semi-detached one- and two-family residences.', + r41: 'R4-1 contextual districts permit only one- and two-family detached and semi-detached houses.', + r4a: 'R4A contextual districts permit only one- and two-family detached residences characterized by houses with two stories and an attic beneath a pitched roof.', + r4b: 'Primarily a contextual rowhouse district limited to low-rise, one- and two-family attached residences, R4B districts also permit detached and semi-detached buildings.', + r5: 'R5 districts are general residence districts that allow a variety of housing types, including low-rise attached houses, small multifamily apartment houses, and detached and semi-detached one- and two-family residences.', + r5a: 'R5A contextual districts permit only one- and two-family detached residences characterized by houses with two stories and an attic beneath a pitched roof.', + r5b: 'Primarily a contextual rowhouse district limited to low-rise, one- and two-family attached residences, R4B districts also permit detached and semi-detached buildings.', + r5d: 'R5D contextual districts are designed to encourage residential growth along major corridors in auto-dependent areas of the city.', + r6: 'R6 zoning districts are widely mapped in built-up, medium-density areas of the city whose character can range from neighborhoods with a diverse mix of building types and heights to large-scale “tower in the park” developments.', + r6a: 'R6A contextual districts produce high lot coverage, six- to eight-story apartment buildings set at or near the street line designed to be compatible with older buildings in medium-density neighborhoods.', + r6b: 'R6B contextual districts are often traditional row house districts, which preserve the scale and harmonious streetscape of medium-density neighborhoods of four-story attached buildings developed during the 19th century.', + r7: 'R7 zoning districts are medium-density apartment house districts that encourage lower apartment buildings on smaller lots and, on larger lots, taller buildings with less lot coverage.', + r7a: 'R7A contextual districts produce high lot coverage, seven- to nine-story apartment buildings set at or near the street line designed to be compatible with older buildings in medium-density neighborhoods.', + r7b: 'R7B contextual districts generally produce six- to seven-story apartment buildings in medium-density neighborhoods.', + r7d: 'R7D contextual districts promote new medium-density contextual development along transit corridors that range between 10 and 11 stories.', + r7x: 'R7X contextual districts are flexible medium-density districts that generally produce 12- to 14-story buildings.', + r8: 'R8 zoning districts are high-density apartment house districts that encourage mid-rise apartment buildings on smaller lots and, on larger lots, taller buildings with less lot coverage.', + r8a: 'R8A contextual districts are high-density districts designed to produce apartment buildings at heights of roughly twelve to fourteen stories.', + r8b: 'R8B contextual districts are designed to preserve the character and scale of taller rowhouse neighborhoods.', + r8x: 'R8X contextual districts are flexible high-density districts that generally produce 15- to 17-story buildings.', + r9: 'R9 districts are high-density districts that permit a wide range of building types including towers.', + r9a: 'R9A contextual districts are high-density districts designed to produce new buildings between 13 and 17 stories that mimics older, high street wall buildings in high-density neighborhoods.', + r9d: 'R9D contextual districts are high-density districts that permit towers that sit on a contextual base.', + r9x: 'R9X contextual districts are high-density districts designed to produce new buildings between 16 and 20 stories that mimics older, high street wall buildings in high-density neighborhoods.', + r10: 'R10 districts are high-density districts that permit a wide range of building types including towers.', + r10a: 'R10-A contextual districts are high-density districts designed to produce new buildings between 21 and 23 stories that mimics older, high street wall buildings in high-density neighborhoods.', + r10x: 'R10X contextual districts are high-density districts that permit towers that sit on a contextual base.', + bpc: 'The Special Battery Park City District (BPC) was created, in accordance with a master plan, to govern extensive residential and commercial development in an area on the Hudson River close to the business core of Lower Manhattan. The district regulates permitted uses and bulk within three specified areas and establishes special design controls with respect to front building walls, building heights, waterfront design and parking.', +}; + +const zoningAbbr = { + R2A: 'r2a', + R2X: 'r2x', + 'R3-1': 'r31', + 'R3-2': 'r32', + R3A: 'r3a', + R3X: 'r3x', + 'R4-1': 'r41', + R4A: 'r4a', + R4B: 'r4b', + R5A: 'r5a', + R5B: 'r5b', + R5D: 'r5d', + R6A: 'r6a', + R6B: 'r6b', + R7A: 'r7a', + R7B: 'r7b', + R7D: 'r7d', + R7X: 'r7x', + R8A: 'r8a', + R8B: 'r8b', + R8X: 'r8x', + R9A: 'r9a', + R9D: 'r9d', // R9D does not have a route + R9X: 'r9x', + R10A: 'r10a', + R10X: 'r10x', // R10X does not have a route + BPC: 'bpc', +}; + +export default class ZoningDistrictRecordComponent extends LayerRecordComponent { + get primaryzone() { + const { zonedist } = this.model; + // convert R6A to r6 + const primary = zonedist.match(/\w\d*/)[0].toLowerCase(); + return primary; + } + + get zoneabbr() { + const { zonedist } = this.model; + const abbr = zonedist.match(/\w\d*/)[0].toLowerCase(); + + if (zonedist in zoningAbbr) { + return zoningAbbr[zonedist]; + } + + return abbr; + } + + get description() { + const { zoneabbr } = this; + + return zoningDescriptions[zoneabbr]; + } + + get primaryzoneURL() { + const { primaryzone } = this; + let url = ''; + + if (primaryzone === 'c1' || primaryzone === 'c2') { + url = 'c1-c2'; + } else if (primaryzone === 'c3') { + url = 'c3-c3a'; + } else { + url = primaryzone; + } + + return url; + } +} diff --git a/app/components/layer-record-views/zoning-map-amendment.js b/app/components/layer-record-views/zoning-map-amendment.js index ff9bb917c..74a6e57a4 100644 --- a/app/components/layer-record-views/zoning-map-amendment.js +++ b/app/components/layer-record-views/zoning-map-amendment.js @@ -1,3 +1,14 @@ import LayerRecordComponent from './-base'; -export default LayerRecordComponent; +export default class ZoningMapAmendmentRecordComponent extends LayerRecordComponent { + get effectiveDisplay() { + return import('moment').then(({ default: moment }) => { + const { effective } = this.model; + + if (effective) { + return moment(effective).utc().format('LL'); + } + return 'To be determined'; + }); + } +} diff --git a/app/components/locate-me-mobile.js b/app/components/locate-me-mobile.js index 7467bb885..27f98f5bd 100644 --- a/app/components/locate-me-mobile.js +++ b/app/components/locate-me-mobile.js @@ -5,22 +5,24 @@ import { inject as service } from '@ember/service'; export default class LocateMeMobileComponent extends Component { // feature for mobile users to make button more visible // button attached to geolocate that functions the same as geoLocate - @service - metrics; + @service metrics; findMeDismissed = false; // TODO: let's refactor this action to make it easier to test @action locateMe() { - const geolocateButton = document.querySelectorAll('.mapboxgl-ctrl-geolocate')[0]; + const geolocateButton = document.querySelectorAll( + '.mapboxgl-ctrl-geolocate' + )[0]; if (geolocateButton) { // GA - this.metrics.trackEvent( - 'MatomoTagManager', - { category: 'Map', action: 'Geolocate on Mobile', name: 'Geolocate' }, - ); + this.metrics.trackEvent('MatomoTagManager', { + category: 'Map', + action: 'Geolocate on Mobile', + name: 'Geolocate', + }); geolocateButton.click(); this.set('findMeDismissed', true); diff --git a/app/components/main-header.js b/app/components/main-header.js index 97f41393a..8fa3ebe46 100644 --- a/app/components/main-header.js +++ b/app/components/main-header.js @@ -2,11 +2,9 @@ import Component from '@ember/component'; import { inject as service } from '@ember/service'; export default class MainHeaderComponent extends Component { - @service('print') - printSvc + @service('print') printSvc; - @service() - media + @service() media; bookmarks; } diff --git a/app/components/main-map.js b/app/components/main-map.js index 7f6b6c951..35f646ac2 100644 --- a/app/components/main-map.js +++ b/app/components/main-map.js @@ -14,9 +14,9 @@ const selectedFillLayer = selectedLayers.fill; const selectedLineLayer = selectedLayers.line; // Custom Control -const MeasurementText = function() { }; +const MeasurementText = function () {}; -MeasurementText.prototype.onAdd = function(map) { +MeasurementText.prototype.onAdd = function (map) { this._map = map; this._container = document.createElement('div'); this._container.id = 'measurement-text'; @@ -30,20 +30,15 @@ MeasurementText.prototype.onRemove = function () { @classNames('map-container') export default class MainMap extends Component { - @service - mainMap; + @service mainMap; - @service - metrics; + @service metrics; - @service - store; + @service store; - @service - router; + @service router; - @service('print') - printSvc; + @service('print') printSvc; menuTo = 'layers-menu'; @@ -70,7 +65,7 @@ export default class MainMap extends Component { }); } - @computed('layerGroupsObject') + @computed('layerGroups', 'layerGroupsObject') get mapConfig() { return this.layerGroups; } @@ -78,8 +73,9 @@ export default class MainMap extends Component { @computed('bookmarks.[]') get bookmarkedLotsLayer() { const bookmarks = this.get('bookmarks.[]'); - const lotBookmarks = bookmarks.getEach('bookmark.properties.bbl') - .filter(d => d); // filter out bookmarks with undefined bbl + const lotBookmarks = bookmarks + .getEach('bookmark.properties.bbl') + .filter((d) => d); // filter out bookmarks with undefined bbl const filter = ['match', ['get', 'bbl'], lotBookmarks, true, false]; @@ -96,14 +92,8 @@ export default class MainMap extends Component { 'line-color': 'rgba(0, 25, 160, 1)', 'line-width': { stops: [ - [ - 13, - 1.5, - ], - [ - 15, - 8, - ], + [13, 1.5], + [15, 8], ], }, }, @@ -113,8 +103,7 @@ export default class MainMap extends Component { return lotBookmarks.length > 0 ? layer : null; } - @alias('mainMap.shouldFitBounds') - shouldFitBounds; + @alias('mainMap.shouldFitBounds') shouldFitBounds; @computed('mainMap.selected') get selectedLotSource() { @@ -152,14 +141,18 @@ export default class MainMap extends Component { // GA geoLocateControl.on('trackuserlocationstart', () => { - this.metrics.trackEvent( - 'MatomoTagManager', - { category: 'Map', action: 'Geolocate', name: 'Geolocate' }, - ); + this.metrics.trackEvent('MatomoTagManager', { + category: 'Map', + action: 'Geolocate', + name: 'Geolocate', + }); }); map.addControl(navigationControl, 'top-left'); - map.addControl(new mapboxgl.ScaleControl({ unit: 'imperial' }), 'bottom-left'); + map.addControl( + new mapboxgl.ScaleControl({ unit: 'imperial' }), + 'bottom-left' + ); map.addControl(geoLocateControl, 'top-left'); map.addControl(new MeasurementText(), 'top-left'); @@ -170,27 +163,9 @@ export default class MainMap extends Component { 'highway_name_motorway', ]; - basemapLayersToHide.forEach(layer => map.removeLayer(layer)); - - map.addSource('ee', { - type: 'image', - url: '/img/ht.png', - coordinates: [ - [-74.0030685, 40.7335205], - [-74.0030515, 40.7335205], - [-74.0030515, 40.7335085], - [-74.0030685, 40.7335085], - ], - }); - - map.addLayer({ - id: 'ee', - source: 'ee', - type: 'raster', - minzoom: 17, - }); + basemapLayersToHide.forEach((layer) => map.removeLayer(layer)); - map.on('zoom', function() { + map.on('zoom', function () { mainMap.set('zoom', map.getZoom()); }); } @@ -203,9 +178,9 @@ export default class MainMap extends Component { if (localSource) { if ( - data.dataType === 'source' - && data.isSourceLoaded - && sourceIds.includes(data.sourceId) + data.dataType === 'source' && + data.isSourceLoaded && + sourceIds.includes(data.sourceId) ) { this.set('loading', false); } else { @@ -216,7 +191,7 @@ export default class MainMap extends Component { @action handleLayerClick(feature) { - const highlightedLayerId = this.get('highlightedLayerId'); + const { highlightedLayerId } = this; if (feature) { const { properties } = feature; @@ -233,34 +208,52 @@ export default class MainMap extends Component { cartodb_id, // eslint-disable-line ceqr_num, // eslint-disable-line } = properties; - - if (bbl && !ceqr_num) { // eslint-disable-line + if (bbl && !ceqr_num) { + // eslint-disable-line const { boro, block, lot } = bblDemux(bbl); this.router.transitionTo('map-feature.lot', boro, block, lot); } if (ulurpno) { - this.router.transitionTo('map-feature.zoning-map-amendment', ulurpno, { queryParams: { search: false } }); + this.router.transitionTo( + 'map-feature.zoning-map-amendment', + ulurpno, + { queryParams: { search: false } } + ); } if (zonedist) { - this.router.transitionTo('map-feature.zoning-district', zonedist, { queryParams: { search: false } }); + this.router.transitionTo('map-feature.zoning-district', zonedist, { + queryParams: { search: false }, + }); } if (sdlbl) { - this.router.transitionTo('map-feature.special-purpose-district', cartodb_id, { queryParams: { search: false } }); + this.router.transitionTo( + 'map-feature.special-purpose-district', + cartodb_id, + { queryParams: { search: false } } + ); } if (splbl) { - this.router.transitionTo('map-feature.special-purpose-subdistrict', cartodb_id, { queryParams: { search: false } }); + this.router.transitionTo( + 'map-feature.special-purpose-subdistrict', + cartodb_id, + { queryParams: { search: false } } + ); } if (overlay) { - this.router.transitionTo('map-feature.commercial-overlay', overlay, { queryParams: { search: false } }); + this.router.transitionTo('map-feature.commercial-overlay', overlay, { + queryParams: { search: false }, + }); } if (bbl && ceqr_num) { - this.router.transitionTo('map-feature.e-designation', id, { queryParams: { search: false } }); + this.router.transitionTo('map-feature.e-designation', id, { + queryParams: { search: false }, + }); } } } diff --git a/app/components/map-measurement-tools.js b/app/components/map-measurement-tools.js index 118929a8c..d1453c1ef 100644 --- a/app/components/map-measurement-tools.js +++ b/app/components/map-measurement-tools.js @@ -5,11 +5,9 @@ import { inject as service } from '@ember/service'; import drawStyles from '../layers/draw-styles'; export default class MapMeasurementToolsComponent extends Component { - @service - mainMap; + @service mainMap; - @service - metrics; + @service metrics; measurementUnitType = 'standard'; @@ -38,18 +36,22 @@ export default class MapMeasurementToolsComponent extends Component { }); // GA - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'Measurement', action: 'Used measurement tool', name: 'Measurement', }); this.set('didStartDraw', true); - const draw = this.get('draw') || await import('mapbox-gl-draw') - .then(({ default: MapboxDraw }) => new MapboxDraw({ - displayControlsDefault: false, - styles: drawStyles, - })); + const draw = + this.draw || + (await import('@mapbox/mapbox-gl-draw').then( + ({ default: MapboxDraw }) => + new MapboxDraw({ + displayControlsDefault: false, + styles: drawStyles, + }) + )); this.set('draw', draw); const drawMode = type === 'line' ? 'draw_line_string' : 'draw_polygon'; const { mainMap } = this; @@ -66,7 +68,7 @@ export default class MapMeasurementToolsComponent extends Component { @action clearDraw() { - const draw = this.get('draw'); + const { draw } = this; const { mainMap } = this; if (mainMap.get('drawMode')) { mainMap.mapInstance.removeControl(draw); @@ -79,7 +81,7 @@ export default class MapMeasurementToolsComponent extends Component { @action handleDrawCreate(e) { - const draw = this.get('draw'); + const { draw } = this; this.set('drawnFeature', e.features[0].geometry); setTimeout(() => { if (!this.mainMap.isDestroyed && !this.mainMap.isDestroying) { @@ -92,7 +94,7 @@ export default class MapMeasurementToolsComponent extends Component { @action async handleMeasurement() { this.set('drawDidRender', true); - const draw = this.get('draw'); + const { draw } = this; // should log both metric and standard display strings for the current drawn feature const { features } = draw.getAll(); @@ -118,7 +120,7 @@ async function calculateMeasurements(feature) { const { default: area } = await import('@turf/area'); const { default: lineDistance } = await import('@turf/line-distance'); - const drawnLength = (lineDistance(feature) * 1000); // meters + const drawnLength = lineDistance(feature) * 1000; // meters const drawnArea = area(feature); // square meters let metricUnits = 'm'; @@ -129,21 +131,25 @@ async function calculateMeasurements(feature) { let standardFormat = '0,0'; let standardMeasurement; - if (drawnLength > drawnArea) { // user is drawing a line + if (drawnLength > drawnArea) { + // user is drawing a line metricMeasurement = drawnLength; - if (drawnLength >= 1000) { // if over 1000 meters, upgrade metric + if (drawnLength >= 1000) { + // if over 1000 meters, upgrade metric metricMeasurement = drawnLength / 1000; metricUnits = 'km'; metricFormat = '0.00'; } standardMeasurement = drawnLength * 3.28084; - if (standardMeasurement >= 5280) { // if over 5280 feet, upgrade standard + if (standardMeasurement >= 5280) { + // if over 5280 feet, upgrade standard standardMeasurement /= 5280; standardUnits = 'mi'; standardFormat = '0.00'; } - } else { // user is drawing a polygon + } else { + // user is drawing a polygon metricUnits = 'm²'; metricFormat = '0,0'; metricMeasurement = drawnArea; @@ -152,13 +158,15 @@ async function calculateMeasurements(feature) { standardFormat = '0,0'; standardMeasurement = drawnArea * 10.7639; - if (drawnArea >= 1000000) { // if over 1,000,000 meters, upgrade metric + if (drawnArea >= 1000000) { + // if over 1,000,000 meters, upgrade metric metricMeasurement = drawnArea / 1000000; metricUnits = 'km²'; metricFormat = '0.00'; } - if (standardMeasurement >= 27878400) { // if over 27878400 sf, upgrade standard + if (standardMeasurement >= 27878400) { + // if over 27878400 sf, upgrade standard standardMeasurement /= 27878400; standardUnits = 'mi²'; standardFormat = '0.00'; @@ -167,7 +175,9 @@ async function calculateMeasurements(feature) { const drawnMeasurements = { metric: `${numeral(metricMeasurement).format(metricFormat)} ${metricUnits}`, - standard: `${numeral(standardMeasurement).format(standardFormat)} ${standardUnits}`, + standard: `${numeral(standardMeasurement).format( + standardFormat + )} ${standardUnits}`, }; return drawnMeasurements; diff --git a/app/components/map-resource-search.js b/app/components/map-resource-search.js index 0f76b27ae..89f3105e5 100644 --- a/app/components/map-resource-search.js +++ b/app/components/map-resource-search.js @@ -4,14 +4,11 @@ import { inject as service } from '@ember/service'; import bblDemux from '../utils/bbl-demux'; export default class MapResourceSearchComponent extends Component { - @service - router; + @service router; - @service - mainMap; + @service mainMap; - @service - metrics; + @service metrics; @action handleLookupSuccess(center, zoom, bbl) { @@ -24,7 +21,7 @@ export default class MapResourceSearchComponent extends Component { }); // GA - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'Search', action: 'Used BBL Lookup', name: 'Used BBL Lookup', @@ -33,7 +30,7 @@ export default class MapResourceSearchComponent extends Component { const { boro, block, lot } = bblDemux(bbl); this.router.transitionTo('map-feature.lot', boro, block, lot); } else { - this.get('mainMap.mapInstance').flyTo({ center, zoom }); + this.mainMap.mapInstance.flyTo({ center, zoom }); } } @@ -51,12 +48,14 @@ export default class MapResourceSearchComponent extends Component { if (type === 'lot') { // GA // address search maps to all-uppercase addresses whereas bbl lookups map to normal case addresses - if (result.label.split(',')[0] === result.label.split(',')[0].toUpperCase()) { + if ( + result.label.split(',')[0] === result.label.split(',')[0].toUpperCase() + ) { gtag('event', 'search', { event_category: 'Search', event_action: 'Searched by Address', }); - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'Search', action: 'Searched by Address', name: 'Searched by Address', @@ -66,7 +65,7 @@ export default class MapResourceSearchComponent extends Component { event_category: 'Search', event_action: 'Used BBL Lookup', }); - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'Search', action: 'Used BBL Lookup', name: 'Used BBL Lookup', @@ -75,12 +74,18 @@ export default class MapResourceSearchComponent extends Component { const { boro, block, lot } = bblDemux(result.bbl); this.set('searchTerms', result.label); - this.router.transitionTo('map-feature.lot', boro, block, lot, { queryParams: { search: true } }); + this.router.transitionTo('map-feature.lot', boro, block, lot, { + queryParams: { search: true }, + }); } if (type === 'zma') { this.set('searchTerms', result.label); - this.router.transitionTo('map-feature.zoning-map-amendment', result.ulurpno, { queryParams: { search: true } }); + this.router.transitionTo( + 'map-feature.zoning-map-amendment', + result.ulurpno, + { queryParams: { search: true } } + ); } if (type === 'zoning-district') { @@ -89,14 +94,16 @@ export default class MapResourceSearchComponent extends Component { event_action: 'Searched by Zoning District', }); // GA - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'Search', action: 'Searched by Zoning District', name: 'Searched by Zoning District', }); this.set('searchTerms', result.label); - this.router.transitionTo('map-feature.zoning-district', result.label, { queryParams: { search: true } }); + this.router.transitionTo('map-feature.zoning-district', result.label, { + queryParams: { search: true }, + }); } if (type === 'neighborhood') { @@ -110,12 +117,18 @@ export default class MapResourceSearchComponent extends Component { if (type === 'special-purpose-district') { this.set('searchTerms', result.sdname); - this.router.transitionTo('map-feature.special-purpose-district', result.cartodb_id, { queryParams: { search: true } }); + this.router.transitionTo( + 'map-feature.special-purpose-district', + result.cartodb_id, + { queryParams: { search: true } } + ); } if (type === 'commercial-overlay') { this.set('searchTerms', result.label); - this.router.transitionTo('map-feature.commercial-overlay', result.label, { queryParams: { search: true } }); + this.router.transitionTo('map-feature.commercial-overlay', result.label, { + queryParams: { search: true }, + }); } } } diff --git a/app/components/mapbox/basic-map.js b/app/components/mapbox/basic-map.js index 318180f2f..33c4c41f4 100644 --- a/app/components/mapbox/basic-map.js +++ b/app/components/mapbox/basic-map.js @@ -3,7 +3,7 @@ import { action } from '@ember/object'; import { tagName } from '@ember-decorators/component'; import { buildWaiter } from '@ember/test-waiters'; -let waiter = buildWaiter('ember-friendz:friend-waiter'); +const waiter = buildWaiter('ember-friendz:friend-waiter'); /** * @@ -29,7 +29,7 @@ export default class MapboxBasicMapComponent extends Component { initOptions = {}; - mapLoaded = () => {} + mapLoaded = () => {}; mapInstance = null; diff --git a/app/components/mapbox/fit-map-to-all-button.js b/app/components/mapbox/fit-map-to-all-button.js index 7041a41c3..97801a17c 100644 --- a/app/components/mapbox/fit-map-to-all-button.js +++ b/app/components/mapbox/fit-map-to-all-button.js @@ -6,8 +6,7 @@ export default class MapboxFixMapToAllButton extends Component { // should be carto-geojson-model-like model = {}; - @service - mainMap; + @service mainMap; @action fitBounds() { @@ -15,6 +14,6 @@ export default class MapboxFixMapToAllButton extends Component { event_category: 'Fit Map to Districts', }); - this.get('mainMap.setBounds').perform(this.model.bounds); + this.mainMap.setBounds.perform(this.model.bounds); } } diff --git a/app/components/mapbox/load-spinner.js b/app/components/mapbox/load-spinner.js index 060c4453b..9341d7aae 100644 --- a/app/components/mapbox/load-spinner.js +++ b/app/components/mapbox/load-spinner.js @@ -5,13 +5,12 @@ import { timeout, restartableTask } from 'ember-concurrency'; export default class LoadSpinner extends Component { mapInstance = {}; - @restartableTask - loadStateTask = function* () { + @restartableTask loadStateTask = function* () { yield timeout(500); }; @action handleMapLoading() { - this.get('loadStateTask').perform(); + this.loadStateTask.perform(); } } diff --git a/app/components/mapbox/map-feature-renderer.js b/app/components/mapbox/map-feature-renderer.js index 8c4dd19c5..8039c2db4 100644 --- a/app/components/mapbox/map-feature-renderer.js +++ b/app/components/mapbox/map-feature-renderer.js @@ -5,13 +5,13 @@ export default class MapboxMapFeatureRenderer extends Component { // should be carto-feature-like model = {}; - @service - mainMap; + @service mainMap; // this is usually a query param, which comes through a string. shouldFitBounds = true; - didInsertElement() { + didInsertElement(...args) { + super.didInsertElement(...args); this.setSelectedFeature(this.model); if (this.shouldFitBounds) { @@ -21,7 +21,7 @@ export default class MapboxMapFeatureRenderer extends Component { setFitBounds(model) { const { bounds } = model; - this.get('mainMap.setBounds').perform(bounds); + this.mainMap.setBounds.perform(bounds); } setSelectedFeature(model) { diff --git a/app/components/print-view-controls.js b/app/components/print-view-controls.js index 1326950ed..d25f486f1 100644 --- a/app/components/print-view-controls.js +++ b/app/components/print-view-controls.js @@ -5,11 +5,9 @@ import { inject as service } from '@ember/service'; export default class PrintViewControls extends Component { classNames = ['print-view--controls', 'align-middle']; - @service('print') - printSvc; + @service('print') printSvc; - @service - metrics; + @service metrics; widowResize() { return new Promise((resolve) => { @@ -29,7 +27,7 @@ export default class PrintViewControls extends Component { event_action: 'Disabled print view', }); // GA - this.get('metrics').trackEvent('MatomoTagManager', { + this.metrics.trackEvent('MatomoTagManager', { category: 'Print', action: 'Disabled print view', name: 'export', diff --git a/app/components/tooltip-renderer.js b/app/components/tooltip-renderer.js index 231fc824a..a8a787072 100644 --- a/app/components/tooltip-renderer.js +++ b/app/components/tooltip-renderer.js @@ -3,10 +3,10 @@ import { computed } from '@ember/object'; import mustache from 'mustache'; export default class TooltipRenderer extends Component { - @computed('feature', 'template') + @computed('feature.properties', 'template') get renderedText() { const properties = this.get('feature.properties'); - const template = this.get('template'); + const { template } = this; return mustache.render(template, properties); } diff --git a/app/controllers/application.js b/app/controllers/application.js index a55ec3f57..f42ae2e33 100644 --- a/app/controllers/application.js +++ b/app/controllers/application.js @@ -2,21 +2,20 @@ import Controller from '@ember/controller'; import { assign } from '@ember/polyfills'; import { computed, action } from '@ember/object'; import { inject as service } from '@ember/service'; -import QueryParams from 'ember-parachute'; +import QueryParams from '@nycplanning/ember-parachute'; import config from 'labs-zola/config/environment'; const { defaultLayerGroupState, zoningDistrictOptionSets, commercialOverlaysOptionSets, - cityCouncilDistrictsOptionSets, floodplainEfirm2007OptionSets, floodplainPfirm2015OptionSets, } = config; const defaultLayerGroups = defaultLayerGroupState - .filter(layerGroup => layerGroup.visible) - .map(layerGroup => layerGroup.id) + .filter((layerGroup) => layerGroup.visible) + .map((layerGroup) => layerGroup.id) .sort(); const defaultSelectedOverlays = commercialOverlaysOptionSets @@ -39,57 +38,54 @@ const defaultSelectedPfirmOptionSets = floodplainPfirm2015OptionSets .reduce((acc, curr) => acc.concat(curr)) .sort(); -const defaultSelectedCouncilDistricts = ['2013']; +const defaultSelectedCouncilDistricts = ['2013']; // define new query params here: export const mapQueryParams = new QueryParams( - assign( - { - layerGroups: { - defaultValue: defaultLayerGroups, - refresh: true, - as: 'layer-groups', - }, - - selectedZoning: { - defaultValue: defaultSelectedZoningDistricts, - }, - - selectedOverlays: { - defaultValue: defaultSelectedOverlays, - }, - - selectedCouncilDistricts: { - defaultValue: defaultSelectedCouncilDistricts, - }, - - selectedFirm: { - defaultValue: defaultSelectedFirmOptionSets, - }, - - selectedPfirm: { - defaultValue: defaultSelectedPfirmOptionSets, - }, - - 'aerial-year': { - defaultValue: 'aerials-2016', - }, - - // TODO: After merge of params refactor, update print service based on this param. - print: { defaultValue: false }, + assign({ + layerGroups: { + defaultValue: defaultLayerGroups, + refresh: true, + as: 'layer-groups', }, - ), + + selectedZoning: { + defaultValue: defaultSelectedZoningDistricts, + }, + + selectedOverlays: { + defaultValue: defaultSelectedOverlays, + }, + + selectedCouncilDistricts: { + defaultValue: defaultSelectedCouncilDistricts, + }, + + selectedFirm: { + defaultValue: defaultSelectedFirmOptionSets, + }, + + selectedPfirm: { + defaultValue: defaultSelectedPfirmOptionSets, + }, + + 'aerial-year': { + defaultValue: 'aerials-2016', + }, + + // TODO: After merge of params refactor, update print service based on this param. + print: { defaultValue: false }, + }) ); -export default class ApplicationController extends Controller.extend(mapQueryParams.Mixin) { - @service('print') - printSvc; +export default class ApplicationController extends Controller.extend( + mapQueryParams.Mixin +) { + @service('print') printSvc; - @service - fastboot; + @service fastboot; - @service - mainMap; + @service mainMap; // this action extracts query-param-friendly state of layer groups // for various paramable layers @@ -106,15 +102,14 @@ export default class ApplicationController extends Controller.extend(mapQueryPar @action setModelsToDefault() { - this.model.layerGroups.forEach(model => model.rollbackAttributes()); + this.model.layerGroups.forEach((model) => model.rollbackAttributes()); this.handleLayerGroupChange(); } @computed('queryParamsState') get isDefault() { - const state = this.get('queryParamsState') || {}; + const state = this.queryParamsState || {}; const values = Object.values(state); - - return values.isEvery('changed', false); + return values.every(({ changed }) => changed === false); } } diff --git a/app/controllers/bookmarks.js b/app/controllers/bookmarks.js index 1cbf62232..67dff1ed6 100644 --- a/app/controllers/bookmarks.js +++ b/app/controllers/bookmarks.js @@ -11,8 +11,8 @@ export default Controller.extend({ // this gets us in trouble when we need to do // aggregate operations (like filtering) - bookmarksSettled: computedProp('model.[]', function() { - const bookmarks = this.get('model'); + bookmarksSettled: computedProp('model.[]', function () { + const bookmarks = this.model; const promises = bookmarks.mapBy('recordType'); return Promise.all(promises); diff --git a/app/controllers/map-feature.js b/app/controllers/map-feature.js index dce60b881..94e76d289 100644 --- a/app/controllers/map-feature.js +++ b/app/controllers/map-feature.js @@ -1,11 +1,14 @@ import Controller from '@ember/controller'; export default class MapFeatureController extends Controller { - queryParams = [{ - search: { - type: 'boolean', + queryParams = [ + { + search: { + type: 'boolean', + }, }, - }, 'shouldRefresh']; + 'shouldRefresh', + ]; shouldRefresh = false; } diff --git a/app/helpers/carto-download-link.js b/app/helpers/carto-download-link.js index 510e59ecb..ede2740e9 100644 --- a/app/helpers/carto-download-link.js +++ b/app/helpers/carto-download-link.js @@ -2,7 +2,9 @@ import { helper } from '@ember/component/helper'; import { buildSqlUrl } from '../utils/carto'; export function cartoDownloadLink([table, identifier, ids, format]) { - const query = `SELECT * FROM ${table} WHERE ${identifier} IN (${ids.join(',')})`; + const query = `SELECT * FROM ${table} WHERE ${identifier} IN (${ids.join( + ',' + )})`; return `${buildSqlUrl(query, format)}&filename=${table}`; } diff --git a/app/helpers/humanize-dasherized-words.js b/app/helpers/humanize-dasherized-words.js index 8be5dc403..1825e5bea 100644 --- a/app/helpers/humanize-dasherized-words.js +++ b/app/helpers/humanize-dasherized-words.js @@ -4,7 +4,7 @@ import { capitalize } from '@ember/string'; export function humanizeDasherizedWords([phrase]) { return phrase .split('-') - .map(word => capitalize(word)) + .map((word) => capitalize(word)) .join(' '); } diff --git a/app/helpers/sanitize.js b/app/helpers/sanitize.js index 81be6b1c9..ab74fbe4e 100644 --- a/app/helpers/sanitize.js +++ b/app/helpers/sanitize.js @@ -2,11 +2,14 @@ import { helper } from '@ember/component/helper'; import { htmlSafe } from '@ember/template'; export function sanitize([styleObject]) { - return styleObject ? htmlSafe( - Object - .keys(styleObject) - .reduce((acc, key) => acc.concat(`${key}:${styleObject[key]};`), ''), - ) : ''; + return styleObject + ? htmlSafe( + Object.keys(styleObject).reduce( + (acc, key) => acc.concat(`${key}:${styleObject[key]};`), + '' + ) + ) + : ''; } export default helper(sanitize); diff --git a/app/helpers/to-title-case.js b/app/helpers/to-title-case.js index 0911f5169..dc8a65bdc 100644 --- a/app/helpers/to-title-case.js +++ b/app/helpers/to-title-case.js @@ -1,7 +1,10 @@ import { helper } from '@ember/component/helper'; function toTitleCase([str]) { - return str.replace(/\w\S*/g, txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()); + return str.replace( + /\w\S*/g, + (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase() + ); } export default helper(toTitleCase); diff --git a/app/helpers/zoom-dependent-label.js b/app/helpers/zoom-dependent-label.js index abd540588..399534b0d 100644 --- a/app/helpers/zoom-dependent-label.js +++ b/app/helpers/zoom-dependent-label.js @@ -1,16 +1,11 @@ import Helper from '@ember/component/helper'; export default Helper.extend({ - compute([layerGroup, label, mapZoom]) { - const allMinzooms = layerGroup.layers.map((layer) => { - if (layer.style) { - return layer.style.minzoom; - } - return false; - }).filter(zoom => !!zoom); - const maxOfallMinzooms = (allMinzooms.length) ? Math.max(...allMinzooms) : false; - return (mapZoom < maxOfallMinzooms) ? label : null; + const largestMinZoom = layerGroup.get('largestMinZoom'); + if (typeof largestMinZoom !== 'number') { + return null; + } + return mapZoom < largestMinZoom ? label : null; }, - }); diff --git a/app/initializers/route-css-classes.js b/app/initializers/route-css-classes.js index e00283cf8..6dffbc808 100644 --- a/app/initializers/route-css-classes.js +++ b/app/initializers/route-css-classes.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; import { dasherize } from '@ember/string'; export function initialize() { - Ember.Route.reopen({ + Route.reopen({ fastboot: service(), activate(...args) { this._super(...args); @@ -34,13 +34,16 @@ export function initialize() { if (el.classList) { el.classList.remove(className); } else { - el.className = el.className.replace(new RegExp(`(^|\\b)${className.split(' ').join('|')}(\\b|$)`, 'gi'), ' '); + el.className = el.className.replace( + new RegExp(`(^|\\b)${className.split(' ').join('|')}(\\b|$)`, 'gi'), + ' ' + ); } } }, getRouteCssClass() { - return `${dasherize(this.get('routeName').replace(/\./g, '-'))}`; + return `${dasherize(this.routeName.replace(/\./g, '-'))}`; }, getBodyElement() { diff --git a/app/layers/draw-styles.js b/app/layers/draw-styles.js index 500d0270c..925616fed 100644 --- a/app/layers/draw-styles.js +++ b/app/layers/draw-styles.js @@ -46,7 +46,12 @@ export default [ { id: 'gl-draw-polygon-and-line-vertex-halo-active', type: 'circle', - filter: ['all', ['==', 'meta', 'vertex'], ['==', '$type', 'Point'], ['!=', 'mode', 'static']], + filter: [ + 'all', + ['==', 'meta', 'vertex'], + ['==', '$type', 'Point'], + ['!=', 'mode', 'static'], + ], paint: { 'circle-radius': 7, 'circle-color': '#FFF', @@ -56,7 +61,12 @@ export default [ { id: 'gl-draw-polygon-and-line-vertex-active', type: 'circle', - filter: ['all', ['==', 'meta', 'vertex'], ['==', '$type', 'Point'], ['!=', 'mode', 'static']], + filter: [ + 'all', + ['==', 'meta', 'vertex'], + ['==', '$type', 'Point'], + ['!=', 'mode', 'static'], + ], paint: { 'circle-radius': 6, 'circle-color': '#D96B27', diff --git a/app/layers/drawn-feature.js b/app/layers/drawn-feature.js index 27b191cbf..511671f0e 100644 --- a/app/layers/drawn-feature.js +++ b/app/layers/drawn-feature.js @@ -7,10 +7,7 @@ export default { 'line-color': 'rgba(62, 35, 234, 1)', 'line-opacity': 0.7, 'line-width': 2, - 'line-dasharray': [ - 5, - 2, - ], + 'line-dasharray': [5, 2], }, }, fill: { diff --git a/app/layers/selected-lot.js b/app/layers/selected-lot.js index 3708c018a..20458a4e5 100644 --- a/app/layers/selected-lot.js +++ b/app/layers/selected-lot.js @@ -20,20 +20,11 @@ const selectedLayers = { 'line-color': 'rgba(0, 10, 90, 1)', 'line-width': { stops: [ - [ - 13, - 1.5, - ], - [ - 15, - 8, - ], + [13, 1.5], + [15, 8], ], }, - 'line-dasharray': [ - 2, - 1.5, - ], + 'line-dasharray': [2, 1.5], }, }, }; diff --git a/app/mixins/track-page.js b/app/mixins/track-page.js index e095c0f2a..94c765a37 100644 --- a/app/mixins/track-page.js +++ b/app/mixins/track-page.js @@ -3,20 +3,21 @@ import Mixin from '@ember/object/mixin'; import { scheduleOnce } from '@ember/runloop'; import { on } from '@ember/object/evented'; -var skipDoubleCountingBecauseThisIsTheInitialPageLoad = true; +let skipDoubleCountingBecauseThisIsTheInitialPageLoad = true; export default Mixin.create({ metrics: service(), - trackPage: on('routeDidChange', function() { + trackPage: on('routeDidChange', function () { this._trackPage(); }), _trackPage() { scheduleOnce('afterRender', this, () => { const page = this.url; - const title = this.getWithDefault('currentRouteName', 'unknown'); - if(skipDoubleCountingBecauseThisIsTheInitialPageLoad) { + const title = this.currentRouteName || 'unknown'; + + if (skipDoubleCountingBecauseThisIsTheInitialPageLoad) { skipDoubleCountingBecauseThisIsTheInitialPageLoad = false; } else { this.metrics.trackPage({ page, title }); diff --git a/app/models/bookmark.js b/app/models/bookmark.js index dd0ad2f33..e174043bc 100644 --- a/app/models/bookmark.js +++ b/app/models/bookmark.js @@ -1,15 +1,14 @@ -import DS from 'ember-data'; +import DS from 'ember-data'; // eslint-disable-line import { computed } from '@ember/object'; +import { resolve } from 'rsvp'; +import ObjectProxy from '@ember/object/proxy'; +import PromiseProxyMixin from '@ember/object/promise-proxy-mixin'; -const { - PromiseObject, - Model, - attr, - belongsTo, -} = DS; +const ObjectPromiseProxy = ObjectProxy.extend(PromiseProxyMixin); +const { Model, attr, belongsTo } = DS; // eslint-disable-line export default class BookmarkModel extends Model { - @belongsTo('bookmark', { inverse: 'bookmark' }) bookmark; + @belongsTo('bookmark', { inverse: 'bookmark', polymorphic: true }) bookmark; @attr('string') address; @@ -17,15 +16,17 @@ export default class BookmarkModel extends Model { @computed('bookmark') get recordType() { - const bookmark = this.get('bookmark'); - return PromiseObject.create({ - promise: bookmark.then((bmark) => { - if (bmark) { - return bmark.get('constructor.modelName'); - } + const { bookmark } = this; + return ObjectPromiseProxy.create({ + promise: resolve( + bookmark.then((bmark) => { + if (bmark) { + return bmark.get('constructor.modelName'); + } - return 'address'; - }), + return 'address'; + }) + ), }); } } diff --git a/app/models/carto-geojson-feature.js b/app/models/carto-geojson-feature.js index c0a1471e9..5d1ab6895 100644 --- a/app/models/carto-geojson-feature.js +++ b/app/models/carto-geojson-feature.js @@ -1,16 +1,12 @@ -import DS from 'ember-data'; +import { attr } from '@ember-data/model'; import bbox from '@turf/bbox'; import { computed } from '@ember/object'; import Bookmarkable from './bookmark'; -const { attr } = DS; - export default class GeoJsonFeatureModel extends Bookmarkable { - @attr() - geometry; + @attr() geometry; - @attr() - properties; + @attr() properties; @attr('string', { defaultValue: 'Polygon', @@ -19,11 +15,9 @@ export default class GeoJsonFeatureModel extends Bookmarkable { // generic property names to be aliased into // from specific models - @attr('string') - title + @attr('string') title; - @attr('string') - subtitle + @attr('string') subtitle; @computed('geometry') get bounds() { diff --git a/app/models/commercial-overlay.js b/app/models/commercial-overlay.js index d73fd1154..96529ad75 100644 --- a/app/models/commercial-overlay.js +++ b/app/models/commercial-overlay.js @@ -1,13 +1,9 @@ -import { - fragment, -} from 'ember-data-model-fragments/attributes'; +import { attr } from '@ember-data/model'; import { alias } from '@ember/object/computed'; import CartoGeojsonFeature from './carto-geojson-feature'; export default class CommercialOverlay extends CartoGeojsonFeature { - @fragment('map-features/commercial-overlay') - properties; + @attr properties; - @alias('properties.overlay') - title; + @alias('properties.overlay') title; } diff --git a/app/models/e-designation.js b/app/models/e-designation.js index 53976d666..eae0f1cf0 100644 --- a/app/models/e-designation.js +++ b/app/models/e-designation.js @@ -1,9 +1,6 @@ -import { - fragment, -} from 'ember-data-model-fragments/attributes'; +import { attr } from '@ember-data/model'; import CartoGeojsonFeature from './carto-geojson-feature'; export default class EDesignation extends CartoGeojsonFeature { - @fragment('map-features/e-designation') - properties; + @attr properties; } diff --git a/app/models/layer.js b/app/models/layer.js index 9b7d96961..5a5396351 100644 --- a/app/models/layer.js +++ b/app/models/layer.js @@ -9,14 +9,14 @@ export default LayerModel.extend({ delegateVisibility() { const visible = this.get('layerGroup.visible'); - if (this.get('layerVisibilityType') === 'singleton') { - if (this.get('position') === 1 && this.get('layerGroup.visible')) { - next(() => (!this.get('isDestroyed') ? this.set('visibility', true) : null)); + if (this.layerVisibilityType === 'singleton') { + if (this.position === 1 && this.get('layerGroup.visible')) { + next(() => (!this.isDestroyed ? this.set('visibility', true) : null)); } else { - next(() => (!this.get('isDestroyed') ? this.set('visibility', false) : null)); + next(() => (!this.isDestroyed ? this.set('visibility', false) : null)); } } else { - next(() => (!this.get('isDestroyed') ? this.set('visibility', visible) : null)); + next(() => (!this.isDestroyed ? this.set('visibility', visible) : null)); } }, }); diff --git a/app/models/lot.js b/app/models/lot.js index 2bc305c21..5e546c866 100644 --- a/app/models/lot.js +++ b/app/models/lot.js @@ -1,16 +1,14 @@ -import { - fragment, -} from 'ember-data-model-fragments/attributes'; -import { alias } from '@ember/object/computed'; +import { attr } from '@ember-data/model'; import CartoGeojsonFeature from './carto-geojson-feature'; export default class Lot extends CartoGeojsonFeature { - @fragment('map-features/lot') - properties; + @attr properties; - @alias('properties.address') - title; + get title() { + return this.get('properties.address'); + } - @alias('properties.bbl') - subtitle; + get subtitle() { + return this.get('properties.bbl'); + } } diff --git a/app/models/map-features/commercial-overlay.js b/app/models/map-features/commercial-overlay.js deleted file mode 100644 index d4452345a..000000000 --- a/app/models/map-features/commercial-overlay.js +++ /dev/null @@ -1,11 +0,0 @@ -import DS from 'ember-data'; -import MF from 'ember-data-model-fragments'; - -const { attr } = DS; - -// this model fragment structures the "properties" -// node of a geojson feature -export default class CommercialOverlayFragment extends MF.Fragment { - @attr('string') - overlay; -} diff --git a/app/models/map-features/e-designation.js b/app/models/map-features/e-designation.js deleted file mode 100644 index df0008759..000000000 --- a/app/models/map-features/e-designation.js +++ /dev/null @@ -1,18 +0,0 @@ -import DS from 'ember-data'; -import MF from 'ember-data-model-fragments'; - -const { attr } = DS; - -export default class EDesignationFragment extends MF.Fragment { - @attr('string') - address; - - @attr('string') - ceqr_num; - - @attr('string') - enumber; - - @attr('string') - ulurp_num; -} diff --git a/app/models/map-features/lot.js b/app/models/map-features/lot.js deleted file mode 100644 index db2108316..000000000 --- a/app/models/map-features/lot.js +++ /dev/null @@ -1,568 +0,0 @@ -import DS from 'ember-data'; -import MF from 'ember-data-model-fragments'; -import { computed } from '@ember/object'; -import { alias } from '@ember/object/computed'; -import carto from 'labs-zola/utils/carto'; -import config from 'labs-zola/config/environment'; - -const { specialDistrictCrosswalk } = config; - -const { attr } = DS; - -const specialPurposeDistrictsSQL = function(table, spdist1, spdist2, spdist3) { - return `SELECT DISTINCT sdname, sdlbl FROM ${table} - WHERE sdlbl IN ('${spdist1}', '${spdist2}', '${spdist3}')`; -}; - -const getPrimaryZone = (zonedist = '') => { - if (!zonedist) return ''; - let primary = zonedist.match(/\w\d*/)[0].toLowerCase(); - // special handling for c1 and c2 - if ((primary === 'c1') || (primary === 'c2')) primary = 'c1-c2'; - // special handling for c3 and c3a - if ((primary === 'c3') || (primary === 'c3a')) primary = 'c3-c3a'; - return primary; -}; - -const bldgclassLookup = { - A0: 'One Family Dwellings - Cape Cod', - A1: 'One Family Dwellings - Two Stories Detached (Small or Moderate Size, With or Without Attic)', - A2: 'One Family Dwellings - One Story (Permanent Living Quarters)', - A3: 'One Family Dwellings - Large Suburban Residence', - A4: 'One Family Dwellings - City Residence', - A5: 'One Family Dwellings - Attached or Semi-Detached', - A6: 'One Family Dwellings - Summer Cottages', - A7: 'One Family Dwellings - Mansion Type or Town House', - A8: 'One Family Dwellings - Bungalow Colony/Land Coop Owned', - A9: 'One Family Dwellings - Miscellaneous', - - B1: 'Two Family Dwellings - Brick', - B2: 'Frame', - B3: 'Converted From One Family', - B9: 'Miscellaneous', - - C0: 'Walk-up Apartments - Three Families', - C1: 'Walk-up Apartments - Over Six Families Without Stores', - C2: 'Walk-up Apartments - Five to Six Families', - C3: 'Walk-up Apartments - Four Families', - C4: 'Walk-up Apartments - Old Law Tenements', - C5: 'Walk-up Apartments - Converted Dwelling or Rooming House', - C6: 'Walk-up Apartments - Cooperative', - C7: 'Walk-up Apartments - Over Six Families With Stores', - C8: 'Walk-up Apartments - Co-Op Conversion From Loft/Warehouse', - C9: 'Walk-up Apartments - Garden Apartments', - CM: 'Mobile Homes/Trailer Parks', - - D0: 'Elevator Apartments - Co-op Conversion from Loft/Warehouse', - D1: 'Elevator Apartments - Semi-fireproof (Without Stores)', - D2: 'Elevator Apartments - Artists in Residence', - D3: 'Elevator Apartments - Fireproof (Without Stores)', - D4: 'Elevator Apartments - Cooperatives (Other Than Condominiums)', - D5: 'Elevator Apartments - Converted', - D6: 'Elevator Apartments - Fireproof With Stores', - D7: 'Elevator Apartments - Semi-Fireproof With Stores', - D8: 'Elevator Apartments - Luxury Type', - D9: 'Elevator Apartments - Miscellaneous', - - E1: 'Warehouses - Fireproof', - E2: 'Warehouses - Contractor’s Warehouse', - E3: 'Warehouses - Semi-Fireproof', - E4: 'Warehouses - Frame, Metal', - E7: 'Warehouses - Warehouse, Self Storage', - E9: 'Warehouses - Miscellaneous', - - F1: 'Factory and Industrial Buildings - Heavy Manufacturing - Fireproof', - F2: 'Factory and Industrial Buildings - Special Construction - Fireproof', - F4: 'Factory and Industrial Buildings - Semi-Fireproof', - F5: 'Factory and Industrial Buildings - Light Manufacturing', - F8: 'Factory and Industrial Buildings - Tank Farms', - F9: 'Factory and Industrial Buildings - Miscellaneous', - - G: 'GARAGES AND GASOLINE STATIONS', - G0: 'Residential Tax Class 1 Garage', - G1: 'All Parking Garages', - G2: 'Auto Body/Collision or Auto Repair', - G3: 'Gas Station with Retail Store', - G4: 'Gas Station with Service/Auto Repair', - G5: 'Gas Station only with/without Small Kiosk', - G6: 'Licensed Parking Lot', - G7: 'Unlicensed Parking Lot', - G8: 'Car Sales/Rental with Showroom', - G9: 'Miscellaneous Garage or Gas Station', - GU: 'Car Sales/Rental without Showroom', - GW: 'Car Wash or Lubritorium Facility', - - H1: 'Hotels - Luxury Type', - H2: 'Hotels - Full Service Hotel', - H3: 'Hotels - Limited Service – Many Affiliated with National Chain', - H4: 'Hotels - Motels', - H5: 'Hotels - Private Club, Luxury Type', - H6: 'Hotels - Apartment Hotels', - H7: 'Hotels - Apartment Hotels-Co-op Owned', - H8: 'Hotels - Dormitories', - H9: 'Hotels - Miscellaneous', - HB: 'Hotels - Boutique 10-100 Rooms, with Luxury Facilities, Themed, Stylish, with Full Service Accommodations', - HH: 'Hotels - Hostel-Bed Rental in Dorm Like Setting with Shared Rooms & Bathrooms', - HR: 'Hotels - SRO- 1 or 2 People Housed in Individual Rooms in Multiple Dwelling Affordable Housing', - HS: 'Hotels - Extended Stay/Suite Amenities Similar to Apt., Typically Charge Weekly Rates & Less Expensive than Full Service Hotel', - - I1: 'Hospitals and Health - Hospitals, Sanitariums, Mental Institutions', - I2: 'Hospitals and Health - Infirmary', - I3: 'Hospitals and Health - Dispensary', - I4: 'Hospitals and Health - Staff Facilities', - I5: 'Hospitals and Health - Health Center, Child Center, Clinic', - I6: 'Hospitals and Health - Nursing Home', - I7: 'Hospitals and Health - Adult Care Facility', - I9: 'Hospitals and Health - Miscellaneous', - - J1: 'Theatres - Art Type (Seating Capacity under 400 Seats)', - J2: 'Theatres - Art Type (Seating Capacity Over 400 Seats)', - J3: 'Theatres - Motion Picture Theatre with Balcony', - J4: 'Theatres - Legitimate Theatres (Theatre Sole Use of Building)', - J5: 'Theatres - Theatre in Mixed Use Building', - J6: 'Theatres - T.V. Studios', - J7: 'Theatres - Off-Broadway Type', - J8: 'Theatres - Multiplex Picture Theatre', - J9: 'Theatres - Miscellaneous', - - K1: 'Store Buildings (Taxpayers Included) - One Story Retail Building', - K2: 'Store Buildings (Taxpayers Included) - Multi-Story Retail Building', - K3: 'Store Buildings (Taxpayers Included) - Multi-Story Department Store', - K4: 'Store Buildings (Taxpayers Included) - Predominant Retail with Other Uses', - K5: 'Store Buildings (Taxpayers Included) - Stand Alone Food Establishment', - K6: 'Store Buildings (Taxpayers Included) - Shopping Centers With or Without Parking', - K7: 'Store Buildings (Taxpayers Included) - Banking Facilities with or Without Parking', - K8: 'Store Buildings (Taxpayers Included) - Big Box Retail Not Affixed & Standing On Own Lot with Parking', - K9: 'Store Buildings (Taxpayers Included) - Miscellaneous', - - L1: 'Loft Buildinghs - Over Eight Stores (Mid-Manhattan Type)', - L2: 'Loft Buildinghs - Fireproof and Storage Type (Without Stores)', - L3: 'Loft Buildinghs - Semi-Fireproof', - L8: 'Loft Buildinghs - With Retail Stores Other Than Type 1', - L9: 'Loft Buildinghs - Miscellaneous', - - M1: 'Churches, Synagogues, etc. - Church, Synagogue, Chapel', - M2: 'Churches, Synagogues, etc. - Mission House (Non-Residential)', - M3: 'Churches, Synagogues, etc. - Parsonage, Rectory', - M4: 'Churches, Synagogues, etc. - Convents', - M9: 'Churches, Synagogues, etc. - Miscellaneous', - - N1: 'Asylums and Homes - Asylums', - N2: 'Asylums and Homes - Homes for Indigent Children, Aged, Homeless', - N3: 'Asylums and Homes - Orphanages', - N4: 'Asylums and Homes - Detention House For Wayward Girls', - N9: 'Asylums and Homes - Miscellaneous', - - O1: 'Office Buildings - Office Only – 1 Story', - O2: 'Office Buildings - Office Only – 2-6 Stories', - O3: 'Office Buildings - Office Only – 7-19 Stories', - O4: 'Office Buildings - Office Only or Office with Comm – 20 Stories or More', - O5: 'Office Buildings - Office with Comm – 1 to 6 Stories', - O6: 'Office Buildings - Office with Comm – 7 to 19 Stories', - O7: 'Office Buildings - Professional Buildings/Stand Alone Funeral Homes', - O8: 'Office Buildings - Office with Apartments Only (No Comm)', - O9: 'Office Buildings - Miscellaneous and Old Style Bank Bldgs', - - P1: 'Places of Public Assembly (indoor) and Cultural - Concert Halls', - P2: 'Places of Public Assembly (indoor) and Cultural - Lodge Rooms', - P3: 'Places of Public Assembly (indoor) and Cultural - YWCA, YMCA, YWHA, YMHA, PAL', - P4: 'Places of Public Assembly (indoor) and Cultural - Beach Club', - P5: 'Places of Public Assembly (indoor) and Cultural - Community Center', - P6: 'Places of Public Assembly (indoor) and Cultural - Amusement Place, Bathhouse, Boat House', - P7: 'Places of Public Assembly (indoor) and Cultural - Museum', - P8: 'Places of Public Assembly (indoor) and Cultural - Library', - P9: 'Places of Public Assembly (indoor) and Cultural - Miscellaneous', - - Q0: 'Outdoor Recreation Facilities - Open Space', - Q1: 'Outdoor Recreation Facilities - Parks/Recreation Facilities', - Q2: 'Outdoor Recreation Facilities - Playground', - Q3: 'Outdoor Recreation Facilities - Outdoor Pool', - Q4: 'Outdoor Recreation Facilities - Beach', - Q5: 'Outdoor Recreation Facilities - Golf Course', - Q6: 'Outdoor Recreation Facilities - Stadium, Race Track, Baseball Field', - Q7: 'Outdoor Recreation Facilities - Tennis Court', - Q8: 'Outdoor Recreation Facilities - Marina, Yacht Club', - Q9: 'Outdoor Recreation Facilities - Miscellaneous', - - R0: 'Condominiums - Condo Billing Lot', - R1: 'Condominiums - Residential Unit in 2-10 Unit Bldg', - R2: 'Condominiums - Residential Unit in Walk-Up Bldg', - R3: 'Condominiums - Residential Unit in 1-3 Story Bldg', - R4: 'Condominiums - Residential Unit in Elevator Bldg', - R5: 'Condominiums - Miscellaneous Commercial', - R6: 'Condominiums - Residential Unit of 1-3 Unit Bldg-Orig Class 1', - R7: 'Condominiums - Commercial Unit of 1-3 Units Bldg- Orig Class 1', - R8: 'Condominiums - Commercial Unit of 2-10 Unit Bldg', - R9: 'Condominiums - Co-op within a Condominium', - RA: 'Condominiums - Cultural, Medical, Educational, etc.', - RB: 'Condominiums - Office Space', - RC: 'Condominiums - Commercial Building (Mixed Commercial Condo Building Classification Codes)', - RD: 'Condominiums - Residential Building (Mixed Residential Condo Building Classification Codes)', - RG: 'Condominiums - Indoor Parking', - RH: 'Condominiums - Hotel/Boatel', - RI: 'Condominiums - Mixed Warehouse/Factory/Industrial & Commercial', - RK: 'Condominiums - Retail Space', - RM: 'Condominiums - Mixed Residential & Commercial Building (Mixed Residential & Commercial)', - RP: 'Condominiums - Outdoor Parking', - RR: 'Condominiums - Condominium Rentals', - RS: 'Condominiums - Non-Business Storage Space', - RT: 'Condominiums - Terraces/Gardens/Cabanas', - RW: 'Condominiums - Warehouse/Factory/Industrial', - RX: 'Condominiums - Mixed Residential, Commercial & Industrial', - RZ: 'Condominiums - Mixed Residential & Warehouse', - - S0: 'Residence (Multiple Use) - Primarily One Family with Two Stores or Offices', - S1: 'Residence (Multiple Use) - Primarily One Family with One Store or Office', - S2: 'Residence (Multiple Use) - Primarily Two Family with One Store or Office', - S3: 'Residence (Multiple Use) - Primarily Three Family with One Store or Office', - S4: 'Residence (Multiple Use) - Primarily Four Family with One Store or Office', - S5: 'Residence (Multiple Use) - Primarily Five to Six Family with One Store or Office', - S9: 'Residence (Multiple Use) - Single or Multiple Dwelling with Stores or Offices', - - T1: 'Transportation Facilities (Assessed in ORE) - Airport, Air Field, Terminal', - T2: 'Transportation Facilities (Assessed in ORE) - Pier, Dock, Bulkhead', - T9: 'Transportation Facilities (Assessed in ORE) - Miscellaneous', - - U0: 'Utility Bureau Properties - Utility Company Land and Building', - U1: 'Utility Bureau Properties - Bridge, Tunnel, Highway', - U2: 'Utility Bureau Properties - Gas or Electric Utility', - U3: 'Utility Bureau Properties - Ceiling Railroad', - U4: 'Utility Bureau Properties - Telephone Utility', - U5: 'Utility Bureau Properties - Communications Facilities Other Than Telephone', - U6: 'Utility Bureau Properties - Railroad - Private Ownership', - U7: 'Utility Bureau Properties - Transportation - Public Ownership', - U8: 'Utility Bureau Properties - Revocable Consent', - U9: 'Utility Bureau Properties - Miscellaneous', - - V0: 'Vacant Land - Zoned Residential; Not Manhattan', - V1: 'Vacant Land - Zoned Commercial or Manhattan Residential', - V2: 'Vacant Land - Zoned Commercial Adjacent to Class 1 Dwelling; Not Manhattan', - V3: 'Vacant Land - Zoned Primarily Residential; Not Manhattan', - V4: 'Vacant Land - Police or Fire Department', - V5: 'Vacant Land - School Site or Yard', - V6: 'Vacant Land - Library, Hospital or Museum', - V7: 'Vacant Land - Port Authority of NY and NJ', - V8: 'Vacant Land - New York State & U.S. Government', - V9: 'Vacant Land - Miscellaneous', - - W1: 'Educational Structures - Public Elementary, Junior or Senior High', - W2: 'Educational Structures - Parochial School, Yeshiva', - W3: 'Educational Structures - School or Academy', - W4: 'Educational Structures - Training School', - W5: 'Educational Structures - City University', - W6: 'Educational Structures - Other College and University', - W7: 'Educational Structures - Theological Seminary', - W8: 'Educational Structures - Other Private School', - W9: 'Educational Structures - Miscellaneous', - - Y1: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Fire Department', - Y2: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Police Department', - Y3: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Prison, Jail, House of Detention', - Y4: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Military and Naval Installation', - Y5: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Department of Real Estate', - Y6: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Department of Sanitation', - Y7: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Department of Ports and Terminals', - Y8: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Department of Public Works', - Y9: 'Selected Government Installations (Excluding Office Buildings, Training Schools, Academic, Garages, Warehouses, Piers, Air Fields, Vacant Land, Vacant Sites, and Land Under Water and Easements) - Department of Environmental Protection', - - Z0: 'Miscellaneous - Tennis Court, Pool, Shed, etc.', - Z1: 'Miscellaneous - Court House', - Z2: 'Miscellaneous - Public Parking Area', - Z3: 'Miscellaneous - Post Office', - Z4: 'Miscellaneous - Foreign Government', - Z5: 'Miscellaneous - United Nations', - Z7: 'Miscellaneous - Easement', - Z8: 'Miscellaneous - Cemetery', - Z9: 'Miscellaneous - Other', -}; - -const boroughLookup = { - BX: 'Bronx', - BK: 'Brooklyn', - MN: 'Manhattan', - QN: 'Queens', - SI: 'Staten Island', -}; - -const boroLookup = { - 1: 'Manhattan', - 2: 'Bronx', - 3: 'Brooklyn', - 4: 'Queens', - 5: 'Staten Island', -}; - -const ownertypeLookup = { - C: 'City', - M: 'Mixed City & Private', - O: 'Public Authority, State, or Federal', - P: 'Private', - X: 'Mixed', -}; - -const landuseLookup = { - '01': 'One & Two Family Buildings', - '02': 'Multi-Family Walk-Up Buildings', - '03': 'Multi-Family Elevator Buildings', - '04': 'Mixed Residential & Commercial Buildings', - '05': 'Commercial & Office Buildings', - '06': 'Industrial & Manufacturing', - '07': 'Transportation & Utility', - '08': 'Public Facilities & Institutions', - '09': 'Open Space & Outdoor Recreation', - 10: 'Parking Facilities', - 11: 'Vacant Land', -}; - -// this model fragment structures the "properties" -// node of a geojson feature -export default class LotFragment extends MF.Fragment { - @attr('string') address; - - @attr('number') bbl; - - @attr('number') bldgarea; - - @attr('string') bldgclass; - - @attr('string') borocode; - - @attr('number') lat; - - @attr('number') lon; - - @attr('number') block; - - @attr('string') borough; - - @attr('string') cd; - - @attr('number') condono; - - @attr('string') council; - - @attr('string') firecomp; - - @attr('string') histdist; - - @attr('string') landmark; - - @attr('string') landuse; - - @attr('number') lot; - - @attr('number') lotarea; - - @attr('number') lotdepth; - - @attr('number') lotfront; - - @attr('number') notes; - - @attr('number') numbldgs; - - @attr('number') numfloors; - - @attr('string') ownername; - - @attr('string') ownertype; - - @attr('string') overlay1; - - @attr('string') overlay2; - - @attr('string') policeprct; - - @attr('string') sanitboro; - - @attr('string') sanitdistr; - - @attr('string') sanitsub; - - @attr('string') schooldist; - - @attr('string') spdist1; - - @attr('string') spdist2; - - @attr('string') spdist3; - - @attr('number') unitsres; - - @attr('number') unitstotal; - - @attr('string') yearbuilt; - - @attr('number') yearalter1; - - @attr('number') yearalter2; - - @attr('number') zipcode; - - @attr('string') zonedist1; - - @attr('string') zonedist2; - - @attr('string') zonedist3; - - @attr('string') zonedist4; - - @attr('string') zonemap; - - @alias('borocode') boro; - - @computed('bldgclass') - get bldgclassname() { - return bldgclassLookup[this.bldgclass]; - } - - @computed('borough') - get boroname() { - return boroughLookup[this.borough]; - } - - @computed('cd') - get cdName() { - const borocd = this.cd; - const cdborocode = `${borocd}`.substring(0, 1); - const cd = parseInt(`${borocd}`.substring(1, 3), 10).toString(); - return `${boroLookup[cdborocode]} Community District ${cd}`; - } - - @computed('cd') - get cdURLSegment() { - const borocd = this.cd; - const borocode = this.borocode; // eslint-disable-line prefer-destructuring - const cleanBorough = boroLookup[borocode].toLowerCase().replace(/\s/g, '-'); - const cd = parseInt(`${borocd}`.substring(1, 3), 10).toString(); - return `${cleanBorough}/${cd}`; - } - - @computed('landuse') - get landusename() { - return landuseLookup[this.landuse]; - } - - @computed('ownertype') - get ownertypename() { - return ownertypeLookup[this.ownertype]; - } - - @computed('address') - get housenum() { - const match = this.address.match(/([0-9-]*)\s[0-9A-Za-z\s]*/); - return match ? match[1] : ''; - } - - @computed('address') - get street() { - const match = this.address.match(/[0-9-]*\s([0-9A-Za-z\s]*)/); - return match ? match[1] : ''; - } - - @computed('zonemap') - get paddedZonemap() { - const zonemap = this.get('zonemap'); - return (`0${zonemap}`).slice(-3); - } - - @computed('zonedist1') - get primaryzone1() { - const zonedist = this.get('zonedist1'); - return getPrimaryZone(zonedist); - } - - @computed('zonedist2') - get primaryzone2() { - const zonedist = this.get('zonedist2'); - return getPrimaryZone(zonedist); - } - - @computed('zonedist3') - get primaryzone3() { - const zonedist = this.get('zonedist3'); - return getPrimaryZone(zonedist); - } - - @computed('zonedist4') - get primaryzone4() { - const zonedist = this.get('zonedist4'); - return getPrimaryZone(zonedist); - } - - @computed('spdist1', 'spdist2', 'spdist3') - get parentSpecialPurposeDistricts() { - const DISTRICT_TOOLS_URL = 'https://www1.nyc.gov/site/planning/zoning/districts-tools'; - const spdist1 = this.get('spdist1'); - const spdist2 = this.get('spdist2'); - const spdist3 = this.get('spdist3'); - - return carto.SQL(specialPurposeDistrictsSQL('dcp_special_purpose_districts', spdist1, spdist2, spdist3)) - .then(response => response.map( - (item) => { - const [, [anchorName, boroName]] = specialDistrictCrosswalk - .find(([dist]) => dist === item.sdname); - const specialDistrictLink = `${DISTRICT_TOOLS_URL}/special-purpose-districts-${boroName}.page#${anchorName}`; - - return { - label: item.sdlbl.toUpperCase(), - name: item.sdname, - anchorName, - boroName, - specialDistrictLink, - }; - }, - )); - } - - @computed('borocode', 'block', 'lot') - get biswebLink() { - const BISWEB_HOST = 'http://a810-bisweb.nyc.gov/bisweb/PropertyBrowseByBBLServlet'; - - return `${BISWEB_HOST}?allborough=${this.borocode}&allblock=${this.block}&alllot=${this.lot}&go5=+GO+&requestid=0`; - } - - @computed('cdURLSegment') - get fullCommunityDistrictURL() { - return `https://communityprofiles.planning.nyc.gov/${this.cdURLSegment}`; - } - - @computed('primaryzone1', 'primaryzone2', 'primaryzone3', 'primaryzone4') - get zoneDistLinks() { - const primaryZones = this.getProperties('primaryzone1', 'primaryzone2', 'primaryzone3', 'primaryzone4'); - - Object.keys(primaryZones).forEach((key) => { - const value = primaryZones[key]; - primaryZones[key] = `https://www1.nyc.gov/site/planning/zoning/districts-tools/${value}.page`; - }); - - return { - ...primaryZones, - }; - } - - @computed('bbl') - get digitalTaxMapLink() { - return `http://maps.nyc.gov/taxmap/map.htm?searchType=BblSearch&featureTypeName=EVERY_BBL&featureName=${this.bbl}`; - } - - @computed('zonemap') - get zoningMapLink() { - return `https://s-media.nyc.gov/agencies/dcp/assets/files/pdf/zoning/zoning-maps/map${this.zonemap}.pdf`; - } - - @computed('paddedZonemap') - get historicalZoningMapLink() { - return `https://s-media.nyc.gov/agencies/dcp/assets/files/pdf/zoning/zoning-maps/maps${this.paddedZonemap}.pdf`; - } - - @computed('borocode', 'block', 'lot') - get ACRISLink() { - return `http://a836-acris.nyc.gov/bblsearch/bblsearch.asp?borough=${this.borocode}&block=${this.block}&lot=${this.lot}`; - } - - @computed('council') - get councilLink() { - return `https://council.nyc.gov/district-${this.council}/`; - } -} diff --git a/app/models/map-features/special-purpose-district.js b/app/models/map-features/special-purpose-district.js deleted file mode 100644 index 5fcbaed84..000000000 --- a/app/models/map-features/special-purpose-district.js +++ /dev/null @@ -1,25 +0,0 @@ -import DS from 'ember-data'; -import MF from 'ember-data-model-fragments'; -import config from 'labs-zola/config/environment'; -import { computed } from '@ember/object'; - -const { specialDistrictCrosswalk } = config; -const { attr } = DS; - -// this model fragment structures the "properties" -// node of a geojson feature -export default class SpecialPurposeDistrictFragment extends MF.Fragment { - @attr('string') - sdlbl; - - @attr('string') - sdname; - - @computed('sdname') - get readMoreLink() { - const name = this.get('sdname'); - const [, [anchorName, boroName]] = specialDistrictCrosswalk - .find(([dist]) => dist === name) || [[], []]; - return `https://www1.nyc.gov/site/planning/zoning/districts-tools/special-purpose-districts-${boroName}.page#${anchorName}`; - } -} diff --git a/app/models/map-features/special-purpose-subdistrict.js b/app/models/map-features/special-purpose-subdistrict.js deleted file mode 100644 index 333c9b976..000000000 --- a/app/models/map-features/special-purpose-subdistrict.js +++ /dev/null @@ -1,27 +0,0 @@ -import DS from 'ember-data'; -import MF from 'ember-data-model-fragments'; -import { computed } from '@ember/object'; -import config from 'labs-zola/config/environment'; - -const { specialDistrictCrosswalk } = config; - -const { attr } = DS; - -// this model fragment structures the "properties" -// node of a geojson feature -export default class SpecialPurposeSubdistrictFragment extends MF.Fragment { - @attr('string') - splbl; - - @attr('string') - spname; - - @computed('sdname') - get readMoreLink() { - const name = this.get('sdname'); - const [, [anchorName, boroName]] = specialDistrictCrosswalk - .find(([dist]) => dist === name) || [[], []]; - - return `https://www1.nyc.gov/site/planning/zoning/districts-tools/special-purpose-districts-${boroName}.page#${anchorName}`; - } -} diff --git a/app/models/map-features/zoning-district.js b/app/models/map-features/zoning-district.js deleted file mode 100644 index b351020dd..000000000 --- a/app/models/map-features/zoning-district.js +++ /dev/null @@ -1,136 +0,0 @@ -import DS from 'ember-data'; -import MF from 'ember-data-model-fragments'; -import { computed } from '@ember/object'; - -const zoningDescriptions = { - m1: 'M1 districts are designated for areas with light industries.', - m2: 'M2 districts occupy the middle ground between light and heavy industrial areas.', - m3: 'M3 districts are designated for areas with heavy industries that generate noise, traffic or pollutants.', - c1: 'C1 districts are mapped along streets that serve local retail needs within residential neighborhoods.', - c2: 'C2 districts are mapped along streets that serve local retail needs within residential neighborhoods.', - c3: 'C3 districts permit waterfront recreational activities, primarily boating and fishing, in areas along the waterfront.', - c4: 'C4 districts are mapped in regional centers where larger stores, theaters and office uses serve a wider region and generate more traffic than neighborhood shopping areas.', - c5: 'C5 districts are intended for commercial areas that require central locations or serve the entire metropolitan region.', - c6: 'C6 districts are intended for commercial areas that require central locations or serve the entire metropolitan region.', - c7: 'C7 districts are specifically designated for large open amusement parks.', - c8: 'C8 districts, bridging commercial and manufacturing uses, provide for automotive and other heavy commercial services that often require large amounts of land.', - p: 'A public park is any park, playground, beach, parkway, or roadway within the jurisdiction and control of the New York City Commissioner of Parks & Recreation. Typically, public parks are not subject to zoning regulations.', - r1: 'R1 districts are leafy, low-density neighborhoods of large, single-family detached homes on spacious lots.', - r2: 'Residential development in R2 districts is limited exclusively to single-family detached houses.', - r2a: 'R2A is a contextual district intended to preserve low-rise neighborhoods characterized by single-family detached homes on lots with a minimum width of 40 feet', - r2x: 'R2X districts allow large single-family detached houses on lots with a minimum width of 30 feet.', - r31: 'R3-1 contextual districts are the lowest density districts that allow semi-detached one- and two-family residences, as well as detached homes', - r32: 'R3-2 districts are general residence districts that allow a variety of housing types, including low-rise attached houses, small multifamily apartment houses, and detached and semi-detached one- and two-family residences.', - r3a: 'Characteristic of many of the city’s older neighborhoods, R3A contextual districts feature modest single- and two-family detached residences on zoning lots as narrow as 25 feet in width.', - r3x: 'R3X contextual districts, mapped extensively in lower-density neighborhoods permit only one- and two-family detached homes on lots that must be at least 35 feet wide.', - r4: 'R4 districts are general residence districts that allow a variety of housing types, including low-rise attached houses, small multifamily apartment houses, and detached and semi-detached one- and two-family residences.', - r41: 'R4-1 contextual districts permit only one- and two-family detached and semi-detached houses.', - r4a: 'R4A contextual districts permit only one- and two-family detached residences characterized by houses with two stories and an attic beneath a pitched roof.', - r4b: 'Primarily a contextual rowhouse district limited to low-rise, one- and two-family attached residences, R4B districts also permit detached and semi-detached buildings.', - r5: 'R5 districts are general residence districts that allow a variety of housing types, including low-rise attached houses, small multifamily apartment houses, and detached and semi-detached one- and two-family residences.', - r5a: 'R5A contextual districts permit only one- and two-family detached residences characterized by houses with two stories and an attic beneath a pitched roof.', - r5b: 'Primarily a contextual rowhouse district limited to low-rise, one- and two-family attached residences, R4B districts also permit detached and semi-detached buildings.', - r5d: 'R5D contextual districts are designed to encourage residential growth along major corridors in auto-dependent areas of the city.', - r6: 'R6 zoning districts are widely mapped in built-up, medium-density areas of the city whose character can range from neighborhoods with a diverse mix of building types and heights to large-scale “tower in the park” developments.', - r6a: 'R6A contextual districts produce high lot coverage, six- to eight-story apartment buildings set at or near the street line designed to be compatible with older buildings in medium-density neighborhoods.', - r6b: 'R6B contextual districts are often traditional row house districts, which preserve the scale and harmonious streetscape of medium-density neighborhoods of four-story attached buildings developed during the 19th century.', - r7: 'R7 zoning districts are medium-density apartment house districts that encourage lower apartment buildings on smaller lots and, on larger lots, taller buildings with less lot coverage.', - r7a: 'R7A contextual districts produce high lot coverage, seven- to nine-story apartment buildings set at or near the street line designed to be compatible with older buildings in medium-density neighborhoods.', - r7b: 'R7B contextual districts generally produce six- to seven-story apartment buildings in medium-density neighborhoods.', - r7d: 'R7D contextual districts promote new medium-density contextual development along transit corridors that range between 10 and 11 stories.', - r7x: 'R7X contextual districts are flexible medium-density districts that generally produce 12- to 14-story buildings.', - r8: 'R8 zoning districts are high-density apartment house districts that encourage mid-rise apartment buildings on smaller lots and, on larger lots, taller buildings with less lot coverage.', - r8a: 'R8A contextual districts are high-density districts designed to produce apartment buildings at heights of roughly twelve to fourteen stories.', - r8b: 'R8B contextual districts are designed to preserve the character and scale of taller rowhouse neighborhoods.', - r8x: 'R8X contextual districts are flexible high-density districts that generally produce 15- to 17-story buildings.', - r9: 'R9 districts are high-density districts that permit a wide range of building types including towers.', - r9a: 'R9A contextual districts are high-density districts designed to produce new buildings between 13 and 17 stories that mimics older, high street wall buildings in high-density neighborhoods.', - r9d: 'R9D contextual districts are high-density districts that permit towers that sit on a contextual base.', - r9x: 'R9X contextual districts are high-density districts designed to produce new buildings between 16 and 20 stories that mimics older, high street wall buildings in high-density neighborhoods.', - r10: 'R10 districts are high-density districts that permit a wide range of building types including towers.', - r10a: 'R10-A contextual districts are high-density districts designed to produce new buildings between 21 and 23 stories that mimics older, high street wall buildings in high-density neighborhoods.', - r10x: 'R10X contextual districts are high-density districts that permit towers that sit on a contextual base.', - bpc: 'The Special Battery Park City District (BPC) was created, in accordance with a master plan, to govern extensive residential and commercial development in an area on the Hudson River close to the business core of Lower Manhattan. The district regulates permitted uses and bulk within three specified areas and establishes special design controls with respect to front building walls, building heights, waterfront design and parking.', -}; - -const zoningAbbr = { - R2A: 'r2a', - R2X: 'r2x', - 'R3-1': 'r31', - 'R3-2': 'r32', - R3A: 'r3a', - R3X: 'r3x', - 'R4-1': 'r41', - R4A: 'r4a', - R4B: 'r4b', - R5A: 'r5a', - R5B: 'r5b', - R5D: 'r5d', - R6A: 'r6a', - R6B: 'r6b', - R7A: 'r7a', - R7B: 'r7b', - R7D: 'r7d', - R7X: 'r7x', - R8A: 'r8a', - R8B: 'r8b', - R8X: 'r8x', - R9A: 'r9a', - R9D: 'r9d', // R9D does not have a route - R9X: 'r9x', - R10A: 'r10a', - R10X: 'r10x', // R10X does not have a route - BPC: 'bpc', -}; - -const { attr } = DS; - -// this model fragment structures the "properties" -// node of a geojson feature -export default class ZoningDistrictFragment extends MF.Fragment { - @attr('string') - zonedist; - - @computed('zonedist') - get primaryzone() { - const zonedist = this.get('zonedist'); - // convert R6A to r6 - const primary = zonedist.match(/\w\d*/)[0].toLowerCase(); - return primary; - } - - @computed('zonedist') - get zoneabbr() { - const zonedist = this.get('zonedist'); - const abbr = zonedist.match(/\w\d*/)[0].toLowerCase(); - - if (zonedist in zoningAbbr) { - return zoningAbbr[zonedist]; - } - - return abbr; - } - - @computed('zoneabbr') - get description() { - const zoneabbr = this.get('zoneabbr'); - - return zoningDescriptions[zoneabbr]; - } - - @computed('primaryzone') - get primaryzoneURL() { - const primaryzone = this.get('primaryzone'); - let url = ''; - - if ((primaryzone === 'c1') || (primaryzone === 'c2')) { - url = 'c1-c2'; - } else if (primaryzone === 'c3') { - url = 'c3-c3a'; - } else { - url = primaryzone; - } - - return url; - } -} diff --git a/app/models/map-features/zoning-map-amendment.js b/app/models/map-features/zoning-map-amendment.js deleted file mode 100644 index 8943c6af3..000000000 --- a/app/models/map-features/zoning-map-amendment.js +++ /dev/null @@ -1,31 +0,0 @@ -import DS from 'ember-data'; -import MF from 'ember-data-model-fragments'; -import { computed } from '@ember/object'; - -const { attr } = DS; - -// this model fragment structures the "properties" -// node of a geojson feature -export default class ZoningMapAmendmentFragment extends MF.Fragment { - @attr('string') ulurpno; - - @attr('string') project_na; - - @attr('string') effective; - - @attr('string') status; - - @attr('string') lucats; - - @computed('effective') - get effectiveDisplay() { - return import('moment').then(({ default: moment }) => { - const effective = this.get('effective'); - - if (effective) { - return moment(effective).utc().format('LL'); - } - return 'To be determined'; - }); - } -} diff --git a/app/models/source.js b/app/models/source.js index 9c9821123..774882704 100644 --- a/app/models/source.js +++ b/app/models/source.js @@ -1,6 +1,6 @@ -import DS from 'ember-data'; +import Model, { attr } from '@ember-data/model'; -export default DS.Model.extend({ - meta: DS.attr(), - minzoom: DS.attr('number'), +export default Model.extend({ + meta: attr(), + minzoom: attr('number'), }); diff --git a/app/models/special-purpose-district.js b/app/models/special-purpose-district.js index d57d6a50b..d8b6c4294 100644 --- a/app/models/special-purpose-district.js +++ b/app/models/special-purpose-district.js @@ -1,16 +1,11 @@ -import { - fragment, -} from 'ember-data-model-fragments/attributes'; +import { attr } from '@ember-data/model'; import { alias } from '@ember/object/computed'; import CartoGeojsonFeature from './carto-geojson-feature'; export default class SpecialPurposeDistrict extends CartoGeojsonFeature { - @fragment('map-features/special-purpose-district') - properties; + @attr properties; - @alias('properties.sdname') - title; + @alias('properties.sdname') title; - @alias('properties.sdlbl') - subtitle; + @alias('properties.sdlbl') subtitle; } diff --git a/app/models/special-purpose-subdistrict.js b/app/models/special-purpose-subdistrict.js index 2b41baf2e..12adf9299 100644 --- a/app/models/special-purpose-subdistrict.js +++ b/app/models/special-purpose-subdistrict.js @@ -1,16 +1,11 @@ -import { - fragment, -} from 'ember-data-model-fragments/attributes'; +import { attr } from '@ember-data/model'; import { alias } from '@ember/object/computed'; import CartoGeojsonFeature from './carto-geojson-feature'; export default class SpecialPurposeSubdistrict extends CartoGeojsonFeature { - @fragment('map-features/special-purpose-subdistrict') - properties; + @attr properties; - @alias('properties.spname') - title; + @alias('properties.spname') title; - @alias('properties.splbl') - subtitle; + @alias('properties.splbl') subtitle; } diff --git a/app/models/zoning-district.js b/app/models/zoning-district.js index 8d471a037..30b37a20d 100644 --- a/app/models/zoning-district.js +++ b/app/models/zoning-district.js @@ -1,13 +1,9 @@ -import { - fragment, -} from 'ember-data-model-fragments/attributes'; +import { attr } from '@ember-data/model'; import { alias } from '@ember/object/computed'; import CartoGeojsonFeature from './carto-geojson-feature'; export default class ZoningDistrict extends CartoGeojsonFeature { - @fragment('map-features/zoning-district') - properties; + @attr properties; - @alias('properties.zonedist') - title; + @alias('properties.zonedist') title; } diff --git a/app/models/zoning-map-amendment.js b/app/models/zoning-map-amendment.js index 58c8bb2ee..dcea177ae 100644 --- a/app/models/zoning-map-amendment.js +++ b/app/models/zoning-map-amendment.js @@ -1,16 +1,11 @@ -import { - fragment, -} from 'ember-data-model-fragments/attributes'; +import { attr } from '@ember-data/model'; import { alias } from '@ember/object/computed'; import CartoGeojsonFeature from './carto-geojson-feature'; export default class ZoningMapAmendment extends CartoGeojsonFeature { - @fragment('map-features/zoning-map-amendment') - properties; + @attr properties; - @alias('properties.project_na') - title; + @alias('properties.project_na') title; - @alias('properties.lucats') - subtitle; + @alias('properties.lucats') subtitle; } diff --git a/app/router.js b/app/router.js index bc9320c71..070a1ce16 100644 --- a/app/router.js +++ b/app/router.js @@ -1,9 +1,10 @@ import EmberRouter from '@ember/routing/router'; -import trackPage from './mixins/track-page'; import config from 'labs-zola/config/environment'; +import trackPage from './mixins/track-page'; export default class Router extends EmberRouter.extend(trackPage) { location = config.locationType; + rootURL = config.rootURL; } @@ -19,12 +20,16 @@ Router.map(function () {// eslint-disable-line this.route('features'); // views for individual records of data - this.route('map-feature', { path: '/l' }, function() { + this.route('map-feature', { path: '/l' }, function () { this.route('lot', { path: 'lot/:boro/:block/:lot' }); this.route('zoning-district', { path: '/zoning-district/:id' }); this.route('commercial-overlay', { path: '/commercial-overlay/:id' }); - this.route('special-purpose-district', { path: '/special-purpose-district/:id' }); - this.route('special-purpose-subdistrict', { path: '/special-purpose-subdistrict/:id' }); + this.route('special-purpose-district', { + path: '/special-purpose-district/:id', + }); + this.route('special-purpose-subdistrict', { + path: '/special-purpose-subdistrict/:id', + }); this.route('zoning-map-amendment', { path: '/zma/:id' }); this.route('e-designation', { path: '/e-designation/:id' }); }); diff --git a/app/routes/about.js b/app/routes/about.js index 6c74252aa..d09f667b2 100644 --- a/app/routes/about.js +++ b/app/routes/about.js @@ -1,4 +1,3 @@ import Route from '@ember/routing/route'; -export default Route.extend({ -}); +export default Route.extend({}); diff --git a/app/routes/application.js b/app/routes/application.js index 88d0b10a7..1abb8f6d0 100644 --- a/app/routes/application.js +++ b/app/routes/application.js @@ -8,6 +8,7 @@ export default Route.extend({ mainMap: service(), fastboot: service(), router: service(), + store: service(), beforeModel(transition) { const { targetName } = transition; @@ -33,9 +34,7 @@ export default Route.extend({ }, async model() { - const { - layerGroups: layerGroupsParams, - } = this.paramsFor('application'); + const { layerGroups: layerGroupsParams } = this.paramsFor('application'); // fetch layer groups based on configured environment variable const layerGroups = await this.store.query('layer-group', { @@ -51,13 +50,10 @@ export default Route.extend({ const { meta } = layerGroups; // pass down a hash representation of the layer group ids - const layerGroupsObject = layerGroups.reduce( - (accumulator, current) => { - accumulator[current.get('id')] = current; - return accumulator; - }, - {}, - ); + const layerGroupsObject = layerGroups.reduce((accumulator, current) => { + accumulator[current.get('id')] = current; + return accumulator; + }, {}); const bookmarks = await this.store.findAll('bookmark'); await bookmarks.invoke('get', 'bookmark'); diff --git a/app/routes/bbox.js b/app/routes/bbox.js index 3f458b8c3..09007096c 100644 --- a/app/routes/bbox.js +++ b/app/routes/bbox.js @@ -3,18 +3,13 @@ import { inject as service } from '@ember/service'; import bboxPolygon from '@turf/bbox-polygon'; import booleanWithin from '@turf/boolean-within'; -export const GREATER_NYC_BBOX = [-74.492798, 40.435450, -73.413391, 41.028607]; +export const GREATER_NYC_BBOX = [-74.492798, 40.43545, -73.413391, 41.028607]; export default Route.extend({ mainMap: service(), model(params) { - const { - west, - south, - east, - north, - } = params; + const { west, south, east, north } = params; if (!this.validateBounds([west, south, east, north])) { this.transitionTo('/'); @@ -24,7 +19,7 @@ export default Route.extend({ }, afterModel(bounds) { - this.get('mainMap.setBounds').perform(bounds); + this.mainMap.setBounds.perform(bounds); }, validateBounds(bounds) { diff --git a/app/routes/bookmarks.js b/app/routes/bookmarks.js index 9f4124d91..b60667aa3 100644 --- a/app/routes/bookmarks.js +++ b/app/routes/bookmarks.js @@ -3,6 +3,7 @@ import { inject as service } from '@ember/service'; export default Route.extend({ mainMap: service(), + store: service(), model() { return this.store.findAll('bookmark'); diff --git a/app/routes/data.js b/app/routes/data.js index a9bc805ea..3dc9fcd71 100644 --- a/app/routes/data.js +++ b/app/routes/data.js @@ -1,6 +1,8 @@ import Route from '@ember/routing/route'; +import { inject as service } from '@ember/service'; export default Route.extend({ + store: service(), model() { const sources = this.store.peekAll('source'); return sources.toArray().uniqBy('meta.description'); diff --git a/app/routes/features.js b/app/routes/features.js index 6c74252aa..d09f667b2 100644 --- a/app/routes/features.js +++ b/app/routes/features.js @@ -1,4 +1,3 @@ import Route from '@ember/routing/route'; -export default Route.extend({ -}); +export default Route.extend({}); diff --git a/app/routes/legacy-redirects.js b/app/routes/legacy-redirects.js index 0acc92fe1..046156863 100644 --- a/app/routes/legacy-redirects.js +++ b/app/routes/legacy-redirects.js @@ -3,8 +3,7 @@ import { inject as service } from '@ember/service'; import window from 'ember-window-mock'; export default class LegacyRedirectsRoute extends Route { - @service - fastboot; + @service fastboot; beforeModel(transition) { if (!this.fastboot.isFastBoot) { diff --git a/app/routes/map-feature.js b/app/routes/map-feature.js index 5b6ef4f09..50082be1e 100644 --- a/app/routes/map-feature.js +++ b/app/routes/map-feature.js @@ -1,4 +1,3 @@ import Route from '@ember/routing/route'; -export default class MapFeature extends Route { -} +export default class MapFeature extends Route {} diff --git a/app/routes/map-feature/zoning-map-amendment.js b/app/routes/map-feature/zoning-map-amendment.js index bd84541fa..82406eb7b 100644 --- a/app/routes/map-feature/zoning-map-amendment.js +++ b/app/routes/map-feature/zoning-map-amendment.js @@ -1,5 +1,4 @@ import Route from '@ember/routing/route'; -import fetch from 'fetch'; import config from 'labs-zola/config/environment'; export default class ZoningDistrictRoute extends Route { @@ -8,9 +7,11 @@ export default class ZoningDistrictRoute extends Route { const { search } = this.paramsFor('map-feature'); try { - const response = await fetch(`${config.zapApiHost}/projects?action-ulurpnumber[]=${id}`); + const response = await fetch( + `${config.zapApiHost}/projects?action-ulurpnumber[]=${id}` + ); const ulurp = await response.json(); - const zapId = (ulurp.data.length === 1) ? ulurp.data[0].id : null; + const zapId = ulurp.data.length === 1 ? ulurp.data[0].id : null; return { id, diff --git a/app/serializers/carto-geojson-feature.js b/app/serializers/carto-geojson-feature.js index e22400b13..ed3a77d57 100644 --- a/app/serializers/carto-geojson-feature.js +++ b/app/serializers/carto-geojson-feature.js @@ -1,8 +1,14 @@ import { assign } from '@ember/polyfills'; -import DS from 'ember-data'; +import JSONSerializer from '@ember-data/serializer/json'; -export default class GeoJsonFeatureSerializer extends DS.JSONSerializer { - normalizeFindRecordResponse(store, primaryModelClass, payload, queryId, requestType) { +export default class GeoJsonFeatureSerializer extends JSONSerializer { + normalizeFindRecordResponse( + store, + primaryModelClass, + payload, + queryId, + requestType + ) { let newPayload = payload; let newQueryId = queryId; @@ -22,7 +28,7 @@ export default class GeoJsonFeatureSerializer extends DS.JSONSerializer { primaryModelClass, newPayload, newQueryId, - requestType, + requestType ); } @@ -39,7 +45,7 @@ export default class GeoJsonFeatureSerializer extends DS.JSONSerializer { store, primaryModelClass, features, - ...etc, + ...etc ); } } diff --git a/app/serializers/layer-group.js b/app/serializers/layer-group.js index 74689dcb5..6414656b0 100644 --- a/app/serializers/layer-group.js +++ b/app/serializers/layer-group.js @@ -1,4 +1,3 @@ -import DS from 'ember-data'; +import JSONAPISerializer from '@ember-data/serializer/json-api'; -export default DS.JSONAPISerializer.extend({ -}); +export default JSONAPISerializer.extend({}); diff --git a/app/serializers/layer.js b/app/serializers/layer.js index 74689dcb5..6414656b0 100644 --- a/app/serializers/layer.js +++ b/app/serializers/layer.js @@ -1,4 +1,3 @@ -import DS from 'ember-data'; +import JSONAPISerializer from '@ember-data/serializer/json-api'; -export default DS.JSONAPISerializer.extend({ -}); +export default JSONAPISerializer.extend({}); diff --git a/app/serializers/source.js b/app/serializers/source.js index 345228308..6414656b0 100644 --- a/app/serializers/source.js +++ b/app/serializers/source.js @@ -1,3 +1,3 @@ -import DS from 'ember-data'; +import JSONAPISerializer from '@ember-data/serializer/json-api'; -export default DS.JSONAPISerializer.extend({}); +export default JSONAPISerializer.extend({}); diff --git a/app/services/main-map.js b/app/services/main-map.js index 53e4635ab..09581f492 100644 --- a/app/services/main-map.js +++ b/app/services/main-map.js @@ -7,7 +7,10 @@ const DEFAULT_LNG = 40.7125; const DEFAULT_LAT = -73.733; const DEFAULT_LAT_OFFSET = -0.1692; const MIN_ZOOM = 9.5; -const MAX_BOUNDS = [[-74.5, 40.25], [-73, 41]]; +const MAX_BOUNDS = [ + [-74.5, 40.25], + [-73, 41], +]; export default class MainMapService extends Service { mapInstance = null; @@ -33,7 +36,7 @@ export default class MainMapService extends Service { knownHashIntent = ''; - @computed + @computed('knownHashIntent') get parsedHash() { if (this.knownHashIntent) { return this.knownHashIntent.replace('#', '').split('/').reverse(); @@ -42,7 +45,7 @@ export default class MainMapService extends Service { return [9.72, 40.7125, -73.733]; } - @computed + @computed('isSelectedBoundsOptions', 'knownHashIntent', 'parsedHash') get center() { if (this.knownHashIntent) { const [x, y] = this.parsedHash; @@ -50,32 +53,38 @@ export default class MainMapService extends Service { } const boundsOptions = this.isSelectedBoundsOptions; - const x = (boundsOptions.offset[0] === 0) ? (DEFAULT_LAT + DEFAULT_LAT_OFFSET) : DEFAULT_LAT; + const x = + boundsOptions.offset[0] === 0 + ? DEFAULT_LAT + DEFAULT_LAT_OFFSET + : DEFAULT_LAT; return [x, DEFAULT_LNG]; } @computed('selected', 'routeIntentIsNested') get isSelectedBoundsOptions() { - const selected = this.get('selected'); + const { selected } = this; const el = document.querySelector('.map-container'); const height = el.offsetHeight; const width = el.offsetWidth; - const routeIntentIsNested = this.get('routeIntentIsNested'); + const { routeIntentIsNested } = this; const fullWidth = window.innerWidth; // width of content area on large screens is 5/12 of full const contentWidth = (fullWidth / 12) * 5; // on small screens, no offset const offset = fullWidth < 1024 ? 0 : -((width - contentWidth) / 2) / 2; - const padding = Math.min(height, (width - contentWidth)) / 2.5; + const padding = Math.min(height, width - contentWidth) / 2.5; // get type of selected feature so we can do dynamic padding const type = selected ? selected.constructor.modelName : null; const options = { ...(routeIntentIsNested ? { duration: 0 } : {}), - padding: selected && (type !== 'zoning-district') && (type !== 'commercial-overlay') ? padding : 0, + padding: + selected && type !== 'zoning-district' && type !== 'commercial-overlay' + ? padding + : 0, offset: [offset, 0], }; @@ -83,15 +92,15 @@ export default class MainMapService extends Service { } @task(function* (explicitBounds) { - const bounds = explicitBounds || this.get('bounds'); - while (!this.get('mapInstance')) { + const bounds = explicitBounds || this.bounds; + while (!this.mapInstance) { yield timeout(100); } - const mapInstance = this.get('mapInstance'); + const { mapInstance } = this; - mapInstance.fitBounds(bounds, this.get('isSelectedBoundsOptions')); + mapInstance.fitBounds(bounds, this.isSelectedBoundsOptions); this.set('routeIntentIsNested', false); }) - setBounds + setBounds; } diff --git a/app/services/print.js b/app/services/print.js index 1f7d6a68a..44ad2fd81 100644 --- a/app/services/print.js +++ b/app/services/print.js @@ -4,8 +4,7 @@ import { computed } from '@ember/object'; export default class PrintService extends Service { enabled = false; - @service - metrics; + @service metrics; // Print View Settings printViewOrientation = 'portrait'; @@ -29,7 +28,12 @@ export default class PrintService extends Service { return hiddenAreasClasses.join(' '); } - @computed('printViewHiddenAreas', 'enabled', 'printViewPaperSize', 'printViewOrientation', 'printViewHiddenAreas') + @computed( + 'printViewHiddenAreas', + 'enabled', + 'printViewPaperSize', + 'printViewOrientation' + ) get printViewClasses() { const orientation = this.printViewOrientation; const size = this.printViewPaperSize; diff --git a/app/styles/app.css b/app/styles/app.css new file mode 100644 index 000000000..2763afa4c --- /dev/null +++ b/app/styles/app.css @@ -0,0 +1 @@ +/* Ember supports plain CSS out of the box. More info: https://cli.emberjs.com/release/advanced-use/stylesheets/ */ diff --git a/app/styles/app.scss b/app/styles/app.scss index 98e47b5cf..d0865094d 100644 --- a/app/styles/app.scss +++ b/app/styles/app.scss @@ -48,6 +48,5 @@ @import 'modules/_m-search'; @import 'ember-power-select'; -@import 'ember-content-placeholders'; @import 'layouts/_l-print'; diff --git a/app/styles/base/_typography.scss b/app/styles/base/_typography.scss index faa1ac126..c1e6d55d6 100644 --- a/app/styles/base/_typography.scss +++ b/app/styles/base/_typography.scss @@ -119,7 +119,7 @@ button.save-button { } .lot-zoning-list { - margin: $paragraph-margin-bottom/2 0; + margin: $paragraph-margin-bottom*0.5 0; list-style: none; li { @@ -161,7 +161,11 @@ button.save-button { } .data-label { - @include xy-cell(full,false,0); + @include xy-cell( + $size: full, + $output: (base size), + $gutters: 0 + ); padding: rem-calc(2) rem-calc(4); background-color: $off-white; color: $dark-gray; @@ -171,7 +175,7 @@ button.save-button { @include breakpoint(medium) { @include xy-cell( $size: 4, - $gutter-output: true, + $gutter-output: null, $gutters: rem-calc(10), $gutter-type: margin, $breakpoint: null, @@ -182,14 +186,17 @@ button.save-button { } .datum { - @include xy-cell(full,false,0); + @include xy-cell( + $size: full, + $output: (base size), + $gutters: 0 + ); font-size: rem-calc(13); line-height: 1.2; @include breakpoint(medium) { @include xy-cell( $size: 8, - $gutter-output: true, $gutters: rem-calc(10), $gutter-type: margin, $breakpoint: null, diff --git a/app/styles/layouts/_l-default.scss b/app/styles/layouts/_l-default.scss index 867c4a8fd..afddf4759 100644 --- a/app/styles/layouts/_l-default.scss +++ b/app/styles/layouts/_l-default.scss @@ -73,7 +73,11 @@ body { } .map-container { - @include xy-cell(full,false,0); + @include xy-cell( + $size: full, + $output: (base size), + $gutters: 0 + ); position: relative; z-index: 1; height: calc(50vh); @@ -120,7 +124,11 @@ body.index { // .search-and-layers { .layer-palette { - @include xy-cell(full,false,0); + @include xy-cell( + $size: full, + $output: (base size), + $gutters: 0 + ); position: relative; z-index: 2; background-color: $off-white; @@ -178,7 +186,11 @@ body.index { text-align: right; @include breakpoint(medium down) { - @include xy-cell(full,false,0); + @include xy-cell( + $size: full, + $output: (base size), + $gutters: 0 + ); } & > .close-button { diff --git a/app/styles/modules/_m-layer-palette.scss b/app/styles/modules/_m-layer-palette.scss index 2b8a7ea0c..5655eebef 100644 --- a/app/styles/modules/_m-layer-palette.scss +++ b/app/styles/modules/_m-layer-palette.scss @@ -19,7 +19,7 @@ $layer-palette-hover-color: rgba($dark-gray,0.08); .checkbox-wrapper { - padding: $layer-palette-padding/2 $layer-palette-padding; + padding: $layer-palette-padding*0.5 $layer-palette-padding; font-size: inherit; &:hover { @@ -51,7 +51,7 @@ $layer-palette-hover-color: rgba($dark-gray,0.08); } .nested { - margin-bottom: $layer-palette-padding/2; + margin-bottom: $layer-palette-padding*0.5; label { padding-left: $layer-palette-padding*3; @@ -114,7 +114,7 @@ $layer-palette-hover-color: rgba($dark-gray,0.08); line-height: 1.2; li { - padding: 0 0 $layer-palette-padding/2; + padding: 0 0 $layer-palette-padding*0.5; } .fa { diff --git a/app/styles/modules/_m-maps.scss b/app/styles/modules/_m-maps.scss index 77414948f..60c3ab9e1 100644 --- a/app/styles/modules/_m-maps.scss +++ b/app/styles/modules/_m-maps.scss @@ -16,18 +16,6 @@ z-index: 5; } -// Loading spinner -.loading-spinner { - color: $gray; - opacity: 0.5; - position: absolute; - z-index: 3; - bottom: 1.75rem; - right: 1rem; - margin: 0.25rem auto; - pointer-events: none; -} - // Geolocate .find-me { position: absolute; @@ -200,6 +188,14 @@ border-radius: 2px; } +.loading-spinner { + opacity: 0.5; + display: block; + margin: 2rem auto 0 auto; + margin-top: 2rem; + pointer-events: none; +} + .map-loading-spinner { position: absolute; top: 0; diff --git a/app/styles/modules/_m-noui.scss b/app/styles/modules/_m-noui.scss index 45b148049..a0e938dd4 100644 --- a/app/styles/modules/_m-noui.scss +++ b/app/styles/modules/_m-noui.scss @@ -16,8 +16,8 @@ &::before, &::after { - top: $slider-handle-height / 4; - height: $slider-handle-height / 2; + top: $slider-handle-height * 0.25; + height: $slider-handle-height * 0.5; left: 50%; margin-left: -2px; background: $light-gray; diff --git a/app/styles/modules/_m-search.scss b/app/styles/modules/_m-search.scss index d614dbb22..3d433a809 100644 --- a/app/styles/modules/_m-search.scss +++ b/app/styles/modules/_m-search.scss @@ -73,7 +73,7 @@ } li { - padding: $global-margin/2; + padding: $global-margin*0.5; } li:not(:first-child) { @@ -105,7 +105,7 @@ .search-results--loading { border-top: 1px solid $medium-gray; - padding: $global-margin/2; + padding: $global-margin*0.5; color: $dark-gray; background-color: rgba($white,0.94); font-size: rem-calc(12); diff --git a/app/templates/about.hbs b/app/templates/about.hbs index 84be817ad..12c4c9de2 100644 --- a/app/templates/about.hbs +++ b/app/templates/about.hbs @@ -1,9 +1,9 @@
- {{#link-to "index" data-test-about-close-button classNames="close-button"}} + - {{/link-to}} +

@@ -19,7 +19,7 @@ For general zoning questions, read the Zoning Help Desk FAQ. If your question isn't answered there, call @@ -31,7 +31,7 @@ during business hours (8:30AM–5:30PM, Monday–Friday, closed on legal holidays). Leave a detailed message with your block and lot information, and a zoning specialist will get back to you within two business days. Or fill out the Zoning Information Inquiry Form. @@ -41,13 +41,13 @@

To let - + @NYCPlanningTech know how this app could be better, - + add a GitHub Issue or send an email to diff --git a/app/templates/application.hbs b/app/templates/application.hbs index c4cb70cee..c929e8dfa 100644 --- a/app/templates/application.hbs +++ b/app/templates/application.hbs @@ -1,9 +1,9 @@ - +

- {{link-to "" "index" class="index-active-detector"}} + Homepage {{#if this.printSvc.enabled}} {{/if}}
@@ -15,9 +15,9 @@ /> @@ -27,8 +27,8 @@ @selectedFirm={{this.selectedFirm}} @selectedPfirm={{this.selectedPfirm}} @selectedCouncilDistricts={{this.selectedCouncilDistricts}} - @layerGroups={{model.layerGroupsObject}} - @isDefault={{isDefault}} + @layerGroups={{this.model.layerGroupsObject}} + @isDefault={{this.isDefault}} @resetQueryParams={{action this.setModelsToDefault}} @handleLayerGroupChange={{action this.handleLayerGroupChange}} /> diff --git a/app/templates/bookmarks.hbs b/app/templates/bookmarks.hbs index 2dc662f76..e08e4d0b4 100644 --- a/app/templates/bookmarks.hbs +++ b/app/templates/bookmarks.hbs @@ -1,9 +1,9 @@
- {{#link-to "index" classNames="close-button"}} + - {{/link-to}} +
{{#if (await this.bookmarksSettled)}} @@ -33,7 +33,7 @@ {{get (promise-rejected-reason this.bookmarksSettled) 'message'}}. {{/if}} - {{#unless model.length}} + {{#unless this.model.length}}

diff --git a/app/templates/components/bookmarks/bookmark-button.hbs b/app/templates/components/bookmarks/bookmark-button.hbs index b9d6794dd..0cad4e515 100644 --- a/app/templates/components/bookmarks/bookmark-button.hbs +++ b/app/templates/components/bookmarks/bookmark-button.hbs @@ -1,12 +1,12 @@ diff --git a/app/templates/components/bookmarks/types/lot.hbs b/app/templates/components/bookmarks/types/lot.hbs index b3ef1c0ca..58e2ccda4 100644 --- a/app/templates/components/bookmarks/types/lot.hbs +++ b/app/templates/components/bookmarks/types/lot.hbs @@ -2,7 +2,7 @@ Tax Lots

    - {{#each items as |bookmark|}} + {{#each this.items as |bookmark|}} @@ -33,7 +33,7 @@ href={{carto-download-link "dcp_mappluto" "bbl" - (map-by "bookmark.id" items) + (map-by "bookmark.id" this.items) "shp" }} > diff --git a/app/templates/components/bookmarks/types/lot/lot-bookmark-item.hbs b/app/templates/components/bookmarks/types/lot/lot-bookmark-item.hbs index cb6cd4f94..d588be6ee 100644 --- a/app/templates/components/bookmarks/types/lot/lot-bookmark-item.hbs +++ b/app/templates/components/bookmarks/types/lot/lot-bookmark-item.hbs @@ -1,19 +1,16 @@
  • - {{#link-to - "map-feature.lot" - lot.properties.boro - lot.properties.block - lot.properties.lot - }} - {{lot.title}} + + {{this.lot.title}} - {{lot.subtitle}} + {{this.lot.subtitle}} - {{/link-to}} + diff --git a/app/templates/components/carto-data-provider.hbs b/app/templates/components/carto-data-provider.hbs index b8149d1f3..88db409b2 100644 --- a/app/templates/components/carto-data-provider.hbs +++ b/app/templates/components/carto-data-provider.hbs @@ -8,11 +8,7 @@ {{yield model}} - - - {{placeholder.nav}} - - +
      - {{#each errors as |error|}} + {{#each this.errors as |error|}}
    • {{error}}
    • diff --git a/app/templates/components/grouped-checkboxes.hbs b/app/templates/components/grouped-checkboxes.hbs index c0f6fa3f7..45f83566f 100644 --- a/app/templates/components/grouped-checkboxes.hbs +++ b/app/templates/components/grouped-checkboxes.hbs @@ -4,15 +4,15 @@
- {{#if group.tooltip}} + {{#if this.group.tooltip}}
{{labs-ui/icon-tooltip - tip=group.tooltip + tip=this.group.tooltip side='right' fixedWith=true }} @@ -42,26 +42,26 @@ {{/if}}
-{{#if hasMany}} - {{#if group.codes}} +{{#if this.hasMany}} + {{#if this.group.codes}} -
    - {{#each group.codes as |code|}} +
      + {{#each this.group.codes as |code|}}
    • + -{{#if active}} +{{#if this.active}}
      - {{#if (not fastboot.isFastBoot)}} + {{#unless this.fastboot.isFastBoot}} {{yield}} - {{/if}} + {{/unless}}
      {{/if}} diff --git a/app/templates/components/labs-ui-overrides/layer-groups-container.hbs b/app/templates/components/labs-ui-overrides/layer-groups-container.hbs index 9ceeca9a7..5b4023d75 100644 --- a/app/templates/components/labs-ui-overrides/layer-groups-container.hbs +++ b/app/templates/components/labs-ui-overrides/layer-groups-container.hbs @@ -6,8 +6,8 @@ Enable special handling for node-based fastboot pre-rendering Ember wormhole gets skipped in fastboot because it requires the DOM --}} -{{#if (not this.fastboot.isFastBoot)}} - {{#ember-wormhole to=this.elementId}} +{{#unless this.fastboot.isFastBoot}} +
      {{yield (hash layer-group-toggle=(component 'labs-ui-overrides/layer-group-toggle' @@ -18,9 +18,8 @@ ) }}
      - {{/ember-wormhole}} -{{/if}} - +
      +{{/unless}}
      {{yield}} \ No newline at end of file diff --git a/app/templates/components/layer-palette.hbs b/app/templates/components/layer-palette.hbs index 25f58f5f0..467194567 100644 --- a/app/templates/components/layer-palette.hbs +++ b/app/templates/components/layer-palette.hbs @@ -1,15 +1,14 @@ -
      +
      - {{input type="checkbox" checked=plutoFill}} + {{input type="checkbox" checked=this.plutoFill}} Show Land Use Colors - {{#if plutoFill}} + {{#if this.plutoFill}}
      {{/if}} - {{#if this.model.bldgclassname}} + {{#if this.bldgclassname}}
    • Historic District @@ -21,7 +21,7 @@
    • Inclusionary Housing Zone @@ -32,7 +32,7 @@
    • Transit Zone @@ -43,7 +43,7 @@
    • FRESH Zone @@ -54,7 +54,7 @@
    • Waterfront Access Plan @@ -65,7 +65,7 @@
    • Waterfront Block @@ -76,7 +76,7 @@
    • Coastal Zone @@ -87,7 +87,7 @@
    • Lower Density Growth Management Zone @@ -98,7 +98,7 @@
    • Flood Zone @@ -112,7 +112,7 @@
    • Flood Zone @@ -126,7 +126,7 @@
    • Mandatory Inclusionary Housing Area @@ -137,7 +137,7 @@
    • Environmental Designation @@ -148,14 +148,14 @@
    • Appendix J Designated M District
    • {{/if}} - {{#unless (or numberIntersecting this.model.histdist)}} - None found - {{/unless}} + {{#if (not (or numberIntersecting this.model.histdist))}} + None found + {{/if}} diff --git a/app/templates/components/layer-record-views/zoning-district.hbs b/app/templates/components/layer-record-views/zoning-district.hbs index 2649b435e..cdd5119ba 100644 --- a/app/templates/components/layer-record-views/zoning-district.hbs +++ b/app/templates/components/layer-record-views/zoning-district.hbs @@ -5,31 +5,31 @@ {{this.model.zonedist}}

      - {{this.model.description}} + {{this.description}}

      -{{#unless (eq this.model.zonedist "BPC")}} +{{#if (eq this.model.zonedist "BPC")}}

      - Learn more about - {{this.model.zonedist}} - districts… + Learn more about the Special Battery Park City District…

      {{else}}

      - Learn more about the Special Battery Park City District… + Learn more about + {{this.model.zonedist}} + districts…

      -{{/unless}} +{{/if}} {{yield}} \ No newline at end of file diff --git a/app/templates/components/layer-record-views/zoning-map-amendment.hbs b/app/templates/components/layer-record-views/zoning-map-amendment.hbs index 24d4938c3..59969a713 100644 --- a/app/templates/components/layer-record-views/zoning-map-amendment.hbs +++ b/app/templates/components/layer-record-views/zoning-map-amendment.hbs @@ -12,7 +12,7 @@ {{#if this.zapId}} {{this.model.ulurpno}} @@ -27,7 +27,7 @@ Effective - {{#async-await this.model.effectiveDisplay as |date|}} + {{#async-await this.effectiveDisplay as |date|}} {{date}} {{/async-await}} @@ -47,7 +47,7 @@ {{this.model.ulurpno}} diff --git a/app/templates/components/locate-me-mobile.hbs b/app/templates/components/locate-me-mobile.hbs index 5629bbe16..a2a486679 100644 --- a/app/templates/components/locate-me-mobile.hbs +++ b/app/templates/components/locate-me-mobile.hbs @@ -1,16 +1,16 @@ -{{#unless findMeDismissed}} +{{#unless this.findMeDismissed}}
      diff --git a/app/templates/components/main-header.hbs b/app/templates/components/main-header.hbs index bb9d51bcb..09306c926 100644 --- a/app/templates/components/main-header.hbs +++ b/app/templates/components/main-header.hbs @@ -4,12 +4,12 @@ class={{if this.printSvc.enabled "hide-for-print"}} as |banner| > - {{#link-to - "index" - (query-params print=false) + ZoLa {{#if (or (media "mobile") (media "tablet"))}} @@ -27,30 +27,30 @@ {{/if}} Zoning & Land Use Map - {{/link-to}} + diff --git a/app/templates/components/main-map.hbs b/app/templates/components/main-map.hbs index 1732ccbd5..e8faac8b2 100644 --- a/app/templates/components/main-map.hbs +++ b/app/templates/components/main-map.hbs @@ -22,7 +22,7 @@ @@ -32,7 +32,7 @@ @map={{map.instance}} @hoveredFeature={{map.hoveredFeature}} @layerGroups={{this.layerGroups}} - @interactivity={{interactivity}} + @interactivity={{this.interactivity}} @onLayerClick={{action "handleLayerClick"}} @onLayerHighlight={{action "handleLayerHighlight"}} as |layers| > @@ -53,14 +53,14 @@ /> {{/if}} - {{#if mainMap.selected}} + {{#if this.mainMap.selected}} - - + + {{/if}} @@ -75,12 +75,12 @@ @options={{hash type="geojson" data=measurement.feature}} as |source| > - {{#if (eq mainMap.drawnFeature.type "Polygon")}} + {{#if (eq this.mainMap.drawnFeature.type "Polygon")}} {{/if}} diff --git a/app/templates/components/map-measurement-tools.hbs b/app/templates/components/map-measurement-tools.hbs index 1e6074040..511e69143 100644 --- a/app/templates/components/map-measurement-tools.hbs +++ b/app/templates/components/map-measurement-tools.hbs @@ -1,15 +1,15 @@ -{{yield (hash feature=drawnFeature)}} -{{mapbox-gl-on "draw.create" (action "handleDrawCreate") eventSource=map}} -{{mapbox-gl-on "draw.render" (action "handleMeasurement") eventSource=map}} +{{yield (hash feature=this.drawnFeature)}} +{{mapbox-gl-on "draw.create" (action "handleDrawCreate") eventSource=this.map}} +{{mapbox-gl-on "draw.render" (action "handleMeasurement") eventSource=this.map}} {{! Measurement }}
      -{{#if drawnMeasurements}} +{{#if this.drawnMeasurements}}
      - {{#if (eq measurementUnitType "standard")}} - {{drawnMeasurements.standard}} + {{#if (eq this.measurementUnitType "standard")}} + {{this.drawnMeasurements.standard}} {{else}} - {{drawnMeasurements.metric}} + {{this.drawnMeasurements.metric}} {{/if}}
      - {{#if measurementMenuOpen}} + {{#if this.measurementMenuOpen}} {{else}} {{/if}} - {{#if measurementMenuOpen}} + {{#if this.measurementMenuOpen}} diff --git a/app/templates/components/map-resource-search.hbs b/app/templates/components/map-resource-search.hbs index 682c34b86..a44ba2f38 100644 --- a/app/templates/components/map-resource-search.hbs +++ b/app/templates/components/map-resource-search.hbs @@ -2,10 +2,10 @@
      diff --git a/app/templates/components/mapbox/fit-map-to-all-button.hbs b/app/templates/components/mapbox/fit-map-to-all-button.hbs index 9521ede05..cabc510ac 100644 --- a/app/templates/components/mapbox/fit-map-to-all-button.hbs +++ b/app/templates/components/mapbox/fit-map-to-all-button.hbs @@ -1,7 +1,6 @@ \ No newline at end of file diff --git a/app/templates/components/mapbox/load-spinner.hbs b/app/templates/components/mapbox/load-spinner.hbs index 9caf2def0..10da3dfbc 100644 --- a/app/templates/components/mapbox/load-spinner.hbs +++ b/app/templates/components/mapbox/load-spinner.hbs @@ -1,9 +1,9 @@ -{{#if (or loadStateTask.isRunning (not map))}} +{{#if (or this.loadStateTask.isRunning (not this.map))}} {{/if}} {{#if this.map}} - {{mapbox-gl-on "render" (action "handleMapLoading") eventSource=map}} - {{mapbox-gl-on "data" (action "handleMapLoading") eventSource=map}} - {{mapbox-gl-on "sourcedata" (action "handleMapLoading") eventSource=map}} + {{mapbox-gl-on "render" (action "handleMapLoading") eventSource=this.map}} + {{mapbox-gl-on "data" (action "handleMapLoading") eventSource=this.map}} + {{mapbox-gl-on "sourcedata" (action "handleMapLoading") eventSource=this.map}} {{/if}} diff --git a/app/templates/components/print-view-controls.hbs b/app/templates/components/print-view-controls.hbs index 4e1f0ae02..3ebc57b75 100644 --- a/app/templates/components/print-view-controls.hbs +++ b/app/templates/components/print-view-controls.hbs @@ -1,9 +1,8 @@
      diff --git a/app/templates/features.hbs b/app/templates/features.hbs index aed3be49b..d4fe39a4e 100644 --- a/app/templates/features.hbs +++ b/app/templates/features.hbs @@ -1,9 +1,9 @@
      - {{#link-to "index" classNames="close-button"}} + - {{/link-to}} +
      - + A screenshot of the search functionality

      - The search input provide various types of results as you type. Search for known addresses, tax lots (by BBL or address), zoning districts, zoning map amendments (by ULURP number or name), neighborhoods, and special purpose districts. + The search input provide various types of results as you type. Search for known addresses, tax lots (by BBL or address), zoning districts, zoning map amendments (by ULURP number or name), neighborhoods, and special purpose districts.

      @@ -29,11 +29,11 @@
      - + A screenshot of a shareable URL

      - Each tax lot, zoning district, special purpose district, and zoning map amendment lives at its own URL, so you can easily share links. The currently selected map layers are also included in the URL, so you can customize your view and share it with a friend. + Each tax lot, zoning district, special purpose district, and zoning map amendment lives at its own URL, so you can easily share links. The currently selected map layers are also included in the URL, so you can customize your view and share it with a friend.

      @@ -42,11 +42,11 @@
      - + A screenshot of the layer controls

      - The default view includes zoning districts, tax lots, commercial overlays, and subways. But many other layers are available, some with additional filtering controls. Explore zoning map amendments, aerial imagery, historic districts, landmarks, and more. + The default view includes zoning districts, tax lots, commercial overlays, and subways. But many other layers are available, some with additional filtering controls. Explore zoning map amendments, aerial imagery, historic districts, landmarks, and more.

      @@ -55,11 +55,11 @@
      - + A screenshot of the map controls

      - Next-generation web mapping technology used in ZoLa allows you to fine tune the map's zoom, tilt, and rotation. Use the scrollwheel to zoom, hold Ctrl while dragging the map to adjust pitch and bearing. Click the compass icon to reset north. + Next-generation web mapping technology used in ZoLa allows you to fine tune the map's zoom, tilt, and rotation. Use the scrollwheel to zoom, hold Ctrl while dragging the map to adjust pitch and bearing. Click the compass icon to reset north.

      @@ -68,11 +68,11 @@
      - + A screenshot of the find my location functionality

      - Click the locator control and ZoLa will zoom in on your current location (you may need to give permission via your web browser). This feature works great on mobile, so you can quickly lookup property and zoning data on the go. + Click the locator control and ZoLa will zoom in on your current location (you may need to give permission via your web browser). This feature works great on mobile, so you can quickly lookup property and zoning data on the go.

      @@ -81,7 +81,7 @@
      - + A screenshot of the BBL lookup functionality

      @@ -94,7 +94,7 @@

      - + A screenshot of the bookmarks functionality

      @@ -107,11 +107,11 @@

      - + A screenshot of the 3D buildings layer

      - Turn on the 3D Buildings layer (data sourced from OpenStreetMap) to view current building masses, streetwalls, and setbacks along with your other layers. Be sure to try different pitch and bearing settings as you explore. + Turn on the 3D Buildings layer (data sourced from OpenStreetMap) to view current building masses, streetwalls, and setbacks along with your other layers. Be sure to try different pitch and bearing settings as you explore.

      diff --git a/app/templates/map-feature.hbs b/app/templates/map-feature.hbs index d7ba307ef..8b0ac718e 100644 --- a/app/templates/map-feature.hbs +++ b/app/templates/map-feature.hbs @@ -1,12 +1,9 @@
      - {{#link-to "index" - data-test-button="close-route" - classNames="close-button" - }} + - {{/link-to}} +
      {{outlet}} diff --git a/app/templates/map-feature/special-purpose-district.hbs b/app/templates/map-feature/special-purpose-district.hbs index 221b88351..48a3e7afb 100644 --- a/app/templates/map-feature/special-purpose-district.hbs +++ b/app/templates/map-feature/special-purpose-district.hbs @@ -4,7 +4,7 @@ > ({ + labelLayout: (field) => ({ 'text-field': `{${field}}`, 'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'], 'text-size': { diff --git a/app/utils/carto.js b/app/utils/carto.js index 20fee2d80..a35cceba3 100644 --- a/app/utils/carto.js +++ b/app/utils/carto.js @@ -1,4 +1,3 @@ -import fetch from 'fetch'; import { Promise } from 'rsvp'; import config from 'labs-zola/config/environment'; @@ -7,7 +6,6 @@ const { carto } = config; const cartoUsername = carto.username; const cartoDomain = carto.domain; - const buildTemplate = (cartoResponse, type) => { // eslint-disable-line const { layergroupid, cdn_url } = cartoResponse; // eslint-disable-line const { subdomains } = cdn_url.templates.https; @@ -15,7 +13,10 @@ const buildTemplate = (cartoResponse, type) => { // eslint-disable-line // choose a subdomain at random const subdomain = subdomains[Math.floor(Math.random() * subdomains.length)]; - return `${cdn_url.templates.https.url.replace('{s}', subdomain)}/${cartoUsername}/api/v1/map/${layergroupid}/{z}/{x}/{y}.${type}`; + return `${cdn_url.templates.https.url.replace( + '{s}', + subdomain + )}/${cartoUsername}/api/v1/map/${layergroupid}/{z}/{x}/{y}.${type}`; }; const buildSqlUrl = (cleanedQuery, type = 'json') => { // eslint-disable-line @@ -69,8 +70,8 @@ export default { }, body: JSON.stringify(params), }) - .catch(err => reject(err)) - .then(response => response.json()) + .catch((err) => reject(err)) + .then((response) => response.json()) .then((json) => { resolve(buildTemplate(json, 'mvt')); }); diff --git a/app/utils/polygon-layer-styles.js b/app/utils/polygon-layer-styles.js index b30c81df6..aa2962d4e 100644 --- a/app/utils/polygon-layer-styles.js +++ b/app/utils/polygon-layer-styles.js @@ -28,7 +28,4 @@ const fillStyle = (id, source, sourceLayer, color) => ({ layout: {}, }); -export { - lineStyle, - fillStyle, -}; +export { lineStyle, fillStyle }; diff --git a/app/utils/track-event.js b/app/utils/track-event.js index 1bd0a5654..60b0a88be 100644 --- a/app/utils/track-event.js +++ b/app/utils/track-event.js @@ -4,13 +4,18 @@ import { isEmpty } from '@ember/utils'; // https://github.com/@ember-decorators/@ember-decorators/issues/206 // decorator arguments -export default function trackEvent(eventCategory, incAction, incLabel, eventValue) { +export default function trackEvent( + eventCategory, + incAction, + incLabel, + eventValue +) { // decorator-specific pattern, args return (target, name, desc) => { const descriptor = desc; const originalValue = descriptor.value; - descriptor.value = function(...args) { + descriptor.value = function (...args) { originalValue.call(this, ...args); let eventAction = incAction; @@ -33,15 +38,12 @@ export default function trackEvent(eventCategory, incAction, incLabel, eventValu } try { - this.get('metrics').trackEvent( - 'GoogleAnalytics', - { - eventCategory, - eventAction, - eventLabel, - eventValue, - }, - ); + this.metrics.trackEvent('GoogleAnalytics', { + eventCategory, + eventAction, + eventLabel, + eventValue, + }); } catch (e) { throw Error('Metrics was not found and must be injected.', e); } diff --git a/config/coverage.js b/config/coverage.js index 9631ee260..da6f27794 100644 --- a/config/coverage.js +++ b/config/coverage.js @@ -1,5 +1,3 @@ -'use strict'; - module.exports = { useBabelInstrumenter: true, }; diff --git a/config/dependency-lint.js b/config/dependency-lint.js index 3493830a6..41b4228d0 100644 --- a/config/dependency-lint.js +++ b/config/dependency-lint.js @@ -1,11 +1,9 @@ -'use strict'; - module.exports = { allowedVersions: { // TODO: Fix these dependency issues 'ember-inflector': '4.0.2 || 3.0.1', - 'ember-promise-helpers': '1.0.9 || 1.0.6', + 'ember-promise-helpers': '2.0.0', 'ember-in-element-polyfill': '0.1.3 || 0.2.2 || 1.0.1', - 'ember-get-config': '0.2.4 || 0.5.0 || 1.1.0', + 'ember-get-config': '0.5.0 || 1.1.0 || 2.1.1', }, }; diff --git a/config/ember-cli-update.json b/config/ember-cli-update.json index 7ecee0288..60111fda5 100644 --- a/config/ember-cli-update.json +++ b/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "3.28.0", + "version": "4.12.1", "blueprints": [ { "name": "app", diff --git a/config/environment.js b/config/environment.js index c261dd732..e35e8b1e2 100644 --- a/config/environment.js +++ b/config/environment.js @@ -1,9 +1,7 @@ -'use strict'; - const HOST = process.env.API_HOST || 'https://layers-api.planninglabs.nyc'; const CARTO_USER = process.env.CARTO_USER || 'planninglabs'; -module.exports = function(environment) { +module.exports = function (environment) { const ENV = { metricsAdapters: [ { @@ -29,7 +27,13 @@ module.exports = function(environment) { }, fastboot: { - hostWhitelist: ['https://planninglabs.carto.com/**', 'carto.com', 'planninglabs.carto.com', /^localhost:\d+$/, 'dry-thicket-91267.herokuapp.com'], + hostWhitelist: [ + 'https://planninglabs.carto.com/**', + 'carto.com', + 'planninglabs.carto.com', + /^localhost:\d+$/, + 'dry-thicket-91267.herokuapp.com', + ], }, defaultLayerGroupState: [ @@ -38,7 +42,11 @@ module.exports = function(environment) { { id: 'commercial-overlays', visible: true }, { id: 'zoning-map-amendments', visible: false }, { id: 'zoning-map-amendments-pending', visible: false }, - { id: 'special-purpose-districts', visible: false, layers: [{}, { clickable: true, highlightable: true }] }, + { + id: 'special-purpose-districts', + visible: false, + layers: [{}, { clickable: true, highlightable: true }], + }, { id: 'special-purpose-subdistricts', visible: false }, { id: 'limited-height-districts', visible: false }, { id: 'mandatory-inclusionary-housing', visible: false }, @@ -90,8 +98,14 @@ module.exports = function(environment) { ['Special Coastal Risk District 3', ['CR-3', 'staten-island']], ['Special Coastal Risk District 4', ['CR-4', 'brooklyn']], ['Special Limited Commercial District', ['LC', 'citywide']], - ['Special Mixed Use Dist./Enhanced Comm. Dist. 5', ['mixed_use', 'citywide']], - ['Special Mixed Use Dist./Enhanced Comm. Dist. 6', ['mixed_use', 'citywide']], + [ + 'Special Mixed Use Dist./Enhanced Comm. Dist. 5', + ['mixed_use', 'citywide'], + ], + [ + 'Special Mixed Use Dist./Enhanced Comm. Dist. 6', + ['mixed_use', 'citywide'], + ], ['Special Mixed Use District (MX-1)', ['mixed_use', 'citywide']], ['Special Mixed Use District (MX-10)', ['mixed_use', 'citywide']], ['Special Mixed Use District (MX-11)', ['mixed_use', 'citywide']], @@ -108,21 +122,51 @@ module.exports = function(environment) { ['Special Mixed Use District (MX-7)', ['mixed_use', 'citywide']], ['Special Mixed Use District (MX-8)', ['mixed_use', 'citywide']], ['Special Mixed Use District (MX-9)', ['mixed_use', 'citywide']], - ['Special Fort Totten Natural Area District-4', ['natural_area', 'citywide']], - ['Special Planned Community Preservation District', ['planned_community', 'citywide']], + [ + 'Special Fort Totten Natural Area District-4', + ['natural_area', 'citywide'], + ], + [ + 'Special Planned Community Preservation District', + ['planned_community', 'citywide'], + ], ['Special Scenic View District', ['scenic_view', 'citywide']], - ['Special Enhanced Commercial District 4', ['special_enhanced', 'citywide']], - ['Special Enhanced Commercial District 5', ['special_enhanced', 'citywide']], - ['Special Enhanced Commercial District 6', ['special_enhanced', 'citywide']], - ['Special Enhanced Commercial District 1', ['special_enhanced', 'citywide']], - ['Special Enhanced Commercial District 2', ['special_enhanced', 'citywide']], - ['Special Enhanced Commercial District 3', ['special_enhanced', 'citywide']], - ['Special 125th Street Dist./Transit Land use Dist.', ['125th', 'manhattan']], + [ + 'Special Enhanced Commercial District 4', + ['special_enhanced', 'citywide'], + ], + [ + 'Special Enhanced Commercial District 5', + ['special_enhanced', 'citywide'], + ], + [ + 'Special Enhanced Commercial District 6', + ['special_enhanced', 'citywide'], + ], + [ + 'Special Enhanced Commercial District 1', + ['special_enhanced', 'citywide'], + ], + [ + 'Special Enhanced Commercial District 2', + ['special_enhanced', 'citywide'], + ], + [ + 'Special Enhanced Commercial District 3', + ['special_enhanced', 'citywide'], + ], + [ + 'Special 125th Street Dist./Transit Land use Dist.', + ['125th', 'manhattan'], + ], ['Special 125th Street District', ['125th', 'manhattan']], ['Special Battery Park City District', ['BPC', 'manhattan']], ['Special Clinton District', ['CL', 'manhattan']], ['Special East Harlem Corridors', ['EHC', 'manhattan']], - ['Special E. Harlem Corridors/Transit Land Use Dist.', ['EHC', 'manhattan']], + [ + 'Special E. Harlem Corridors/Transit Land Use Dist.', + ['EHC', 'manhattan'], + ], ['Special Garment Center District', ['GC', 'manhattan']], ['Special Governors Island District', ['GI', 'manhattan']], ['Special Hudson River Park District', ['HRP', 'manhattan']], @@ -225,7 +269,8 @@ module.exports = function(environment) { style: { color: '#0084a8', }, - tooltip: "A portion of the area subject to flooding from the 1% annual chance flood and referred to in the Zoning Resolution as the 'high-risk flood zone'. These areas are subject to high velocity wave action (a breaking wave 3 feet high or larger).", + tooltip: + "A portion of the area subject to flooding from the 1% annual chance flood and referred to in the Zoning Resolution as the 'high-risk flood zone'. These areas are subject to high velocity wave action (a breaking wave 3 feet high or larger).", }, { name: 'A (1% floodplain)', @@ -234,7 +279,8 @@ module.exports = function(environment) { style: { color: '#00a9e6', }, - tooltip: "A portion of the area subject to flooding from the 1% annual chance flood and referred to in the Zoning Resolution as the 'high-risk flood zone'. These areas are not subject to high velocity wave action but are still considered high risk flooding areas.", + tooltip: + "A portion of the area subject to flooding from the 1% annual chance flood and referred to in the Zoning Resolution as the 'high-risk flood zone'. These areas are not subject to high velocity wave action but are still considered high risk flooding areas.", }, { name: 'Shaded X (0.2% floodplain)', @@ -243,7 +289,8 @@ module.exports = function(environment) { style: { color: '#00ffc3', }, - tooltip: "The area subject to flooding from the 0.2% annual chance flood and referred to in the Zoning Resolution as the 'moderate-risk flood zone'.", + tooltip: + "The area subject to flooding from the 0.2% annual chance flood and referred to in the Zoning Resolution as the 'moderate-risk flood zone'.", }, ], @@ -255,7 +302,8 @@ module.exports = function(environment) { style: { color: '#0084a8', }, - tooltip: "A portion of the area subject to flooding from the 1% annual chance flood and referred to in the Zoning Resolution as the 'high-risk flood zone'. These areas are subject to high velocity wave action (a breaking wave 3 feet high or larger).", + tooltip: + "A portion of the area subject to flooding from the 1% annual chance flood and referred to in the Zoning Resolution as the 'high-risk flood zone'. These areas are subject to high velocity wave action (a breaking wave 3 feet high or larger).", }, { name: 'A (1% floodplain)', @@ -264,7 +312,8 @@ module.exports = function(environment) { style: { color: '#00a9e6', }, - tooltip: "A portion of the area subject to flooding from the 1% annual chance flood and referred to in the Zoning Resolution as the 'high-risk flood zone'. These areas are not subject to high velocity wave action but are still considered high risk flooding areas.", + tooltip: + "A portion of the area subject to flooding from the 1% annual chance flood and referred to in the Zoning Resolution as the 'high-risk flood zone'. These areas are not subject to high velocity wave action but are still considered high risk flooding areas.", }, { name: 'Shaded X (0.2% floodplain)', @@ -273,17 +322,18 @@ module.exports = function(environment) { style: { color: '#00ffc3', }, - tooltip: "The area subject to flooding from the 0.2% annual chance flood and referred to in the Zoning Resolution as the 'moderate-risk flood zone'.", + tooltip: + "The area subject to flooding from the 0.2% annual chance flood and referred to in the Zoning Resolution as the 'moderate-risk flood zone'.", }, ], - cityCouncilDistrictsOptionSets : [ + cityCouncilDistrictsOptionSets: [ { name: '2013-2023', checked: true, codes: ['2013'], style: { - color: '#33D8DC' + color: '#33D8DC', }, }, { @@ -291,13 +341,14 @@ module.exports = function(environment) { checked: false, codes: ['2024'], style: { - color: '#DC333D' + color: '#DC333D', }, }, ], 'mapbox-gl': { - accessToken: 'pk.eyJ1IjoiY3dob25nbnljIiwiYSI6ImNpczF1MXdrdjA4MXcycXA4ZGtyN2x5YXIifQ.3HGyME8tBs6BnljzUVIt4Q', + accessToken: + 'pk.eyJ1IjoiY3dob25nbnljIiwiYSI6ImNpczF1MXdrdjA4MXcycXA4ZGtyN2x5YXIifQ.3HGyME8tBs6BnljzUVIt4Q', }, 'labs-search': { @@ -355,17 +406,12 @@ module.exports = function(environment) { }, }, - - EmberENV: { + EXTEND_PROTOTYPES: false, FEATURES: { // Here you can enable experimental features on an ember canary build // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true }, - EXTEND_PROTOTYPES: { - // Prevent Ember Data from overriding Date.parse. - Date: false, - }, }, APP: { diff --git a/config/icons.js b/config/icons.js new file mode 100644 index 000000000..7100ffd14 --- /dev/null +++ b/config/icons.js @@ -0,0 +1,37 @@ +module.exports = function () { + return { + 'free-regular-svg-icons': [ + 'check-square', + 'circle', + 'dot-circle', + 'square', + ], + 'free-solid-svg-icons': [ + 'angle-up', + 'bookmark', + 'caret-down', + 'caret-up', + 'check-square', + 'chevron-down', + 'chevron-left', + 'chevron-up', + 'circle', + 'exclamation-triangle', + 'external-link-alt', + 'home', + 'info-circle', + 'link', + 'map-pin', + 'minus', + 'pen', + 'print', + 'search', + 'spinner', + 'square', + 'times', + 'tree', + 'undo', + 'window-minimize', + ], + }; +}; diff --git a/config/targets.js b/config/targets.js index 43cbf26a4..b55f37e56 100644 --- a/config/targets.js +++ b/config/targets.js @@ -1,27 +1,10 @@ -'use strict'; - const browsers = [ 'last 1 Chrome versions', 'last 1 Firefox versions', 'last 1 Safari versions', ]; -// Ember's browser support policy is changing, and IE11 support will end in -// v4.0 onwards. -// -// See https://deprecations.emberjs.com/v3.x#toc_3-0-browser-support-policy -// -// If you need IE11 support on a version of Ember that still offers support -// for it, uncomment the code block below. -// -// const isCI = Boolean(process.env.CI); -// const isProduction = process.env.EMBER_ENV === 'production'; -// -// if (isCI || isProduction) { -// browsers.push('ie 11'); -// } - module.exports = { browsers, - node: 'current' + node: 'current', }; diff --git a/ember-cli-build.js b/ember-cli-build.js index 19e219880..8e04cde96 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -1,5 +1,3 @@ -'use strict'; - const EmberApp = require('ember-cli/lib/broccoli/ember-app'); const babelPlugin = require('ember-auto-import/babel-plugin'); const sass = require('sass-embedded'); @@ -16,8 +14,8 @@ module.exports = (defaults) => { '@ember-decorators/babel-transforms': { decoratorsBeforeExport: true, }, - 'ember-cli-uglify': { - uglify: { + 'ember-cli-terser': { + terser: { compress: { collapse_vars: false, }, @@ -58,18 +56,5 @@ module.exports = (defaults) => { }, }); - // Use `app.import` to add additional libraries to the generated - // output files. - // - // If you need to use different assets in different - // environments, specify an object as the first parameter. That - // object's keys should be the environment name and the values - // should be the asset to use in that environment. - // - // If the library that you are including contains AMD or ES6 - // modules that you would like to import into your application - // please specify an object with the list of modules as keys - // along with the exports of each module as its value. - return app.toTree(); }; diff --git a/mirage/config.js b/mirage/config.js index 663493aa5..e55431a46 100644 --- a/mirage/config.js +++ b/mirage/config.js @@ -1,34 +1,18 @@ +import { + discoverEmberDataModels, + applyEmberDataSerializers, +} from 'ember-cli-mirage'; +import { createServer } from 'miragejs'; +import layerGroupsFixtures from './static-fixtures/layer-groups'; import patchXMLHTTPRequest from './helpers/mirage-mapbox-gl-monkeypatch'; -export default function() { +function routes() { patchXMLHTTPRequest(); - // These comments are here to help you get started. Feel free to delete them. - - /* - Config (with defaults). - - Note: these only affect routes defined *after* them! - */ - - // this.urlPrefix = ''; // make this `http://localhost:8080`, for example, if your API is on a different server - // this.namespace = ''; // make this `/api`, for example, if your API is namespaced - // this.timing = 400; // delay for each request, automatically set to 0 during testing - - /* - Shorthand cheatsheet: - - this.get('/posts'); - this.post('/posts'); - this.get('/posts/:id'); - this.put('/posts/:id'); // or this.patch - this.del('/posts/:id'); - - http://www.ember-cli-mirage.com/docs/v0.4.x/shorthands/ - */ this.passthrough('https://zap-api-production.herokuapp.com/**'); - this.passthrough('/img/ht.png'); - this.passthrough('https://labs-mapbox-gl-noop-tiles.nyc3.digitaloceanspaces.com/**'); + this.passthrough( + 'https://labs-mapbox-gl-noop-tiles.nyc3.digitaloceanspaces.com/**' + ); this.get('https://planninglabs.carto.com/api/v2/sql', (schema, request) => { const { queryParams } = request; @@ -38,7 +22,6 @@ export default function() { if (format === 'geojson') { // by default, return anything created in this schema let schemaModel = schema.cartoGeojsonFeatures.all(); - // if it includes mappluto, it's asking for lots if (q.includes('dcp_mappluto')) { schemaModel = schema.lots.all(); @@ -59,7 +42,7 @@ export default function() { const regex = /([^, ]+):([^, ]+)/g; const found = q.match(regex); const cartoIdentifier = found[0]?.split(':')[1]; - features = features.filter(f => f.id === cartoIdentifier); + features = features.filter((f) => f.id === cartoIdentifier); } catch (e) { console.error('Mirage error: ', e); } @@ -76,4 +59,18 @@ export default function() { this.namespace = '/v1'; this.get('layer-groups'); + this.post('v1/layer-groups', () => layerGroupsFixtures); +} + +export default function (config) { + const finalConfig = { + ...config, + namespace: '/v1', + // Remove discoverEmberDataModels if you do not want ember-cli-mirage to auto discover the ember models + models: { ...discoverEmberDataModels(), ...config.models }, + // uncomment to opt into ember-cli-mirage to auto discover ember serializers + serializers: applyEmberDataSerializers(config.serializers), + routes, + }; + return createServer(finalConfig); } diff --git a/mirage/factories/carto-geojson-feature.js b/mirage/factories/carto-geojson-feature.js index 18b0ee115..ae8c2c24b 100644 --- a/mirage/factories/carto-geojson-feature.js +++ b/mirage/factories/carto-geojson-feature.js @@ -1,8 +1,16 @@ -import { Factory } from 'ember-cli-mirage'; +import { Factory } from 'miragejs'; const SQUARE_POLYGON = { type: 'Polygon', - coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]], + coordinates: [ + [ + [0, 0], + [0, 1], + [1, 1], + [1, 0], + [0, 0], + ], + ], }; export default Factory.extend({ diff --git a/mirage/factories/layer-group.js b/mirage/factories/layer-group.js index 75374874c..b8398a3f1 100644 --- a/mirage/factories/layer-group.js +++ b/mirage/factories/layer-group.js @@ -1,4 +1,4 @@ -import { Factory, trait } from 'ember-cli-mirage'; +import { Factory, trait } from 'miragejs'; export default Factory.extend({ visible: true, diff --git a/mirage/factories/layer.js b/mirage/factories/layer.js index 8a821f658..fc3e16104 100644 --- a/mirage/factories/layer.js +++ b/mirage/factories/layer.js @@ -1,4 +1,4 @@ -import { Factory, association } from 'ember-cli-mirage'; +import { Factory, association } from 'miragejs'; export default Factory.extend({ position: -1, diff --git a/mirage/helpers/mirage-mapbox-gl-monkeypatch.js b/mirage/helpers/mirage-mapbox-gl-monkeypatch.js index decca95ec..31a975f0a 100644 --- a/mirage/helpers/mirage-mapbox-gl-monkeypatch.js +++ b/mirage/helpers/mirage-mapbox-gl-monkeypatch.js @@ -6,7 +6,7 @@ export default () => { const fakeXhr = this; // eslint-disable-line consistent-this const realXhr = this._passthroughRequest; if (realXhr) { - realXhr.onload = function(event) { + realXhr.onload = function (event) { if (fakeXhr.responseType !== 'arraybuffer') { fakeXhr.response = realXhr.response; } diff --git a/mirage/models/carto-geojson-feature.js b/mirage/models/carto-geojson-feature.js index 2326c4a2e..c342fe4d4 100644 --- a/mirage/models/carto-geojson-feature.js +++ b/mirage/models/carto-geojson-feature.js @@ -1,4 +1,4 @@ -import { Model, belongsTo } from 'ember-cli-mirage'; +import { Model, belongsTo } from 'miragejs'; export default Model.extend({ bookmark: belongsTo({ polymorphic: true }), diff --git a/mirage/models/layer-group.js b/mirage/models/layer-group.js index 6de5cab5b..227969204 100644 --- a/mirage/models/layer-group.js +++ b/mirage/models/layer-group.js @@ -1,4 +1,4 @@ -import { Model, hasMany } from 'ember-cli-mirage'; +import { Model, hasMany } from 'miragejs'; export default Model.extend({ layers: hasMany(), diff --git a/mirage/models/layer.js b/mirage/models/layer.js index fc517bec5..1920c799b 100644 --- a/mirage/models/layer.js +++ b/mirage/models/layer.js @@ -1,4 +1,4 @@ -import { Model, belongsTo } from 'ember-cli-mirage'; +import { Model, belongsTo } from 'miragejs'; export default Model.extend({ layerGroup: belongsTo(), diff --git a/mirage/scenarios/default.js b/mirage/scenarios/default.js index adb3af4c0..d388296b5 100644 --- a/mirage/scenarios/default.js +++ b/mirage/scenarios/default.js @@ -1,9 +1,7 @@ -export default function(/* server */) { - +export default function (/* server */) { /* Seed your development database using your factories. This data will not be loaded in your tests. */ - // server.createList('post', 10); } diff --git a/mirage/serializers/application.js b/mirage/serializers/application.js index 6d47a3669..006ace11d 100644 --- a/mirage/serializers/application.js +++ b/mirage/serializers/application.js @@ -1,4 +1,3 @@ -import { JSONAPISerializer } from 'ember-cli-mirage'; +import { JSONAPISerializer } from 'miragejs'; -export default JSONAPISerializer.extend({ -}); +export default JSONAPISerializer.extend({}); diff --git a/mirage/serializers/carto-geojson-feature.js b/mirage/serializers/carto-geojson-feature.js index 89e0c4cef..788e85076 100644 --- a/mirage/serializers/carto-geojson-feature.js +++ b/mirage/serializers/carto-geojson-feature.js @@ -1,4 +1,4 @@ -import { JSONAPISerializer } from 'ember-cli-mirage'; +import { JSONAPISerializer } from 'miragejs'; export default JSONAPISerializer.extend({ serialize({ models: features }) { diff --git a/mirage/static-fixtures/layer-groups.js b/mirage/static-fixtures/layer-groups.js index 5c9bfa74b..e38bfdba5 100644 --- a/mirage/static-fixtures/layer-groups.js +++ b/mirage/static-fixtures/layer-groups.js @@ -16,7 +16,8 @@ export default { visible: true, legend: { label: 'Zoning Districts', - tooltip: 'A zoning district is a residential, commercial or manufac­turing area of the city within which zoning regulations govern land use and building bulk.', + tooltip: + 'A zoning district is a residential, commercial or manufac­turing area of the city within which zoning regulations govern land use and building bulk.', }, }, relationships: { @@ -84,7 +85,8 @@ export default { visible: true, legend: { label: 'Commercial Overlays', - tooltip: 'A commercial overlay is a C1 or C2 district mapped within residential districts to serve local retail needs.', + tooltip: + 'A commercial overlay is a C1 or C2 district mapped within residential districts to serve local retail needs.', icon: { type: 'fa-icon', layers: [ @@ -132,7 +134,8 @@ export default { visible: false, legend: { label: 'Zoning Map Amendments', - tooltip: 'Changes to the Zoning Map that have been adopted since 2002', + tooltip: + 'Changes to the Zoning Map that have been adopted since 2002', icon: { type: 'rectangle', layers: [ @@ -176,7 +179,8 @@ export default { visible: false, legend: { label: 'Pending Zoning Map Amendments', - tooltip: 'Changes to the Zoning Map that are currently undergoing public review', + tooltip: + 'Changes to the Zoning Map that are currently undergoing public review', icon: { type: 'rectangle', layers: [ @@ -220,7 +224,8 @@ export default { visible: false, legend: { label: 'Special Purpose Districts', - tooltip: 'The regulations for special purpose districts are designed to supplement and modify the underlying zoning in order to respond to distinctive neighborhoods with particular issues and goals', + tooltip: + 'The regulations for special purpose districts are designed to supplement and modify the underlying zoning in order to respond to distinctive neighborhoods with particular issues and goals', icon: { type: 'fa-icon', layers: [ @@ -263,7 +268,8 @@ export default { visible: false, legend: { label: 'Special Purpose Subdistricts', - tooltip: 'Areas within Special Purpose Districts where unique rules apply. Special Purpose Subdistrict data is currently incomplete. See the Zoning Resolution for a complete description of the special purpose district.', + tooltip: + 'Areas within Special Purpose Districts where unique rules apply. Special Purpose Subdistrict data is currently incomplete. See the Zoning Resolution for a complete description of the special purpose district.', infolink: 'https://zr.planning.nyc.gov', icon: { type: 'fa-icon', @@ -307,7 +313,8 @@ export default { visible: false, legend: { label: 'Limited Height Districts', - tooltip: 'A limited height district may be superimposed on an area designated as an historic district by the Landmarks Preservation Commission. It is mapped in areas of the Upper East Side, Gramercy Park, Brooklyn Heights and Cobble Hill. The maximum building height is 50 feet in a LH-1 district, 60 feet in a LH-1A district, 70 feet in a LH-2 district and 100 feet in a LH-3 district.', + tooltip: + 'A limited height district may be superimposed on an area designated as an historic district by the Landmarks Preservation Commission. It is mapped in areas of the Upper East Side, Gramercy Park, Brooklyn Heights and Cobble Hill. The maximum building height is 50 feet in a LH-1 district, 60 feet in a LH-1A district, 70 feet in a LH-2 district and 100 feet in a LH-3 district.', icon: { type: 'rectangle', layers: [ @@ -351,8 +358,10 @@ export default { visible: false, legend: { label: 'Mandatory Inclusionary Housing Areas', - tooltip: 'Areas where developments, enlargements and conversions over a certain size are required to set aside a percentage of floor area for permanently affordable housing', - infolink: 'https://www1.nyc.gov/site/planning/zoning/districts-tools/inclusionary-housing.page', + tooltip: + 'Areas where developments, enlargements and conversions over a certain size are required to set aside a percentage of floor area for permanently affordable housing', + infolink: + 'https://www1.nyc.gov/site/planning/zoning/districts-tools/inclusionary-housing.page', icon: { type: 'rectangle', layers: [ @@ -396,8 +405,10 @@ export default { visible: false, legend: { label: 'Inclusionary Housing Designated Areas', - tooltip: 'Areas where zoning incentives are offered to encourage the creation of permanently affordable housing', - infolink: 'https://www1.nyc.gov/site/planning/zoning/districts-tools/inclusionary-housing.page', + tooltip: + 'Areas where zoning incentives are offered to encourage the creation of permanently affordable housing', + infolink: + 'https://www1.nyc.gov/site/planning/zoning/districts-tools/inclusionary-housing.page', icon: { type: 'rectangle', layers: [ @@ -441,8 +452,10 @@ export default { visible: false, legend: { label: 'Transit Zones', - tooltip: 'Transit-accessible areas where parking is optional for new affordable housing units and special rules apply to existing affordable units', - infolink: 'https://www1.nyc.gov/site/planning/zoning/glossary.page#transit_zone', + tooltip: + 'Transit-accessible areas where parking is optional for new affordable housing units and special rules apply to existing affordable units', + infolink: + 'https://www1.nyc.gov/site/planning/zoning/glossary.page#transit_zone', icon: { type: 'rectangle', layers: [ @@ -486,8 +499,10 @@ export default { visible: false, legend: { label: 'FRESH Zones', - tooltip: 'FRESH promotes the establishment and expansion of neighborhood grocery stores in underserved communities by providing zoning and financial incentives', - infolink: 'https://www1.nyc.gov/site/planning/zoning/districts-tools/fresh-food-stores.page', + tooltip: + 'FRESH promotes the establishment and expansion of neighborhood grocery stores in underserved communities by providing zoning and financial incentives', + infolink: + 'https://www1.nyc.gov/site/planning/zoning/districts-tools/fresh-food-stores.page', items: [ { label: 'Zoning incentives', @@ -567,8 +582,10 @@ export default { visible: false, legend: { label: 'Sidewalk Cafes', - tooltip: 'Areas where different types of sidewalk cafes are permitted on public sidewalks', - infolink: 'https://www1.nyc.gov/site/planning/zoning/districts-tools/sidewalk-cafes.page', + tooltip: + 'Areas where different types of sidewalk cafes are permitted on public sidewalks', + infolink: + 'https://www1.nyc.gov/site/planning/zoning/districts-tools/sidewalk-cafes.page', items: [ { label: 'All Cafes Permitted', @@ -641,8 +658,10 @@ export default { visible: false, legend: { label: 'Lower Density Growth Management Areas', - tooltip: 'Areas where special zoning controls intend to limit growth and better match available infrastructure and services in lower-density areas experiencing rapid development', - infolink: 'https://www1.nyc.gov/site/planning/zoning/districts-tools/lower-density-growth-mngmt.page', + tooltip: + 'Areas where special zoning controls intend to limit growth and better match available infrastructure and services in lower-density areas experiencing rapid development', + infolink: + 'https://www1.nyc.gov/site/planning/zoning/districts-tools/lower-density-growth-mngmt.page', icon: { type: 'rectangle', layers: [ @@ -686,8 +705,10 @@ export default { visible: false, legend: { label: 'Coastal Zone Boundary', - tooltip: 'Projects within the coastal zone boundary are subject to additional review under the Waterfront Revitalization Program', - infolink: 'https://www1.nyc.gov/site/planning/data-maps/open-data/dwn-wrp.page', + tooltip: + 'Projects within the coastal zone boundary are subject to additional review under the Waterfront Revitalization Program', + infolink: + 'https://www1.nyc.gov/site/planning/data-maps/open-data/dwn-wrp.page', icon: { type: 'rectangle', layers: [ @@ -731,8 +752,10 @@ export default { visible: false, legend: { label: 'Waterfront Access Plan', - tooltip: 'These areas reflect site specific modification of waterfront public access requirements for waterfront parcels with unique conditions and opportunities', - infolink: 'https://www1.nyc.gov/site/planning/zoning/districts-tools/waterfront-zoning.page', + tooltip: + 'These areas reflect site specific modification of waterfront public access requirements for waterfront parcels with unique conditions and opportunities', + infolink: + 'https://www1.nyc.gov/site/planning/zoning/districts-tools/waterfront-zoning.page', icon: { type: 'rectangle', layers: [ @@ -776,7 +799,8 @@ export default { visible: false, legend: { label: 'Historic Districts', - tooltip: 'Areas designated by the NYC Landmarks Preservation Commission that possess historical significance and to which special zoning regulations apply', + tooltip: + 'Areas designated by the NYC Landmarks Preservation Commission that possess historical significance and to which special zoning regulations apply', icon: { type: 'rectangle', layers: [ @@ -820,12 +844,15 @@ export default { visible: false, legend: { label: 'Effective Flood Insurance Rate Maps 2007', - tooltip: 'The Effective Flood Insurance Rate Maps (FIRMs), first adopted by New York City in 1983 and last updated in 2007, establish the floodplain currently subject to the National Flood Insurance Program purchase requirements.', - infolink: 'https://www1.nyc.gov/site/planning/plans/climate-resiliency-faq.page', + tooltip: + 'The Effective Flood Insurance Rate Maps (FIRMs), first adopted by New York City in 1983 and last updated in 2007, establish the floodplain currently subject to the National Flood Insurance Program purchase requirements.', + infolink: + 'https://www1.nyc.gov/site/planning/plans/climate-resiliency-faq.page', items: [ { label: 'V Zone', - tooltip: 'Portion of the 1% annual chance floodplain subject to high velocity wave action (a breaking wave 3 feet high or larger). V Zones are subject to more stringent building requirements than other zones because of the damaging force of waves.', + tooltip: + 'Portion of the 1% annual chance floodplain subject to high velocity wave action (a breaking wave 3 feet high or larger). V Zones are subject to more stringent building requirements than other zones because of the damaging force of waves.', icon: { type: 'fa-icon', layers: [ @@ -838,7 +865,8 @@ export default { }, { label: 'A Zone', - tooltip: 'A portion of the area subject to flooding from the 1% annual chance flood. These areas are not subject to high velocity wave action but are still considered high risk flooding areas.', + tooltip: + 'A portion of the area subject to flooding from the 1% annual chance flood. These areas are not subject to high velocity wave action but are still considered high risk flooding areas.', icon: { type: 'fa-icon', layers: [ @@ -879,12 +907,15 @@ export default { visible: false, legend: { label: 'Preliminary Flood Insurance Rate Maps 2015', - tooltip: 'Released in 2015 as part of a citywide flood map update, the Preliminary FIRMs establish the 1% annual chance floodplain. For building code and zoning purposes, the more expansive of the either the 2015 or 2007 maps is used.', - infolink: 'https://www1.nyc.gov/site/planning/plans/climate-resiliency-faq.page', + tooltip: + 'Released in 2015 as part of a citywide flood map update, the Preliminary FIRMs establish the 1% annual chance floodplain. For building code and zoning purposes, the more expansive of the either the 2015 or 2007 maps is used.', + infolink: + 'https://www1.nyc.gov/site/planning/plans/climate-resiliency-faq.page', items: [ { label: 'V Zone', - tooltip: 'Portion of the 1% annual chance floodplain subject to high velocity wave action (a breaking wave 3 feet high or larger). V Zones are subject to more stringent building requirements than other zones because of the damaging force of waves.', + tooltip: + 'Portion of the 1% annual chance floodplain subject to high velocity wave action (a breaking wave 3 feet high or larger). V Zones are subject to more stringent building requirements than other zones because of the damaging force of waves.', icon: { type: 'fa-icon', layers: [ @@ -897,7 +928,8 @@ export default { }, { label: 'A Zone', - tooltip: 'A portion of the area subject to flooding from the 1% annual chance flood. These areas are not subject to high velocity wave action but are still considered high risk flooding areas.', + tooltip: + 'A portion of the area subject to flooding from the 1% annual chance flood. These areas are not subject to high velocity wave action but are still considered high risk flooding areas.', icon: { type: 'fa-icon', layers: [ @@ -938,8 +970,10 @@ export default { visible: false, legend: { label: 'Appendix J Designated M Districts', - tooltip: 'Designated areas within Manufacturing Districts in which self service storage facilities are subject to certain as-of-right provisions (subarea 1) or are subject to special permit by the City Planning Commission (subarea 2)', - infolink: 'https://www1.nyc.gov/assets/planning/download/pdf/data-maps/open-data/designated_areas_m_districts_metadata.pdf', + tooltip: + 'Designated areas within Manufacturing Districts in which self service storage facilities are subject to certain as-of-right provisions (subarea 1) or are subject to special permit by the City Planning Commission (subarea 2)', + infolink: + 'https://www1.nyc.gov/assets/planning/download/pdf/data-maps/open-data/designated_areas_m_districts_metadata.pdf', icon: { type: 'rectangle', layers: [ @@ -983,7 +1017,8 @@ export default { visible: false, legend: { label: 'Business Improvement Districts', - tooltip: 'A Business Improvement District (BID) is a geographical area where local stakeholders oversee and fund the maintenance, improvement, and promotion of their commercial district.', + tooltip: + 'A Business Improvement District (BID) is a geographical area where local stakeholders oversee and fund the maintenance, improvement, and promotion of their commercial district.', icon: { type: 'rectangle', layers: [ @@ -1027,7 +1062,8 @@ export default { visible: false, legend: { label: 'Industrial Business Zones', - tooltip: 'Industrial Business Zones (IBZs) are areas where expanded business services are available for industrial and manufacturing businesses. This designation fosters high-performing business districts by creating competitive advantages over locating in areas outside of New York City.', + tooltip: + 'Industrial Business Zones (IBZs) are areas where expanded business services are available for industrial and manufacturing businesses. This designation fosters high-performing business districts by creating competitive advantages over locating in areas outside of New York City.', icon: { type: 'rectangle', layers: [ @@ -1223,15 +1259,15 @@ export default { title: 'NYC Council Districts', visible: false, meta: { - description: 'Administrative and Political Districts v17D, BYTES of the BIG APPLE™', - url: [ - 'https://www1.nyc.gov/site/planning/data-maps/open-data.page', - ], + description: + 'Administrative and Political Districts v17D, BYTES of the BIG APPLE™', + url: ['https://www1.nyc.gov/site/planning/data-maps/open-data.page'], 'updated-at': '15 May 2023', }, legend: { label: 'NYC Council Districts', - tooltip: '2013-2023 NYC Council District boundaries remain in effect until the end of the year. 2024-2033 boundaries are used in the November 7th, 2023 City Council election.', + tooltip: + '2013-2023 NYC Council District boundaries remain in effect until the end of the year. 2024-2033 boundaries are used in the November 7th, 2023 City Council election.', }, 'legend-icon': 'admin-line', 'legend-color': '#76CAF5', @@ -1530,9 +1566,7 @@ export default { ], }, sources: { - data: [ - - ], + data: [], }, }, }, @@ -1557,9 +1591,7 @@ export default { ], }, sources: { - data: [ - - ], + data: [], }, }, }, @@ -1682,7 +1714,8 @@ export default { visible: true, legend: { label: 'Tax Lots', - tooltip: 'A tax lot is a parcel of land identified with a unique borough, block and lot number for property tax purposes.', + tooltip: + 'A tax lot is a parcel of land identified with a unique borough, block and lot number for property tax purposes.', icon: { type: 'fa-icon', layers: [ @@ -1729,7 +1762,8 @@ export default { visible: false, legend: { label: 'Landmarks', - tooltip: 'Sites designated by the NYC Landmarks Preservation Commission that possess historical significance and to which special zoning regulations apply', + tooltip: + 'Sites designated by the NYC Landmarks Preservation Commission that possess historical significance and to which special zoning regulations apply', items: [ { label: 'Individual Landmarks', @@ -1824,7 +1858,8 @@ export default { visible: false, legend: { label: 'Environmental Designations', - tooltip: 'An E-Designation is a NYC zoning map designation that indicates the presence of an environmental requirement pertaining to potential Hazardous Materials Contamination, Window/Wall Noise Attenuation, or Air Quality impacts on a particular tax lot.', + tooltip: + 'An E-Designation is a NYC zoning map designation that indicates the presence of an environmental requirement pertaining to potential Hazardous Materials Contamination, Window/Wall Noise Attenuation, or Air Quality impacts on a particular tax lot.', infolink: 'https://www1.nyc.gov/site/planning/applicants/e-faq.page', icon: { type: 'fa-icon', @@ -1881,110 +1916,35 @@ export default { property: 'primaryzone', type: 'categorical', stops: [ - [ - 'BP', - '#808080', - ], - [ - 'C1', - '#ffa89c', - ], - [ - 'C2', - '#fd9a8f', - ], - [ - 'C3', - '#fa867c', - ], - [ - 'C4', - '#f76e67', - ], - [ - 'C5', - '#f2544e', - ], - [ - 'C6', - '#ee3a36', - ], - [ - 'C7', - '#ea2220', - ], - [ - 'C8', - '#e50000', - ], - [ - 'M1', - '#f3b3ff', - ], - [ - 'M2', - '#e187f3', - ], - [ - 'M3', - '#cf5ce6', - ], - [ - 'PA', - '#78D271', - ], - [ - 'R1', - '#fff8a6', - ], - [ - 'R2', - '#fff7a6', - ], - [ - 'R3', - '#fff797', - ], - [ - 'R4', - '#fff584', - ], - [ - 'R5', - '#fff36c', - ], - [ - 'R6', - '#fff153', - ], - [ - 'R7', - '#ffee39', - ], - [ - 'R8', - '#ffec22', - ], - [ - 'R9', - '#ffeb0e', - ], - [ - 'R10', - '#ffea00', - ], + ['BP', '#808080'], + ['C1', '#ffa89c'], + ['C2', '#fd9a8f'], + ['C3', '#fa867c'], + ['C4', '#f76e67'], + ['C5', '#f2544e'], + ['C6', '#ee3a36'], + ['C7', '#ea2220'], + ['C8', '#e50000'], + ['M1', '#f3b3ff'], + ['M2', '#e187f3'], + ['M3', '#cf5ce6'], + ['PA', '#78D271'], + ['R1', '#fff8a6'], + ['R2', '#fff7a6'], + ['R3', '#fff797'], + ['R4', '#fff584'], + ['R5', '#fff36c'], + ['R6', '#fff153'], + ['R7', '#ffee39'], + ['R8', '#ffec22'], + ['R9', '#ffeb0e'], + ['R10', '#ffea00'], ], }, 'fill-opacity': { stops: [ - [ - 15, - 0.3, - ], - [ - 16, - 0, - ], + [15, 0.3], + [16, 0], ], }, 'fill-antialias': true, @@ -2014,30 +1974,15 @@ export default { paint: { 'line-opacity': { stops: [ - [ - 12, - 0, - ], - [ - 13, - 0.2, - ], - [ - 16, - 0.5, - ], + [12, 0], + [13, 0.2], + [16, 0.5], ], }, 'line-width': { stops: [ - [ - 13, - 1, - ], - [ - 14, - 3, - ], + [13, 1], + [14, 3], ], }, }, @@ -2063,14 +2008,8 @@ export default { paint: { 'text-color': { stops: [ - [ - 15, - '#626262', - ], - [ - 16, - '#444', - ], + [15, '#626262'], + [16, '#444'], ], }, 'text-halo-color': '#FFFFFF', @@ -2078,14 +2017,8 @@ export default { 'text-halo-blur': 2, 'text-opacity': { stops: [ - [ - 12, - 0, - ], - [ - 13, - 1, - ], + [12, 0], + [13, 1], ], }, }, @@ -2094,14 +2027,8 @@ export default { 'text-field': '{zonedist}', 'text-size': { stops: [ - [ - 10, - 8, - ], - [ - 14, - 16, - ], + [10, 8], + [14, 16], ], }, visibility: 'visible', @@ -2125,10 +2052,9 @@ export default { }, ], meta: { - description: 'NYC GIS Zoning Features April 2019, BYTES of the BIG APPLE™', - url: [ - 'https://www1.nyc.gov/site/planning/data-maps/open-data.page', - ], + description: + 'NYC GIS Zoning Features April 2019, BYTES of the BIG APPLE™', + url: ['https://www1.nyc.gov/site/planning/data-maps/open-data.page'], data_date: 'April 2019', updated_at: 'April 2019', }, @@ -2154,10 +2080,7 @@ export default { paint: { 'text-color': 'rgba(37, 37, 37, 1)', 'text-halo-color': '#fff', - 'text-translate': [ - 0, - 0, - ], + 'text-translate': [0, 0], 'text-halo-width': 2, 'text-halo-blur': 1, }, @@ -2217,7 +2140,8 @@ export default { }, ], meta: { - description: 'NYC Department of City Planning Technical Review Division', + description: + 'NYC Department of City Planning Technical Review Division', updated_at: '6 April 2018', }, }, @@ -2261,14 +2185,8 @@ export default { paint: { 'line-width': { stops: [ - [ - 12, - 0.1, - ], - [ - 15, - 2, - ], + [12, 0.1], + [15, 2], ], }, 'line-color': 'rgba(220,10,10,0.75)', @@ -2384,7 +2302,8 @@ export default { }, ], meta: { - description: 'Zoning related datasets April 2019, BYTES of the BIG APPLE™', + description: + 'Zoning related datasets April 2019, BYTES of the BIG APPLE™', url: [ 'https://www1.nyc.gov/site/planning/data-maps/open-data.page#zoning_related', ], @@ -2392,9 +2311,7 @@ export default { updated_at: 'April 2019', }, }, - relationships: { - - }, + relationships: {}, }, { type: 'layers', @@ -2408,21 +2325,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(159, 199, 62, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -2455,7 +2363,8 @@ export default { clickable: true, highlightable: true, tooltipable: true, - 'tooltip-template': '{{{project_na}}} - Effective {{{effectiveformatted}}}', + 'tooltip-template': + '{{{project_na}}} - Effective {{{effectiveformatted}}}', }, }, { @@ -2475,7 +2384,8 @@ export default { }, ], meta: { - description: 'NYC GIS Zoning Features April 2019, BYTES of the BIG APPLE™', + description: + 'NYC GIS Zoning Features April 2019, BYTES of the BIG APPLE™', url: [ 'https://www1.nyc.gov/site/planning/data-maps/open-data/dwn-gis-zoning.page', ], @@ -2483,9 +2393,7 @@ export default { updated_at: 'April 2019', }, }, - relationships: { - - }, + relationships: {}, }, { type: 'layers', @@ -2499,21 +2407,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(176, 31, 31, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -2561,21 +2460,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(94,102,51, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -2622,21 +2512,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': '#8DA610', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], 'line-opacity': 0.6, }, layout: { @@ -2686,21 +2567,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(118, 66, 10, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -2747,21 +2619,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(204, 61, 93, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -2808,21 +2671,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(229, 115, 0, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -2870,21 +2724,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(230, 214, 46, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -2931,21 +2776,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(48, 191, 78, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -2970,11 +2806,7 @@ export default { }, filter: [ 'all', - [ - '==', - 'name', - 'Zoning and discretionary tax incentives', - ], + ['==', 'name', 'Zoning and discretionary tax incentives'], ], layout: { visibility: 'none', @@ -3000,14 +2832,7 @@ export default { paint: { 'fill-color': 'rgba(11, 147, 144, 0.2)', }, - filter: [ - 'all', - [ - '==', - 'name', - 'Zoning incentives', - ], - ], + filter: ['all', ['==', 'name', 'Zoning incentives']], layout: { visibility: 'none', }, @@ -3032,14 +2857,7 @@ export default { paint: { 'fill-color': 'rgba(143, 227, 57, 0.2)', }, - filter: [ - 'all', - [ - '==', - 'name', - 'Discretionary tax incentives', - ], - ], + filter: ['all', ['==', 'name', 'Discretionary tax incentives']], layout: { visibility: 'none', }, @@ -3064,30 +2882,14 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 0.5, - ], - [ - 13, - 1, - ], - [ - 15, - 5, - ], + [11, 0.5], + [13, 1], + [15, 5], ], }, 'line-color': '#28AD15', }, - filter: [ - 'all', - [ - '==', - 'cafetype', - 'All Cafes', - ], - ], + filter: ['all', ['==', 'cafetype', 'All Cafes']], layout: { visibility: 'none', }, @@ -3109,30 +2911,14 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 0.5, - ], - [ - 13, - 1, - ], - [ - 15, - 5, - ], + [11, 0.5], + [13, 1], + [15, 5], ], }, 'line-color': '#CC3DCA', }, - filter: [ - 'all', - [ - '==', - 'cafetype', - 'Small Only', - ], - ], + filter: ['all', ['==', 'cafetype', 'Small Only']], layout: { visibility: 'none', }, @@ -3154,30 +2940,14 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 0.5, - ], - [ - 13, - 1, - ], - [ - 15, - 5, - ], + [11, 0.5], + [13, 1], + [15, 5], ], }, 'line-color': '#216BC6', }, - filter: [ - 'all', - [ - '==', - 'cafetype', - 'Unenclosed Only', - ], - ], + filter: ['all', ['==', 'cafetype', 'Unenclosed Only']], layout: { visibility: 'none', }, @@ -3199,21 +2969,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(157, 71, 178, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -3260,21 +3021,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(93, 198, 228, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -3321,21 +3073,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(0, 164, 210, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -3382,21 +3125,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(70, 130, 180, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -3460,9 +3194,7 @@ export default { updated_at: '17 May 2018', }, }, - relationships: { - - }, + relationships: {}, }, { type: 'layers', @@ -3478,14 +3210,8 @@ export default { property: 'fld_zone', type: 'categorical', stops: [ - [ - 'V', - '#0084a8', - ], - [ - 'A', - '#00a9e6', - ], + ['V', '#0084a8'], + ['A', '#00a9e6'], ], }, 'fill-opacity': 0.7, @@ -3526,9 +3252,7 @@ export default { updated_at: 'September 2017', }, }, - relationships: { - - }, + relationships: {}, }, { type: 'layers', @@ -3544,14 +3268,8 @@ export default { property: 'fld_zone', type: 'categorical', stops: [ - [ - 'V', - '#0084a8', - ], - [ - 'A', - '#00a9e6', - ], + ['V', '#0084a8'], + ['A', '#00a9e6'], ], }, 'fill-opacity': 0.7, @@ -3580,21 +3298,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(243, 51, 225, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -3641,21 +3350,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(118, 66, 10, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -3702,21 +3402,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(43, 10, 118, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -3765,14 +3456,8 @@ export default { 'line-opacity': 0.5, 'line-width': { stops: [ - [ - 11, - 4, - ], - [ - 16, - 8, - ], + [11, 4], + [16, 8], ], }, }, @@ -3799,14 +3484,8 @@ export default { 'line-opacity': 0.8, 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 16, - 3, - ], + [11, 1], + [16, 3], ], }, }, @@ -3874,16 +3553,13 @@ export default { mvt: 10, }, meta: { - description: 'Administrative and Political Districts v18D, BYTES of the BIG APPLE™', - url: [ - 'https://www1.nyc.gov/site/planning/data-maps/open-data.page', - ], + description: + 'Administrative and Political Districts v18D, BYTES of the BIG APPLE™', + url: ['https://www1.nyc.gov/site/planning/data-maps/open-data.page'], updated_at: '30 November 2018', }, }, - relationships: { - - }, + relationships: {}, }, { type: 'layers', @@ -3899,14 +3575,8 @@ export default { 'line-opacity': 0.5, 'line-width': { stops: [ - [ - 11, - 4, - ], - [ - 16, - 8, - ], + [11, 4], + [16, 8], ], }, }, @@ -3933,14 +3603,8 @@ export default { 'line-opacity': 0.8, 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 16, - 3, - ], + [11, 1], + [16, 3], ], }, }, @@ -3973,20 +3637,11 @@ export default { }, layout: { 'text-field': '{boro_district}', - 'text-font': [ - 'Open Sans Semibold', - 'Arial Unicode MS Bold', - ], + 'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'], 'text-size': { stops: [ - [ - 11, - 12, - ], - [ - 14, - 16, - ], + [11, 12], + [14, 16], ], }, visibility: 'none', @@ -4012,14 +3667,8 @@ export default { 'line-opacity': 0.7, 'line-width': { stops: [ - [ - 11, - 4, - ], - [ - 16, - 8, - ], + [11, 4], + [16, 8], ], }, }, @@ -4046,14 +3695,8 @@ export default { 'line-opacity': 0.8, 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 16, - 3, - ], + [11, 1], + [16, 3], ], }, }, @@ -4086,20 +3729,11 @@ export default { }, layout: { 'text-field': '{coundist}', - 'text-font': [ - 'Open Sans Semibold', - 'Arial Unicode MS Bold', - ], + 'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'], 'text-size': { stops: [ - [ - 11, - 12, - ], - [ - 14, - 16, - ], + [11, 12], + [14, 16], ], }, visibility: 'none', @@ -4121,33 +3755,19 @@ export default { 'source-layer': 'nyc-council-districts-combined', minzoom: 10, paint: { - 'line-color': - { + 'line-color': { property: 'year', type: 'categorical', stops: [ - [ - '2013', - '#33D8DC', - ], - [ - '2024', - '#DC333D', - ], + ['2013', '#33D8DC'], + ['2024', '#DC333D'], ], }, 'line-opacity': 0.7, - 'line-width': - { + 'line-width': { stops: [ - [ - 11, - 4, - ], - [ - 16, - 8, - ], + [11, 4], + [16, 8], ], }, }, @@ -4174,14 +3794,8 @@ export default { 'line-opacity': 0.8, 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 16, - 3, - ], + [11, 1], + [16, 3], ], }, }, @@ -4214,20 +3828,11 @@ export default { }, layout: { 'text-field': '{coundist}', - 'text-font': [ - 'Open Sans Semibold', - 'Arial Unicode MS Bold', - ], + 'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'], 'text-size': { stops: [ - [ - 11, - 12, - ], - [ - 14, - 16, - ], + [11, 12], + [14, 16], ], }, visibility: 'none', @@ -4252,14 +3857,8 @@ export default { 'line-opacity': 0.4, 'line-width': { stops: [ - [ - 11, - 4, - ], - [ - 16, - 8, - ], + [11, 4], + [16, 8], ], }, }, @@ -4286,14 +3885,8 @@ export default { 'line-opacity': 0.6, 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 16, - 3, - ], + [11, 1], + [16, 3], ], }, }, @@ -4326,20 +3919,11 @@ export default { }, layout: { 'text-field': '{stsendist}', - 'text-font': [ - 'Open Sans Semibold', - 'Arial Unicode MS Bold', - ], + 'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'], 'text-size': { stops: [ - [ - 11, - 12, - ], - [ - 14, - 16, - ], + [11, 12], + [14, 16], ], }, visibility: 'none', @@ -4364,14 +3948,8 @@ export default { 'line-opacity': 0.4, 'line-width': { stops: [ - [ - 11, - 4, - ], - [ - 16, - 8, - ], + [11, 4], + [16, 8], ], }, }, @@ -4398,14 +3976,8 @@ export default { 'line-opacity': 0.8, 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 16, - 3, - ], + [11, 1], + [16, 3], ], }, }, @@ -4438,20 +4010,11 @@ export default { }, layout: { 'text-field': '{assemdist}', - 'text-font': [ - 'Open Sans Semibold', - 'Arial Unicode MS Bold', - ], + 'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'], 'text-size': { stops: [ - [ - 11, - 12, - ], - [ - 14, - 16, - ], + [11, 12], + [14, 16], ], }, visibility: 'none', @@ -4476,14 +4039,8 @@ export default { 'line-opacity': 0.3, 'line-width': { stops: [ - [ - 11, - 4, - ], - [ - 16, - 8, - ], + [11, 4], + [16, 8], ], }, }, @@ -4510,14 +4067,8 @@ export default { 'line-opacity': 0.6, 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 16, - 3, - ], + [11, 1], + [16, 3], ], }, }, @@ -4550,20 +4101,11 @@ export default { }, layout: { 'text-field': '{ntaname}', - 'text-font': [ - 'Open Sans Semibold', - 'Arial Unicode MS Bold', - ], + 'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'], 'text-size': { stops: [ - [ - 11, - 12, - ], - [ - 14, - 16, - ], + [11, 12], + [14, 16], ], }, visibility: 'none', @@ -4604,26 +4146,13 @@ export default { source: 'transportation', 'source-layer': 'subway-routes', type: 'line', - filter: [ - 'all', - [ - '==', - 'rt_symbol', - '4', - ], - ], + filter: ['all', ['==', 'rt_symbol', '4']], paint: { 'line-color': 'rgba(0, 147, 60, 1)', 'line-width': { stops: [ - [ - 10, - 1, - ], - [ - 15, - 4, - ], + [10, 1], + [15, 4], ], }, }, @@ -4645,26 +4174,13 @@ export default { source: 'transportation', 'source-layer': 'subway-routes', type: 'line', - filter: [ - 'all', - [ - '==', - 'rt_symbol', - 'N', - ], - ], + filter: ['all', ['==', 'rt_symbol', 'N']], paint: { 'line-color': 'rgba(252, 204, 10, 1)', 'line-width': { stops: [ - [ - 10, - 1, - ], - [ - 15, - 4, - ], + [10, 1], + [15, 4], ], }, }, @@ -4685,26 +4201,13 @@ export default { id: 'subway_gray', source: 'transportation', 'source-layer': 'subway-routes', - filter: [ - 'all', - [ - '==', - 'rt_symbol', - 'L', - ], - ], + filter: ['all', ['==', 'rt_symbol', 'L']], paint: { 'line-color': 'rgba(167, 169, 172, 1)', 'line-width': { stops: [ - [ - 10, - 1, - ], - [ - 15, - 4, - ], + [10, 1], + [15, 4], ], }, }, @@ -4726,26 +4229,13 @@ export default { source: 'transportation', 'source-layer': 'subway-routes', type: 'line', - filter: [ - 'all', - [ - '==', - 'rt_symbol', - 'J', - ], - ], + filter: ['all', ['==', 'rt_symbol', 'J']], paint: { 'line-color': 'rgba(153, 102, 51, 1)', 'line-width': { stops: [ - [ - 10, - 1, - ], - [ - 15, - 4, - ], + [10, 1], + [15, 4], ], }, }, @@ -4767,26 +4257,13 @@ export default { source: 'transportation', 'source-layer': 'subway-routes', type: 'line', - filter: [ - 'all', - [ - '==', - 'rt_symbol', - 'G', - ], - ], + filter: ['all', ['==', 'rt_symbol', 'G']], paint: { 'line-color': 'rgba(108, 190, 69, 1)', 'line-width': { stops: [ - [ - 10, - 1, - ], - [ - 15, - 4, - ], + [10, 1], + [15, 4], ], }, }, @@ -4808,26 +4285,13 @@ export default { source: 'transportation', 'source-layer': 'subway-routes', type: 'line', - filter: [ - 'all', - [ - '==', - 'rt_symbol', - 'B', - ], - ], + filter: ['all', ['==', 'rt_symbol', 'B']], paint: { 'line-color': 'rgba(255, 99, 25, 1)', 'line-width': { stops: [ - [ - 10, - 1, - ], - [ - 15, - 4, - ], + [10, 1], + [15, 4], ], }, }, @@ -4849,31 +4313,13 @@ export default { source: 'transportation', 'source-layer': 'subway-routes', type: 'line', - filter: [ - 'any', - [ - '==', - 'rt_symbol', - 'A', - ], - [ - '==', - 'rt_symbol', - 'SI', - ], - ], + filter: ['any', ['==', 'rt_symbol', 'A'], ['==', 'rt_symbol', 'SI']], paint: { 'line-color': 'rgba(0, 57, 166, 1)', 'line-width': { stops: [ - [ - 10, - 1, - ], - [ - 15, - 4, - ], + [10, 1], + [15, 4], ], }, }, @@ -4895,26 +4341,13 @@ export default { source: 'transportation', 'source-layer': 'subway-routes', type: 'line', - filter: [ - 'all', - [ - '==', - 'rt_symbol', - '7', - ], - ], + filter: ['all', ['==', 'rt_symbol', '7']], paint: { 'line-color': 'rgba(185, 51, 173, 1)', 'line-width': { stops: [ - [ - 10, - 1, - ], - [ - 15, - 4, - ], + [10, 1], + [15, 4], ], }, }, @@ -4936,26 +4369,13 @@ export default { source: 'transportation', 'source-layer': 'subway-routes', type: 'line', - filter: [ - 'all', - [ - '==', - 'rt_symbol', - '1', - ], - ], + filter: ['all', ['==', 'rt_symbol', '1']], paint: { 'line-color': 'rgba(238, 53, 46, 1)', 'line-width': { stops: [ - [ - 10, - 1, - ], - [ - 15, - 4, - ], + [10, 1], + [15, 4], ], }, }, @@ -4982,38 +4402,20 @@ export default { 'circle-color': 'rgba(255, 255, 255, 1)', 'circle-opacity': { stops: [ - [ - 11, - 0, - ], - [ - 12, - 1, - ], + [11, 0], + [12, 1], ], }, 'circle-stroke-opacity': { stops: [ - [ - 11, - 0, - ], - [ - 12, - 1, - ], + [11, 0], + [12, 1], ], }, 'circle-radius': { stops: [ - [ - 10, - 2, - ], - [ - 14, - 5, - ], + [10, 2], + [14, 5], ], }, 'circle-stroke-width': 1, @@ -5050,20 +4452,11 @@ export default { paint: { 'text-halo-color': 'rgba(255, 255, 255, 1)', 'text-halo-width': 1, - 'text-translate': [ - 1, - 20, - ], + 'text-translate': [1, 20], 'text-opacity': { stops: [ - [ - 13, - 0, - ], - [ - 14, - 1, - ], + [13, 0], + [14, 1], ], }, }, @@ -5116,10 +4509,7 @@ export default { 'symbol-spacing': 250, 'symbol-avoid-edges': false, 'text-size': 8, - 'text-offset': [ - 0, - 1, - ], + 'text-offset': [0, 1], 'text-anchor': 'center', visibility: 'visible', }, @@ -5128,14 +4518,8 @@ export default { 'text-halo-width': 1, 'text-opacity': { stops: [ - [ - 16.5, - 0, - ], - [ - 17.5, - 1, - ], + [16.5, 0], + [17.5, 1], ], }, }, @@ -5172,7 +4556,8 @@ export default { }, ], meta: { - description: 'NYC Subway Lines and Stops - Originally Sourced from NYC DoITT GIS, combined with SI Railway data from Baruch College NYC Mass Transit Spatial Layers | Subway entrances from NYC Open Data', + description: + 'NYC Subway Lines and Stops - Originally Sourced from NYC DoITT GIS, combined with SI Railway data from Baruch College NYC Mass Transit Spatial Layers | Subway entrances from NYC Open Data', url: [ 'https://planninglabs.carto.com/api/v2/sql?q=SELECT * FROM mta_subway_stops&format=SHP', 'https://planninglabs.carto.com/api/v2/sql?q=SELECT * FROM mta_subway_routes&format=SHP', @@ -5196,14 +4581,8 @@ export default { paint: { 'fill-opacity': { stops: [ - [ - 15, - 0, - ], - [ - 16, - 0.3, - ], + [15, 0], + [16, 0.3], ], }, 'fill-color': 'rgba(175, 175, 175, 1)', @@ -5230,10 +4609,7 @@ export default { paint: { 'fill-extrusion-color': 'rgba(203, 203, 203, 1)', 'fill-extrusion-opacity': 0.95, - 'fill-extrusion-translate': [ - 3, - 0, - ], + 'fill-extrusion-translate': [3, 0], 'fill-extrusion-height': { property: 'render_height', type: 'identity', @@ -5467,15 +4843,11 @@ export default { attributes: { id: 'aerials-1924', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/1924/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/1924/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5486,15 +4858,11 @@ export default { attributes: { id: 'aerials-1951', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/1951/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/1951/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5505,15 +4873,11 @@ export default { attributes: { id: 'aerials-1996', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/1996/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/1996/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5524,15 +4888,11 @@ export default { attributes: { id: 'aerials-20012', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2001-2/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2001-2/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5543,15 +4903,11 @@ export default { attributes: { id: 'aerials-2004', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2004/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2004/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5562,15 +4918,11 @@ export default { attributes: { id: 'aerials-2006', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2006/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2006/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5581,15 +4933,11 @@ export default { attributes: { id: 'aerials-2008', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2008/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2008/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5600,15 +4948,11 @@ export default { attributes: { id: 'aerials-2010', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2010/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2010/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5619,15 +4963,11 @@ export default { attributes: { id: 'aerials-2012', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2012/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2012/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5638,15 +4978,11 @@ export default { attributes: { id: 'aerials-2014', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2014/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2014/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5657,15 +4993,11 @@ export default { attributes: { id: 'aerials-2016', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2016/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2016/{z}/{x}/{y}.png8'], 'tile-size': 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -5686,50 +5018,17 @@ export default { property: 'landuse', type: 'categorical', stops: [ - [ - '01', - '#FEFFA8', - ], - [ - '02', - '#FCB842', - ], - [ - '03', - '#B16E00', - ], - [ - '04', - '#ff8341', - ], - [ - '05', - '#fc2929', - ], - [ - '06', - '#E362FB', - ], - [ - '07', - '#E0BEEB', - ], - [ - '08', - '#44A3D5', - ], - [ - '09', - '#78D271', - ], - [ - '10', - '#BAB8B6', - ], - [ - '11', - '#555555', - ], + ['01', '#FEFFA8'], + ['02', '#FCB842'], + ['03', '#B16E00'], + ['04', '#ff8341'], + ['05', '#fc2929'], + ['06', '#E362FB'], + ['07', '#E0BEEB'], + ['08', '#44A3D5'], + ['09', '#78D271'], + ['10', '#BAB8B6'], + ['11', '#555555'], ], default: '#EEEEEE', }, @@ -5763,14 +5062,8 @@ export default { 'line-color': 'rgba(130, 130, 130, 1)', 'line-opacity': { stops: [ - [ - 15, - 0, - ], - [ - 16, - 1, - ], + [15, 0], + [16, 1], ], }, }, @@ -5795,24 +5088,15 @@ export default { minzoom: 15, layout: { 'text-field': '{lot}', - 'text-font': [ - 'Open Sans Regular', - 'Arial Unicode MS Regular', - ], + 'text-font': ['Open Sans Regular', 'Arial Unicode MS Regular'], 'text-size': 11, visibility: 'visible', }, paint: { 'text-opacity': { stops: [ - [ - 16.5, - 0, - ], - [ - 17.5, - 1, - ], + [16.5, 0], + [17.5, 1], ], }, 'icon-color': 'rgba(193, 193, 193, 1)', @@ -5863,14 +5147,8 @@ export default { paint: { 'circle-radius': { stops: [ - [ - 10, - 3, - ], - [ - 15, - 7, - ], + [10, 3], + [15, 7], ], }, 'circle-color': '#012700', @@ -5897,28 +5175,16 @@ export default { paint: { 'circle-radius': { stops: [ - [ - 10, - 1, - ], - [ - 15, - 5, - ], + [10, 1], + [15, 5], ], }, 'circle-color': { property: 'lm_type', type: 'categorical', stops: [ - [ - 'Individual Landmark', - 'rgba(147, 245, 201, 1)', - ], - [ - 'Interior Landmark', - 'rgba(152, 152, 247, 1)', - ], + ['Individual Landmark', 'rgba(147, 245, 201, 1)'], + ['Interior Landmark', 'rgba(152, 152, 247, 1)'], ], }, 'circle-opacity': 0.7, @@ -5947,21 +5213,12 @@ export default { paint: { 'line-width': { stops: [ - [ - 11, - 1, - ], - [ - 12, - 3, - ], + [11, 1], + [12, 3], ], }, 'line-color': 'rgba(153, 18, 237, 0.6)', - 'line-dasharray': [ - 1, - 1, - ], + 'line-dasharray': [1, 1], }, layout: { visibility: 'none', @@ -6008,27 +5265,15 @@ export default { paint: { 'circle-radius': { stops: [ - [ - 16, - 2, - ], - [ - 17, - 5, - ], + [16, 2], + [17, 5], ], }, 'circle-color': 'rgba(255, 255, 255, 0.65)', 'circle-stroke-opacity': { stops: [ - [ - 15, - 1, - ], - [ - 16, - 1, - ], + [15, 1], + [16, 1], ], }, 'circle-stroke-color': 'rgba(52, 33, 220, 1)', @@ -6046,7 +5291,8 @@ export default { clickable: true, highlightable: true, tooltipable: true, - 'tooltip-template': "{{fa-icon icon='external-link-alt'}} E-designation, E-Number: {{{enumber}}}, CEQR: {{{ceqr_num}}}, ULURP: {{{ulurp_num}}}", + 'tooltip-template': + "{{fa-icon icon='external-link-alt'}} E-designation, E-Number: {{{enumber}}}, CEQR: {{{ceqr_num}}}, ULURP: {{{ulurp_num}}}", }, }, { @@ -6068,14 +5314,8 @@ export default { paint: { 'text-opacity': { stops: [ - [ - 16, - 0, - ], - [ - 17, - 1, - ], + [16, 0], + [17, 1], ], }, }, @@ -6091,12 +5331,10 @@ export default { version: 8, name: 'NYCPlanning Positron', metadata: { - attribution: 'Based on OpenMapTiles Positron style: https://github.com/openmaptiles/positron-gl-style', + attribution: + 'Based on OpenMapTiles Positron style: https://github.com/openmaptiles/positron-gl-style', }, - center: [ - -73.869324, - 40.815888, - ], + center: [-73.869324, 40.815888], zoom: 9.72, bearing: 0, pitch: 0, @@ -6132,105 +5370,77 @@ export default { 'aerials-2016': { id: 'aerials-2016', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2016/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2016/{z}/{x}/{y}.png8'], tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, 'aerials-2014': { id: 'aerials-2014', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2014/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2014/{z}/{x}/{y}.png8'], tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, 'aerials-2012': { id: 'aerials-2012', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2012/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2012/{z}/{x}/{y}.png8'], tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, 'aerials-2010': { id: 'aerials-2010', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2010/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2010/{z}/{x}/{y}.png8'], tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, 'aerials-2008': { id: 'aerials-2008', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2008/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2008/{z}/{x}/{y}.png8'], tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, 'aerials-2006': { id: 'aerials-2006', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2006/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2006/{z}/{x}/{y}.png8'], tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, 'aerials-2004': { id: 'aerials-2004', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/2004/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/2004/{z}/{x}/{y}.png8'], tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -6243,54 +5453,40 @@ export default { tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, 'aerials-1996': { id: 'aerials-1996', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/1996/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/1996/{z}/{x}/{y}.png8'], tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, 'aerials-1951': { id: 'aerials-1951', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/1951/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/1951/{z}/{x}/{y}.png8'], tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, 'aerials-1924': { id: 'aerials-1924', type: 'raster', - tiles: [ - 'https://maps.nyc.gov/xyz/1.0.0/photo/1924/{z}/{x}/{y}.png8', - ], + tiles: ['https://maps.nyc.gov/xyz/1.0.0/photo/1924/{z}/{x}/{y}.png8'], tileSize: 256, meta: { description: 'NYC DoITT GIS Aerial Photography Tile Layers (TMS)', - url: [ - 'https://maps.nyc.gov/tiles/', - ], + url: ['https://maps.nyc.gov/tiles/'], updated_at: 'n/a', }, }, @@ -6367,8 +5563,10 @@ export default { ], }, }, - sprite: 'https://labs-mapbox-gl-noop-tiles.nyc3.digitaloceanspaces.com/static/sprite@2x', - glyphs: 'https://labs-mapbox-gl-noop-tiles.nyc3.digitaloceanspaces.com/fonts/dummy-font.pbf?noop={fontstack}{range}', + sprite: + 'https://labs-mapbox-gl-noop-tiles.nyc3.digitaloceanspaces.com/static/sprite@2x', + glyphs: + 'https://labs-mapbox-gl-noop-tiles.nyc3.digitaloceanspaces.com/fonts/dummy-font.pbf?noop={fontstack}{range}', layers: [ { id: 'background', @@ -6382,11 +5580,7 @@ export default { type: 'fill', source: 'openmaptiles', 'source-layer': 'park', - filter: [ - '==', - '$type', - 'Polygon', - ], + filter: ['==', '$type', 'Polygon'], layout: { visibility: 'visible', }, @@ -6399,11 +5593,7 @@ export default { type: 'fill', source: 'openmaptiles', 'source-layer': 'water', - filter: [ - '==', - '$type', - 'Polygon', - ], + filter: ['==', '$type', 'Polygon'], layout: { visibility: 'visible', }, @@ -6420,16 +5610,8 @@ export default { maxzoom: 8, filter: [ 'all', - [ - '==', - '$type', - 'Polygon', - ], - [ - '==', - 'subclass', - 'ice_shelf', - ], + ['==', '$type', 'Polygon'], + ['==', 'subclass', 'ice_shelf'], ], layout: { visibility: 'visible', @@ -6447,16 +5629,8 @@ export default { maxzoom: 8, filter: [ 'all', - [ - '==', - '$type', - 'Polygon', - ], - [ - '==', - 'subclass', - 'glacier', - ], + ['==', '$type', 'Polygon'], + ['==', 'subclass', 'glacier'], ], layout: { visibility: 'visible', @@ -6466,14 +5640,8 @@ export default { 'fill-opacity': { base: 1, stops: [ - [ - 0, - 1, - ], - [ - 8, - 0.5, - ], + [0, 1], + [8, 0.5], ], }, }, @@ -6486,16 +5654,8 @@ export default { maxzoom: 16, filter: [ 'all', - [ - '==', - '$type', - 'Polygon', - ], - [ - '==', - 'class', - 'residential', - ], + ['==', '$type', 'Polygon'], + ['==', 'class', 'residential'], ], layout: { visibility: 'visible', @@ -6505,14 +5665,8 @@ export default { 'fill-opacity': { base: 0.6, stops: [ - [ - 8, - 0.8, - ], - [ - 9, - 0.6, - ], + [8, 0.8], + [9, 0.6], ], }, }, @@ -6523,19 +5677,7 @@ export default { source: 'openmaptiles', 'source-layer': 'landcover', minzoom: 10, - filter: [ - 'all', - [ - '==', - '$type', - 'Polygon', - ], - [ - '==', - 'class', - 'grass', - ], - ], + filter: ['all', ['==', '$type', 'Polygon'], ['==', 'class', 'grass']], layout: { visibility: 'visible', }, @@ -6544,14 +5686,8 @@ export default { 'fill-opacity': { base: 1, stops: [ - [ - 8, - 0, - ], - [ - 12, - 1, - ], + [8, 0], + [12, 1], ], }, }, @@ -6559,16 +5695,10 @@ export default { { id: 'landuse_cemetery', type: 'fill', - metadata: { - - }, + metadata: {}, source: 'openmaptiles', 'source-layer': 'landuse', - filter: [ - '==', - 'class', - 'cemetery', - ], + filter: ['==', 'class', 'cemetery'], layout: { visibility: 'visible', }, @@ -6581,20 +5711,13 @@ export default { type: 'line', source: 'openmaptiles', 'source-layer': 'waterway', - filter: [ - '==', - '$type', - 'LineString', - ], + filter: ['==', '$type', 'LineString'], layout: { visibility: 'visible', }, paint: { 'line-color': '#bbccdd', - 'line-dasharray': [ - 3, - 3, - ], + 'line-dasharray': [3, 3], }, }, { @@ -6602,20 +5725,13 @@ export default { type: 'symbol', source: 'openmaptiles', 'source-layer': 'water_name', - filter: [ - '==', - '$type', - 'LineString', - ], + filter: ['==', '$type', 'LineString'], layout: { 'text-field': '{name:latin}\n{name:nonlatin}', 'symbol-placement': 'line', 'text-rotation-alignment': 'map', 'symbol-spacing': 500, - 'text-font': [ - 'Metropolis Medium Italic', - 'Noto Sans Italic', - ], + 'text-font': ['Metropolis Medium Italic', 'Noto Sans Italic'], 'text-size': 12, }, paint: { @@ -6636,9 +5752,7 @@ export default { 'fill-outline-color': 'rgb(219, 219, 218)', 'fill-antialias': true, }, - filter: [ - 'all', - ], + filter: ['all'], }, { id: 'tunnel_motorway_casing', @@ -6651,24 +5765,8 @@ export default { minzoom: 6, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'all', - [ - '==', - 'brunnel', - 'tunnel', - ], - [ - '==', - 'class', - 'motorway', - ], - ], + ['==', '$type', 'LineString'], + ['all', ['==', 'brunnel', 'tunnel'], ['==', 'class', 'motorway']], ], layout: { 'line-cap': 'butt', @@ -6680,18 +5778,9 @@ export default { 'line-width': { base: 1.4, stops: [ - [ - 5.8, - 0, - ], - [ - 6, - 3, - ], - [ - 20, - 40, - ], + [5.8, 0], + [6, 3], + [20, 40], ], }, 'line-opacity': 1, @@ -6708,24 +5797,8 @@ export default { minzoom: 6, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'all', - [ - '==', - 'brunnel', - 'tunnel', - ], - [ - '==', - 'class', - 'motorway', - ], - ], + ['==', '$type', 'LineString'], + ['all', ['==', 'brunnel', 'tunnel'], ['==', 'class', 'motorway']], ], layout: { 'line-cap': 'round', @@ -6737,18 +5810,9 @@ export default { 'line-width': { base: 1.4, stops: [ - [ - 4, - 2, - ], - [ - 6, - 1.3, - ], - [ - 20, - 30, - ], + [4, 2], + [6, 1.3], + [20, 30], ], }, }, @@ -6762,14 +5826,7 @@ export default { source: 'openmaptiles', 'source-layer': 'aeroway', minzoom: 12, - filter: [ - 'all', - [ - 'in', - 'class', - 'taxiway', - ], - ], + filter: ['all', ['in', 'class', 'taxiway']], layout: { 'line-cap': 'round', 'line-join': 'round', @@ -6780,14 +5837,8 @@ export default { 'line-width': { base: 1.55, stops: [ - [ - 13, - 1.8, - ], - [ - 20, - 20, - ], + [13, 1.8], + [20, 20], ], }, 'line-opacity': 1, @@ -6802,14 +5853,7 @@ export default { source: 'openmaptiles', 'source-layer': 'aeroway', minzoom: 11, - filter: [ - 'all', - [ - 'in', - 'class', - 'runway', - ], - ], + filter: ['all', ['in', 'class', 'runway']], layout: { 'line-cap': 'round', 'line-join': 'round', @@ -6820,14 +5864,8 @@ export default { 'line-width': { base: 1.5, stops: [ - [ - 11, - 6, - ], - [ - 17, - 55, - ], + [11, 6], + [17, 55], ], }, 'line-opacity': 1, @@ -6844,17 +5882,8 @@ export default { minzoom: 4, filter: [ 'all', - [ - '==', - '$type', - 'Polygon', - ], - [ - 'in', - 'class', - 'runway', - 'taxiway', - ], + ['==', '$type', 'Polygon'], + ['in', 'class', 'runway', 'taxiway'], ], layout: { visibility: 'visible', @@ -6863,14 +5892,8 @@ export default { 'fill-opacity': { base: 1, stops: [ - [ - 13, - 0, - ], - [ - 14, - 1, - ], + [13, 0], + [14, 1], ], }, 'fill-color': 'rgba(255, 255, 255, 1)', @@ -6888,16 +5911,8 @@ export default { maxzoom: 24, filter: [ 'all', - [ - 'in', - 'class', - 'runway', - ], - [ - '==', - '$type', - 'LineString', - ], + ['in', 'class', 'runway'], + ['==', '$type', 'LineString'], ], layout: { 'line-cap': 'round', @@ -6909,14 +5924,8 @@ export default { 'line-width': { base: 1.5, stops: [ - [ - 11, - 4, - ], - [ - 17, - 50, - ], + [11, 4], + [17, 50], ], }, 'line-opacity': 1, @@ -6932,16 +5941,8 @@ export default { 'source-layer': 'transportation', filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - '==', - 'class', - 'path', - ], + ['==', '$type', 'LineString'], + ['==', 'class', 'path'], ], layout: { 'line-cap': 'round', @@ -6953,14 +5954,8 @@ export default { 'line-width': { base: 1.2, stops: [ - [ - 13, - 1, - ], - [ - 20, - 10, - ], + [13, 1], + [20, 10], ], }, 'line-opacity': 0.9, @@ -6977,18 +5972,8 @@ export default { minzoom: 8, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'in', - 'class', - 'minor', - 'service', - 'track', - ], + ['==', '$type', 'LineString'], + ['in', 'class', 'minor', 'service', 'track'], ], layout: { 'line-cap': 'round', @@ -7000,14 +5985,8 @@ export default { 'line-width': { base: 1.55, stops: [ - [ - 13, - 1.8, - ], - [ - 20, - 20, - ], + [13, 1.8], + [20, 20], ], }, 'line-opacity': 0.9, @@ -7024,19 +6003,8 @@ export default { minzoom: 11, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'in', - 'class', - 'primary', - 'secondary', - 'tertiary', - 'trunk', - ], + ['==', '$type', 'LineString'], + ['in', 'class', 'primary', 'secondary', 'tertiary', 'trunk'], ], layout: { 'line-cap': 'butt', @@ -7045,21 +6013,12 @@ export default { }, paint: { 'line-color': 'rgb(213, 213, 213)', - 'line-dasharray': [ - 12, - 0, - ], + 'line-dasharray': [12, 0], 'line-width': { base: 1.3, stops: [ - [ - 10, - 3, - ], - [ - 20, - 23, - ], + [10, 3], + [20, 23], ], }, }, @@ -7075,19 +6034,8 @@ export default { minzoom: 11, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'in', - 'class', - 'primary', - 'secondary', - 'tertiary', - 'trunk', - ], + ['==', '$type', 'LineString'], + ['in', 'class', 'primary', 'secondary', 'tertiary', 'trunk'], ], layout: { 'line-cap': 'round', @@ -7099,14 +6047,8 @@ export default { 'line-width': { base: 1.3, stops: [ - [ - 10, - 2, - ], - [ - 20, - 20, - ], + [10, 2], + [20, 20], ], }, }, @@ -7122,19 +6064,8 @@ export default { maxzoom: 11, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'in', - 'class', - 'primary', - 'secondary', - 'tertiary', - 'trunk', - ], + ['==', '$type', 'LineString'], + ['in', 'class', 'primary', 'secondary', 'tertiary', 'trunk'], ], layout: { 'line-cap': 'round', @@ -7157,24 +6088,11 @@ export default { minzoom: 6, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], + ['==', '$type', 'LineString'], [ 'all', - [ - '!in', - 'brunnel', - 'bridge', - 'tunnel', - ], - [ - '==', - 'class', - 'motorway', - ], + ['!in', 'brunnel', 'bridge', 'tunnel'], + ['==', 'class', 'motorway'], ], ], layout: { @@ -7187,24 +6105,12 @@ export default { 'line-width': { base: 1.4, stops: [ - [ - 5.8, - 0, - ], - [ - 6, - 3, - ], - [ - 20, - 40, - ], + [5.8, 0], + [6, 3], + [20, 40], ], }, - 'line-dasharray': [ - 2, - 0, - ], + 'line-dasharray': [2, 0], 'line-opacity': 1, }, }, @@ -7219,24 +6125,11 @@ export default { minzoom: 6, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], + ['==', '$type', 'LineString'], [ 'all', - [ - '!in', - 'brunnel', - 'bridge', - 'tunnel', - ], - [ - '==', - 'class', - 'motorway', - ], + ['!in', 'brunnel', 'bridge', 'tunnel'], + ['==', 'class', 'motorway'], ], ], layout: { @@ -7248,31 +6141,16 @@ export default { 'line-color': { base: 1, stops: [ - [ - 5.8, - 'hsla(0, 0%, 85%, 0.53)', - ], - [ - 6, - '#fff', - ], + [5.8, 'hsla(0, 0%, 85%, 0.53)'], + [6, '#fff'], ], }, 'line-width': { base: 1.4, stops: [ - [ - 4, - 2, - ], - [ - 6, - 1.3, - ], - [ - 20, - 30, - ], + [4, 2], + [6, 1.3], + [20, 30], ], }, }, @@ -7288,16 +6166,8 @@ export default { maxzoom: 6, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - '==', - 'class', - 'motorway', - ], + ['==', '$type', 'LineString'], + ['==', 'class', 'motorway'], ], layout: { 'line-cap': 'round', @@ -7309,14 +6179,8 @@ export default { 'line-width': { base: 1.4, stops: [ - [ - 4, - 2, - ], - [ - 6, - 1.3, - ], + [4, 2], + [6, 1.3], ], }, }, @@ -7332,24 +6196,8 @@ export default { minzoom: 16, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'all', - [ - '==', - 'class', - 'transit', - ], - [ - '!in', - 'brunnel', - 'tunnel', - ], - ], + ['==', '$type', 'LineString'], + ['all', ['==', 'class', 'transit'], ['!in', 'brunnel', 'tunnel']], ], layout: { visibility: 'visible', @@ -7371,24 +6219,8 @@ export default { minzoom: 16, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'all', - [ - '==', - 'class', - 'transit', - ], - [ - '!in', - 'brunnel', - 'tunnel', - ], - ], + ['==', '$type', 'LineString'], + ['all', ['==', 'class', 'transit'], ['!in', 'brunnel', 'tunnel']], ], layout: { visibility: 'visible', @@ -7397,10 +6229,7 @@ export default { paint: { 'line-color': '#fafafa', 'line-width': 2, - 'line-dasharray': [ - 3, - 3, - ], + 'line-dasharray': [3, 3], }, }, { @@ -7414,23 +6243,8 @@ export default { minzoom: 16, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'all', - [ - '==', - 'class', - 'rail', - ], - [ - 'has', - 'service', - ], - ], + ['==', '$type', 'LineString'], + ['all', ['==', 'class', 'rail'], ['has', 'service']], ], layout: { visibility: 'visible', @@ -7452,20 +6266,9 @@ export default { minzoom: 16, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - '==', - 'class', - 'rail', - ], - [ - 'has', - 'service', - ], + ['==', '$type', 'LineString'], + ['==', 'class', 'rail'], + ['has', 'service'], ], layout: { visibility: 'visible', @@ -7474,10 +6277,7 @@ export default { paint: { 'line-color': '#fafafa', 'line-width': 2, - 'line-dasharray': [ - 3, - 3, - ], + 'line-dasharray': [3, 3], }, }, { @@ -7491,23 +6291,8 @@ export default { minzoom: 13, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'all', - [ - '!has', - 'service', - ], - [ - '==', - 'class', - 'rail', - ], - ], + ['==', '$type', 'LineString'], + ['all', ['!has', 'service'], ['==', 'class', 'rail']], ], layout: { visibility: 'visible', @@ -7518,14 +6303,8 @@ export default { 'line-width': { base: 1.3, stops: [ - [ - 16, - 3, - ], - [ - 20, - 7, - ], + [16, 3], + [20, 7], ], }, }, @@ -7541,23 +6320,8 @@ export default { minzoom: 13, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'all', - [ - '!has', - 'service', - ], - [ - '==', - 'class', - 'rail', - ], - ], + ['==', '$type', 'LineString'], + ['all', ['!has', 'service'], ['==', 'class', 'rail']], ], layout: { visibility: 'visible', @@ -7568,20 +6332,11 @@ export default { 'line-width': { base: 1.3, stops: [ - [ - 16, - 2, - ], - [ - 20, - 6, - ], + [16, 2], + [20, 6], ], }, - 'line-dasharray': [ - 3, - 3, - ], + 'line-dasharray': [3, 3], }, }, { @@ -7595,24 +6350,8 @@ export default { minzoom: 6, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'all', - [ - '==', - 'brunnel', - 'bridge', - ], - [ - '==', - 'class', - 'motorway', - ], - ], + ['==', '$type', 'LineString'], + ['all', ['==', 'brunnel', 'bridge'], ['==', 'class', 'motorway']], ], layout: { 'line-cap': 'butt', @@ -7624,24 +6363,12 @@ export default { 'line-width': { base: 1.4, stops: [ - [ - 5.8, - 0, - ], - [ - 6, - 5, - ], - [ - 20, - 45, - ], + [5.8, 0], + [6, 5], + [20, 45], ], }, - 'line-dasharray': [ - 2, - 0, - ], + 'line-dasharray': [2, 0], 'line-opacity': 1, }, }, @@ -7656,24 +6383,8 @@ export default { minzoom: 6, filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - 'all', - [ - '==', - 'brunnel', - 'bridge', - ], - [ - '==', - 'class', - 'motorway', - ], - ], + ['==', '$type', 'LineString'], + ['all', ['==', 'brunnel', 'bridge'], ['==', 'class', 'motorway']], ], layout: { 'line-cap': 'round', @@ -7684,31 +6395,16 @@ export default { 'line-color': { base: 1, stops: [ - [ - 5.8, - 'hsla(0, 0%, 85%, 0.53)', - ], - [ - 6, - '#fff', - ], + [5.8, 'hsla(0, 0%, 85%, 0.53)'], + [6, '#fff'], ], }, 'line-width': { base: 1.4, stops: [ - [ - 4, - 2, - ], - [ - 6, - 1.3, - ], - [ - 20, - 30, - ], + [4, 2], + [6, 1.3], + [20, 30], ], }, }, @@ -7723,26 +6419,15 @@ export default { 'source-layer': 'transportation_name', filter: [ 'all', - [ - '!=', - 'class', - 'motorway', - ], - [ - '==', - '$type', - 'LineString', - ], + ['!=', 'class', 'motorway'], + ['==', '$type', 'LineString'], ], layout: { 'text-size': 10, 'text-max-angle': 30, 'text-transform': 'uppercase', 'symbol-spacing': 350, - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'symbol-placement': 'line', visibility: 'visible', 'text-rotation-alignment': 'map', @@ -7752,10 +6437,7 @@ export default { paint: { 'text-color': 'rgb(117, 129, 145)', 'text-halo-color': '#fff', - 'text-translate': [ - 0, - 0, - ], + 'text-translate': [0, 0], 'text-halo-width': 2, 'text-halo-blur': 1, }, @@ -7770,24 +6452,13 @@ export default { 'source-layer': 'transportation_name', filter: [ 'all', - [ - '==', - '$type', - 'LineString', - ], - [ - '==', - 'class', - 'motorway', - ], + ['==', '$type', 'LineString'], + ['==', 'class', 'motorway'], ], layout: { 'text-size': 10, 'symbol-spacing': 350, - 'text-font': [ - 'Metropolis Light', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Light', 'Noto Sans Regular'], 'symbol-placement': 'line', visibility: 'visible', 'text-rotation-alignment': 'viewport', @@ -7797,10 +6468,7 @@ export default { paint: { 'text-color': 'rgb(117, 129, 145)', 'text-halo-color': 'hsl(0, 0%, 100%)', - 'text-translate': [ - 0, - 2, - ], + 'text-translate': [0, 2], 'text-halo-width': 1, 'text-halo-blur': 1, }, @@ -7813,11 +6481,7 @@ export default { }, source: 'openmaptiles', 'source-layer': 'boundary', - filter: [ - '==', - 'admin_level', - 4, - ], + filter: ['==', 'admin_level', 4], layout: { 'line-cap': 'round', 'line-join': 'round', @@ -7828,21 +6492,12 @@ export default { 'line-width': { base: 1.3, stops: [ - [ - 3, - 1, - ], - [ - 22, - 15, - ], + [3, 1], + [22, 15], ], }, 'line-blur': 0.4, - 'line-dasharray': [ - 2, - 2, - ], + 'line-dasharray': [2, 2], 'line-opacity': 1, }, }, @@ -7854,11 +6509,7 @@ export default { }, source: 'openmaptiles', 'source-layer': 'boundary', - filter: [ - '==', - 'admin_level', - 2, - ], + filter: ['==', 'admin_level', 2], layout: { 'line-cap': 'round', 'line-join': 'round', @@ -7868,27 +6519,15 @@ export default { 'line-width': { base: 1.1, stops: [ - [ - 3, - 1, - ], - [ - 22, - 20, - ], + [3, 1], + [22, 20], ], }, 'line-blur': { base: 1, stops: [ - [ - 0, - 0.4, - ], - [ - 22, - 4, - ], + [0, 0.4], + [22, 4], ], }, 'line-opacity': 1, @@ -7913,19 +6552,12 @@ export default { 'neighbourhood', 'isolated_dwelling', ], - [ - '==', - '$type', - 'Point', - ], + ['==', '$type', 'Point'], ], layout: { 'text-size': 10, 'text-transform': 'uppercase', - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'text-justify': 'center', visibility: 'visible', 'text-anchor': 'center', @@ -7947,26 +6579,11 @@ export default { source: 'openmaptiles', 'source-layer': 'place', maxzoom: 15, - filter: [ - 'all', - [ - '==', - '$type', - 'Point', - ], - [ - '==', - 'class', - 'suburb', - ], - ], + filter: ['all', ['==', '$type', 'Point'], ['==', 'class', 'suburb']], layout: { 'text-size': 10, 'text-transform': 'uppercase', - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'text-justify': 'center', visibility: 'visible', 'text-anchor': 'center', @@ -7988,26 +6605,11 @@ export default { source: 'openmaptiles', 'source-layer': 'place', maxzoom: 14, - filter: [ - 'all', - [ - '==', - '$type', - 'Point', - ], - [ - '==', - 'class', - 'village', - ], - ], + filter: ['all', ['==', '$type', 'Point'], ['==', 'class', 'village']], layout: { 'text-size': 10, 'text-transform': 'uppercase', - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'text-justify': 'center', visibility: 'visible', 'text-anchor': 'center', @@ -8029,26 +6631,11 @@ export default { source: 'openmaptiles', 'source-layer': 'place', maxzoom: 15, - filter: [ - 'all', - [ - '==', - '$type', - 'Point', - ], - [ - '==', - 'class', - 'town', - ], - ], + filter: ['all', ['==', '$type', 'Point'], ['==', 'class', 'town']], layout: { 'text-size': 10, 'text-transform': 'uppercase', - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'text-justify': 'center', visibility: 'visible', 'text-anchor': 'center', @@ -8072,37 +6659,18 @@ export default { maxzoom: 14, filter: [ 'all', - [ - '==', - '$type', - 'Point', - ], + ['==', '$type', 'Point'], [ 'all', - [ - '!=', - 'capital', - 2, - ], - [ - '==', - 'class', - 'city', - ], - [ - '>', - 'rank', - 3, - ], + ['!=', 'capital', 2], + ['==', 'class', 'city'], + ['>', 'rank', 3], ], ], layout: { 'text-size': 10, 'text-transform': 'uppercase', - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'text-justify': 'center', visibility: 'visible', 'text-anchor': 'center', @@ -8126,32 +6694,13 @@ export default { maxzoom: 12, filter: [ 'all', - [ - '==', - '$type', - 'Point', - ], - [ - 'all', - [ - '==', - 'capital', - 2, - ], - [ - '==', - 'class', - 'city', - ], - ], + ['==', '$type', 'Point'], + ['all', ['==', 'capital', 2], ['==', 'class', 'city']], ], layout: { 'text-size': 14, 'text-transform': 'uppercase', - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'text-justify': 'center', visibility: 'visible', 'text-anchor': 'center', @@ -8175,37 +6724,18 @@ export default { maxzoom: 12, filter: [ 'all', - [ - '==', - '$type', - 'Point', - ], + ['==', '$type', 'Point'], [ 'all', - [ - '!=', - 'capital', - 2, - ], - [ - '<=', - 'rank', - 3, - ], - [ - '==', - 'class', - 'city', - ], + ['!=', 'capital', 2], + ['<=', 'rank', 3], + ['==', 'class', 'city'], ], ], layout: { 'text-size': 14, 'text-transform': 'uppercase', - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'text-justify': 'center', visibility: 'visible', 'text-field': '{name:latin}\n{name:nonlatin}', @@ -8226,26 +6756,11 @@ export default { source: 'openmaptiles', 'source-layer': 'place', maxzoom: 12, - filter: [ - 'all', - [ - '==', - '$type', - 'Point', - ], - [ - '==', - 'class', - 'state', - ], - ], + filter: ['all', ['==', '$type', 'Point'], ['==', 'class', 'state']], layout: { visibility: 'visible', 'text-field': '{name:latin}\n{name:nonlatin}', - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'text-transform': 'uppercase', 'text-size': 10, }, @@ -8267,40 +6782,20 @@ export default { maxzoom: 8, filter: [ 'all', - [ - '==', - '$type', - 'Point', - ], - [ - '==', - 'class', - 'country', - ], - [ - '!has', - 'iso_a2', - ], + ['==', '$type', 'Point'], + ['==', 'class', 'country'], + ['!has', 'iso_a2'], ], layout: { visibility: 'visible', 'text-field': '{name:latin}', - 'text-font': [ - 'Metropolis Light Italic', - 'Noto Sans Italic', - ], + 'text-font': ['Metropolis Light Italic', 'Noto Sans Italic'], 'text-transform': 'uppercase', 'text-size': { base: 1, stops: [ - [ - 0, - 9, - ], - [ - 6, - 11, - ], + [0, 9], + [6, 11], ], }, }, @@ -8310,14 +6805,8 @@ export default { 'text-color': { base: 1, stops: [ - [ - 3, - 'rgb(157,169,177)', - ], - [ - 4, - 'rgb(153, 153, 153)', - ], + [3, 'rgb(157,169,177)'], + [4, 'rgb(153, 153, 153)'], ], }, }, @@ -8333,45 +6822,21 @@ export default { maxzoom: 8, filter: [ 'all', - [ - '==', - '$type', - 'Point', - ], - [ - '==', - 'class', - 'country', - ], - [ - '>=', - 'rank', - 2, - ], - [ - 'has', - 'iso_a2', - ], + ['==', '$type', 'Point'], + ['==', 'class', 'country'], + ['>=', 'rank', 2], + ['has', 'iso_a2'], ], layout: { visibility: 'visible', 'text-field': '{name:latin}', - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'text-transform': 'uppercase', 'text-size': { base: 1, stops: [ - [ - 0, - 10, - ], - [ - 6, - 12, - ], + [0, 10], + [6, 12], ], }, }, @@ -8381,14 +6846,8 @@ export default { 'text-color': { base: 1, stops: [ - [ - 3, - 'rgb(157,169,177)', - ], - [ - 4, - 'rgb(153, 153, 153)', - ], + [3, 'rgb(157,169,177)'], + [4, 'rgb(153, 153, 153)'], ], }, }, @@ -8404,49 +6863,22 @@ export default { maxzoom: 6, filter: [ 'all', - [ - '==', - '$type', - 'Point', - ], - [ - '<=', - 'rank', - 1, - ], - [ - '==', - 'class', - 'country', - ], - [ - 'has', - 'iso_a2', - ], + ['==', '$type', 'Point'], + ['<=', 'rank', 1], + ['==', 'class', 'country'], + ['has', 'iso_a2'], ], layout: { visibility: 'visible', 'text-field': '{name:latin}', - 'text-font': [ - 'Metropolis Regular', - 'Noto Sans Regular', - ], + 'text-font': ['Metropolis Regular', 'Noto Sans Regular'], 'text-transform': 'uppercase', 'text-size': { base: 1.4, stops: [ - [ - 0, - 10, - ], - [ - 3, - 12, - ], - [ - 4, - 14, - ], + [0, 10], + [3, 12], + [4, 14], ], }, 'text-anchor': 'center', @@ -8457,14 +6889,8 @@ export default { 'text-color': { base: 1, stops: [ - [ - 3, - 'rgb(157,169,177)', - ], - [ - 4, - 'rgb(153, 153, 153)', - ], + [3, 'rgb(157,169,177)'], + [4, 'rgb(153, 153, 153)'], ], }, }, diff --git a/package.json b/package.json index 698a99a48..196e352cd 100644 --- a/package.json +++ b/package.json @@ -12,116 +12,122 @@ }, "scripts": { "build": "ember build --environment=production", - "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", - "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix", + "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"", + "lint:css": "stylelint \"**/*.css\"", + "lint:css:fix": "concurrently \"npm:lint:css -- --fix\"", + "lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"", "lint:hbs": "ember-template-lint .", "lint:hbs:fix": "ember-template-lint . --fix", + "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", "start": "ember serve -dev", "start:local-api": "API_HOST=http://localhost:3000 ember serve", "test": "ember test", - "prepare": "husky install" + "prepare": "husky install", + "upgrade": "ember-cli-update --run-codemods" }, "devDependencies": { - "@babel/eslint-parser": "^7.18.2", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/core": "^7.0.0", + "@babel/eslint-parser": "^7.21.3", + "@babel/plugin-proposal-decorators": "^7.21.0", "@ember/optional-features": "^2.0.0", "@ember/render-modifiers": "^2.0.4", - "@ember/test-helpers": "^2.8.1", + "@ember/string": "^3.0.1", + "@ember/test-helpers": "^3.2.0", "@ember/test-waiters": "^3.0.2", - "@fortawesome/ember-fontawesome": "0.3.0", - "@fortawesome/free-regular-svg-icons": "^5.15.3", - "@fortawesome/free-solid-svg-icons": "^5.15.3", - "@glimmer/component": "^1.0.4", - "@glimmer/tracking": "^1.0.4", - "@nycplanning/ember": "^2.1.0", + "@fortawesome/ember-fontawesome": "^1.0.0", + "@fortawesome/free-regular-svg-icons": "^6.2.0", + "@fortawesome/free-solid-svg-icons": "^6.2.0", + "@glimmer/component": "^1.1.2", + "@glimmer/tracking": "^1.1.2", + "@mapbox/mapbox-gl-draw": "^1.0.0", + "@nycplanning/ember": "^3.0.0", + "@nycplanning/ember-cli-foundation-6-sass": "^0.1.0", + "@nycplanning/ember-cli-nouislider": "^1.3.0", + "@nycplanning/ember-mapbox-gl-draw": "^2.1.0", + "@nycplanning/ember-parachute": "^1.1.1", "@turf/area": "^6.0.1", "@turf/line-distance": "^4.7.3", - "babel-eslint": "^10.1.0", "broccoli-asset-rev": "^3.0.0", "broccoli-clean-css": "^2.0.1", + "concurrently": "^8.0.1", "dcp-ember-metrics": "https://github.com/dhochbaum-dcp/dcp-ember-metrics", - "ember-async-await-helper": "0.1.0", - "ember-auto-import": "^2.6.0", - "ember-clean-project": "1.0.1", - "ember-cli": "~3.28.6", - "ember-cli-app-version": "^5.0.0", - "ember-cli-babel": "^7.26.6", + "ember-async-await-helper": "^1.0.0", + "ember-auto-import": "^2.6.3", + "ember-cli": "~4.12.1", + "ember-cli-app-version": "^6.0.0", + "ember-cli-babel": "^7.26.11", "ember-cli-bundle-analyzer": "0.1.0", "ember-cli-code-coverage": "1.0.0-beta.7", - "ember-cli-dependency-checker": "^3.2.0", + "ember-cli-dependency-checker": "^3.3.1", "ember-cli-dependency-lint": "^2.0.1", - "ember-cli-foundation-6-sass": "^0.0.27", - "ember-cli-htmlbars": "^5.7.1", + "ember-cli-htmlbars": "^6.2.0", "ember-cli-inject-live-reload": "^2.1.0", - "ember-cli-mirage": "^2.4.0", + "ember-cli-mirage": "3.0.0-alpha.3", "ember-cli-netlify": "^0.1.0", - "ember-cli-nouislider": "1.0.0", "ember-cli-preprocess-registry": "3.1.2", - "ember-cli-sass": "11.0.1", + "ember-cli-sass": "^11.0.1", "ember-cli-sri": "^2.1.1", "ember-cli-terser": "^4.0.2", "ember-cli-tree-shaker": "0.2.0", - "ember-cli-update": "0.22.0", - "ember-composability-tools": "^0.0.12", + "ember-cli-update": "^1.0.1", "ember-composable-helpers": "3.2.0", - "ember-concurrency": "^2.3.7", + "ember-concurrency": "3.1.1", "ember-concurrency-retryable": "1.0.0", - "ember-content-placeholders": "^1.0.0", - "ember-data": "~3.28.0", - "ember-data-model-fragments": "5.0.0-beta.8", + "ember-data": "~4.11.3", "ember-decorators": "6.0.0", "ember-decorators-polyfill": "1.0.5", - "ember-element-resize-detector": "0.2.1", - "ember-export-application-global": "^2.0.1", - "ember-fetch": "^8.1.1", "ember-g-recaptcha": "^1.3.0", "ember-load-initializers": "^2.1.2", - "ember-local-storage": "2.0.2", - "ember-mapbox-gl": "^1.0.0", + "ember-local-storage": "^2.0.5", + "ember-mapbox-gl": "^2.0.0", "ember-mapbox-gl-draw": "https://github.com/allthesignals/ember-mapbox-gl-draw#patch-3", - "ember-maybe-import-regenerator": "^0.1.6", - "ember-native-dom-helpers": "^0.6.2", - "ember-parachute": "1.0.2", - "ember-promise-helpers": "^1.0.9", - "ember-qunit": "^5.1.4", - "ember-resolver": "^8.0.2", + "ember-modifier": "^4.1.0", + "ember-promise-helpers": "^2.0.0", + "ember-qunit": "^7.0.0", + "ember-resolver": "^10.1.0", "ember-responsive": "^5.0.0", - "ember-source": "~3.28.11", - "ember-template-lint": "^3.6.0", - "ember-test-selectors": "2.0.0", + "ember-source": "~4.12.0", + "ember-template-lint": "^5.7.2", + "ember-test-selectors": "^6.0.0", "ember-tooltips": "^3.1.0", "ember-truth-helpers": "^3.1.1", - "ember-unused-components": "0.2.0", - "ember-window-mock": "0.5.4", - "ember-wormhole": "^0.5.2", - "eslint": "^7.32.0", - "eslint-config-airbnb-base": "^13.0.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-ember": "^10.5.4", + "ember-window-mock": "^0.9.0", + "ember-wormhole": "^0.6.0", + "eslint": "^8.37.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-decorator-position": "^5.0.2", + "eslint-plugin-ember": "^11.5.0", "eslint-plugin-ember-best-practices": "1.1.1", "eslint-plugin-import": "^2.12.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.4.1", - "eslint-plugin-qunit": "^6.2.0", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-qunit": "^7.3.4", "foundation-sites": "^6.7.5", "husky": "^6.0.0", + "jquery": "^3.6.0", "lint-staged": "^13.1.0", "loader.js": "^4.7.0", - "mapbox-gl": "1.0.0", - "mapbox-gl-draw": "0.16.0", + "mapbox-gl": "^1.0.0", "moment": "2.22.2", - "npm-run-all": "^4.1.5", + "motion-ui": "^2.0.4", "pretender": "^3.4.7", - "prettier": "^2.3.2", - "qunit": "^2.16.0", + "prettier": "^2.8.7", + "qunit": "^2.19.4", "qunit-dom": "^2.0.0", + "rsvp": "^4.8.5", "sass-embedded": "^1.63.6", "sinon": "^15.0.1", - "webpack": "^5.75.0" + "stylelint": "^15.4.0", + "stylelint-config-standard": "^32.0.0", + "stylelint-prettier": "^3.0.0", + "tracked-built-ins": "^3.1.1", + "webpack": "^5.78.0", + "what-input": "^5.2.10" }, "engines": { - "node": "16.*" + "node": "14.* || 16.* || >= 18" }, "ember": { "edition": "octane" @@ -135,8 +141,10 @@ "numeral": "^2.0.6" }, "resolutions": { + "ember-auto-import": "^2.6.3", "ember-cli-sass": "^11.0.1", - "babel-eslint/@babel/parser": "7.7.5" + "babel-eslint/@babel/parser": "7.7.5", + "ember-cli-typescript": "5.2.1" }, "lint-staged": { "*.js": "eslint --cache --fix" diff --git a/scripts/sitemap.js b/scripts/sitemap.js index 27845889f..723d34fb4 100644 --- a/scripts/sitemap.js +++ b/scripts/sitemap.js @@ -7,7 +7,9 @@ let count = 0; function createSitemap(rows) { // set up export file - const sitemap = fs.createWriteStream(`../public/sitemap/sitemap_${count}.txt`); + const sitemap = fs.createWriteStream( + `../public/sitemap/sitemap_${count}.txt` + ); rows.forEach((row) => { console.log(row); // eslint-disable-line @@ -17,7 +19,9 @@ function createSitemap(rows) { const block = parseInt(bbl.substring(1, 6), 10).toString(); const lot = parseInt(bbl.substring(6, 10), 10).toString(); - sitemap.write(`https://zola.planning.nyc.gov/lot/${boro}/${block}/${lot}\n`); + sitemap.write( + `https://zola.planning.nyc.gov/lot/${boro}/${block}/${lot}\n` + ); }); count += 1; @@ -40,5 +44,4 @@ function getData() { }); } - getData(count); diff --git a/testem.js b/testem.js index 7bc1c3707..6edd28bdf 100644 --- a/testem.js +++ b/testem.js @@ -1,6 +1,3 @@ -/* eslint-env node */ -'use strict'; - module.exports = { test_page: 'tests/index.html?hidepassed', disable_watching: true, diff --git a/tests/acceptance/bbox-test.js b/tests/acceptance/bbox-test.js index 349bfc787..21cb2a035 100644 --- a/tests/acceptance/bbox-test.js +++ b/tests/acceptance/bbox-test.js @@ -9,7 +9,7 @@ import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; // mode. when tiles and mapbox-gl network calls point to dummy resources, it's rly // fast. seems like this fails randomly and therefore the test is unreliable, so // is the feature. TODO: CORRECTLY FIX WHATEVER BUG THIS WAS SUPPOSED TO FIX -module('Acceptance | bbox', function(hooks) { +module('Acceptance | bbox', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); @@ -22,18 +22,18 @@ module('Acceptance | bbox', function(hooks) { // for now, let's stub the map and move on. stubBasicMap(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - skip('visiting valid bbox does not redirect', async function(assert) { + skip('visiting valid bbox does not redirect', async function (assert) { const goodBboxUrl = '-73.9978/40.5705/-73.9804/40.5785'; await visit(`/bbox/${goodBboxUrl}`); assert.equal(currentURL(), `/bbox/${goodBboxUrl}`); }); - skip('visiting invalid bbox redirects to /about', async function(assert) { + skip('visiting invalid bbox redirects to /about', async function (assert) { const badBboxUrl = 'foo/40.5705/-73.9804/40.5785'; await visit(`/bbox/${badBboxUrl}`); diff --git a/tests/acceptance/bookmarks-test.js b/tests/acceptance/bookmarks-test.js index e0f8ac5d0..b1a1a90dc 100644 --- a/tests/acceptance/bookmarks-test.js +++ b/tests/acceptance/bookmarks-test.js @@ -1,10 +1,4 @@ -import { - visit, - click, - currentURL, - find, - waitUntil, -} from '@ember/test-helpers'; +import { visit, click, currentURL, find, waitUntil } from '@ember/test-helpers'; import { module, test } from 'qunit'; import { setupApplicationTest } from 'ember-qunit'; import { setupMirage } from 'ember-cli-mirage/test-support'; @@ -13,20 +7,19 @@ import Sinon from 'sinon'; import stubBasicMap from '../helpers/stub-basic-map'; import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; -const localStorageSetStringified = function(key, jsonString) { +const localStorageSetStringified = function (key, jsonString) { window.localStorage.setItem(key, JSON.stringify(jsonString)); }; -module('Acceptance | bookmarks', function(hooks) { +module('Acceptance | bookmarks', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); stubBasicMap(hooks); - - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - hooks.beforeEach(function() { + hooks.beforeEach(function () { if (window.localStorage) { window.localStorage.clear(); } @@ -36,7 +29,7 @@ module('Acceptance | bookmarks', function(hooks) { resetStorages(); }); - hooks.after(function() { + hooks.after(function () { if (window.localStorage) { window.localStorage.clear(); } @@ -46,20 +39,20 @@ module('Acceptance | bookmarks', function(hooks) { resetStorages(); }); - test('visiting /bookmarks', async function(assert) { + test('visiting /bookmarks', async function (assert) { await visit('/bookmarks'); assert.equal(currentURL(), '/bookmarks'); }); - test('visiting /bookmarks, see empty message', async function(assert) { + test('visiting /bookmarks, see empty message', async function (assert) { await visit('/bookmarks'); await waitUntil(() => find('.content-area')); assert.ok(find('.no-bookmarks')); }); - test('search lot, save, find result in bookmarks, delete it', async function(assert) { + test('search lot, save, find result in bookmarks, delete it', async function (assert) { this.server.create('lot', { id: 1000477501, properties: { @@ -70,7 +63,10 @@ module('Acceptance | bookmarks', function(hooks) { await visit('/lot/1/47/7501'); await click('[data-test-bookmark="save"]'); await visit('/bookmarks'); - assert.equal(find('[data-test-lot-property="bbl"]').textContent.trim(), 1000477501); + assert.equal( + find('[data-test-lot-property="bbl"]').textContent.trim(), + 1000477501 + ); await click('.delete-bookmark-button'); @@ -80,7 +76,7 @@ module('Acceptance | bookmarks', function(hooks) { // TODO: i believe there's a weird race condition here where it visits a lot // before promises have settled, and too quickly tries to bookmark // a lot. hence, we add await settled. - test('bookmark lot, see count increase, un-bookmark', async function(assert) { + test('bookmark lot, see count increase, un-bookmark', async function (assert) { this.server.create('lot', { id: 1000477501, properties: { @@ -99,7 +95,7 @@ module('Acceptance | bookmarks', function(hooks) { assert.ok(find('[data-test-bookmark-button-saved="false"]')); }); - test('it displays a saved bookmark', async function(assert) { + test('it displays a saved bookmark', async function (assert) { const sharedCartoResponseID = '3034430054'; this.server.create('lot', { @@ -133,10 +129,13 @@ module('Acceptance | bookmarks', function(hooks) { await visit('/bookmarks'); - assert.equal(find('[data-test-lot-property="bbl"]').textContent.trim(), sharedCartoResponseID); + assert.equal( + find('[data-test-lot-property="bbl"]').textContent.trim(), + sharedCartoResponseID + ); }); - test('it displays a multiple lots', async function(assert) { + test('it displays a multiple lots', async function (assert) { this.server.create('lot', { id: 1, properties: { @@ -180,7 +179,10 @@ module('Acceptance | bookmarks', function(hooks) { type: 'bookmarks', }); - localStorageSetStringified('index-bookmarks', ['bookmarks-1', 'bookmarks-2']); + localStorageSetStringified('index-bookmarks', [ + 'bookmarks-1', + 'bookmarks-2', + ]); await visit('/bookmarks'); @@ -188,7 +190,7 @@ module('Acceptance | bookmarks', function(hooks) { assert.ok(find('[data-test-bookmark="test-2"]')); }); - test('it works with legacy records', async function(assert) { + test('it works with legacy records', async function (assert) { this.server.create('carto-geojson-feature', { id: '050111azmk', }); @@ -216,7 +218,7 @@ module('Acceptance | bookmarks', function(hooks) { assert.ok(true); }); - test('it highlights bookmarked lots on map', async function(assert) { + test('it highlights bookmarked lots on map', async function (assert) { this.sandbox = Sinon.createSandbox(); this.addLayerSpy = this.sandbox.spy(this.map, 'addLayer'); @@ -244,7 +246,10 @@ module('Acceptance | bookmarks', function(hooks) { await visit('/bookmarks'); - assert.ok(this.addLayerSpy.calledWithMatch({ id: 'bookmarked-lots' }), 'it adds bookmarked lots'); + assert.ok( + this.addLayerSpy.calledWithMatch({ id: 'bookmarked-lots' }), + 'it adds bookmarked lots' + ); this.sandbox.restore(); }); diff --git a/tests/acceptance/direct-load-lot-disables-zoom-test.js b/tests/acceptance/direct-load-lot-disables-zoom-test.js index 381593d5e..4006a2f98 100644 --- a/tests/acceptance/direct-load-lot-disables-zoom-test.js +++ b/tests/acceptance/direct-load-lot-disables-zoom-test.js @@ -6,30 +6,30 @@ import Sinon from 'sinon'; import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; import stubBasicMap from '../helpers/stub-basic-map'; -module('Acceptance | direct load lot disables zoom', function(hooks) { +module('Acceptance | direct load lot disables zoom', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); stubBasicMap(hooks); // setup sinon sandbox - hooks.before(function() { + hooks.before(function () { this.sandbox = Sinon.createSandbox(); }); // reset sinon - hooks.afterEach(function() { + hooks.afterEach(function () { this.sandbox.restore(); }); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.fitBoundsSpy = this.sandbox.spy(this.map, 'fitBounds'); }); - test('visiting lot', async function(assert) { + test('visiting lot', async function (assert) { this.server.create('lot', { id: 1, properties: { diff --git a/tests/acceptance/index-test.js b/tests/acceptance/index-test.js index 07286d844..fe4ea5027 100644 --- a/tests/acceptance/index-test.js +++ b/tests/acceptance/index-test.js @@ -6,6 +6,7 @@ import { triggerKeyEvent, waitUntil, currentURL, + settled, } from '@ember/test-helpers'; import { module, test } from 'qunit'; import { setupApplicationTest } from 'ember-qunit'; @@ -15,32 +16,36 @@ import config from '../../config/environment'; import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; import stubBasicMap from '../helpers/stub-basic-map'; -const { 'labs-search': { host: labsSearchHost } } = config; +const { + 'labs-search': { host: labsSearchHost }, +} = config; const SEARCH_INPUT_SELECTOR = '.map-search-input'; const SEARCH_RESULTS_SELECTOR = '.search-results'; const SEARCH_TERM_LOT = '1000477501'; const timeout = 15000; -const resultAt = function(x) { +const resultAt = function (x) { return `${SEARCH_RESULTS_SELECTOR} li:nth-child(${x + 1})`; }; -module('Acceptance | index', function(hooks) { +module('Acceptance | index', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); stubBasicMap(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - hooks.beforeEach(function() { - this.server.get(`${labsSearchHost}/**`, function() { - return [{ bbl: 1000477501, label: '120 Broadway, Manhattan', type: 'lot' }]; + hooks.beforeEach(function () { + this.server.get(`${labsSearchHost}/**`, function () { + return [ + { bbl: 1000477501, label: '120 Broadway, Manhattan', type: 'lot' }, + ]; }); }); - test('map-search enter on first search result', async function(assert) { + test('map-search enter on first search result', async function (assert) { this.server.create('lot', { id: 1000477501, properties: { @@ -52,13 +57,10 @@ module('Acceptance | index', function(hooks) { await waitUntil(() => find('.has-results'), { timeout }); await click('.result'); - assert.equal( - (currentURL().indexOf('/') > -1), - true, - ); + assert.equal(currentURL().indexOf('/') > -1, true); }); - test('map-search keydown, keyup, keyup -> first result highlighted', async function(assert) { + test('map-search keydown, keyup, keyup -> first result highlighted', async function (assert) { this.server.create('lot', { id: 1000477501, properties: { @@ -74,27 +76,30 @@ module('Acceptance | index', function(hooks) { await triggerKeyEvent(SEARCH_INPUT_SELECTOR, 'keyup', 38); assert.equal( - (find(resultAt(1)).className.indexOf('highlighted-result') > -1), - true, + find(resultAt(1)).className.indexOf('highlighted-result') > -1, + true ); }); - test('it does BBL lookup', async function(assert) { + test('it does BBL lookup', async function (assert) { this.server.create('lot', { id: 1000477501, properties: { borocode: '1', }, }); - await visit('/'); await click('[data-test-search="bbl"] span'); - - await selectChoose('[data-test-search="bbl"] .ember-basic-dropdown', 'Manhattan (1)'); + await selectChoose( + '[data-test-search="bbl"] .ember-basic-dropdown', + 'Manhattan (1)' + ); await fillIn('[data-test-search="bbl"] .bbl-lookup--block-input', 1); await fillIn('[data-test-search="bbl"] .bbl-lookup--lot-input', 1); await click('[data-test-search="bbl"] .button.small.expanded.no-margin'); + // eslint-disable-next-line ember/no-settled-after-test-helper + await settled(); assert.ok(currentURL().includes('lot/1/47/7501')); }); }); diff --git a/tests/acceptance/layer-behavior-tests-test.js b/tests/acceptance/layer-behavior-tests-test.js index 162d29297..921da036c 100644 --- a/tests/acceptance/layer-behavior-tests-test.js +++ b/tests/acceptance/layer-behavior-tests-test.js @@ -1,11 +1,5 @@ import { module, test } from 'qunit'; -import { - visit, - currentURL, - find, - click, - fillIn, -} from '@ember/test-helpers'; +import { visit, currentURL, find, click, fillIn } from '@ember/test-helpers'; import { setupApplicationTest } from 'ember-qunit'; import { setupMirage } from 'ember-cli-mirage/test-support'; import layerGroupsFixtures from 'labs-zola/mirage/static-fixtures/layer-groups'; @@ -14,7 +8,9 @@ import config from 'labs-zola/config/environment'; import Sinon from 'sinon'; import resetStorages from 'ember-local-storage/test-support/reset-storage'; -const { 'labs-search': { host: labsSearchHost } } = config; +const { + 'labs-search': { host: labsSearchHost }, +} = config; const DEFAULT_REQUIRED_FEATURE_PROPS = { type: 'Feature', layer: { @@ -22,60 +18,75 @@ const DEFAULT_REQUIRED_FEATURE_PROPS = { }, geometry: { type: 'Polygon', - coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]], + coordinates: [ + [ + [0, 0], + [0, 1], + [1, 1], + [1, 0], + [0, 0], + ], + ], }, properties: {}, }; -const clickMap = async function(map, properties) { - map.features = [{ - ...DEFAULT_REQUIRED_FEATURE_PROPS, - properties, - }]; +const clickMap = async function (map, properties) { + map.features = [ + { + ...DEFAULT_REQUIRED_FEATURE_PROPS, + properties, + }, + ]; await map.events.mousemove(); await map.events.click(); }; -const hoverMap = async function(map, overrides = {}) { - map.features = [{ - ...DEFAULT_REQUIRED_FEATURE_PROPS, - ...overrides, - }]; +const hoverMap = async function (map, overrides = {}) { + map.features = [ + { + ...DEFAULT_REQUIRED_FEATURE_PROPS, + ...overrides, + }, + ]; await map.events.mousemove({ point: { x: 0, y: 0 }, }); }; -const toggleLayerGroupOn = async function(selector) { +const toggleLayerGroupOn = async function (selector) { if (!find(`${selector}.active`)) { await click(`${selector} .layer-group-toggle-label`); } }; -// this is pretty bad - this assumes that all hoverable layer groups -// include a layer with an id that has "-fill" affixed. -const lookupLayerIDsFromFixtures = function(layerGroupId) { - const { relationships: { layers } } = layerGroupsFixtures.data - .findBy('id', layerGroupId); - - return layers.data.mapBy('id'); +const lookupLayerIDsFromFixtures = function (layerGroupId) { + const record = layerGroupsFixtures.data.find( + (datum) => datum.id === layerGroupId + ); + return record.relationships.layers.data.map((layer) => layer.id); }; -const hoverLayerGroup = async function(map, layerGroupId, ...args) { +const hoverLayerGroup = async function (map, layerGroupId, ...args) { const ids = lookupLayerIDsFromFixtures(layerGroupId); - return ids.map(async id => hoverMap(map, { layer: { id } }, ...args)); + return ids.map(async (id) => hoverMap(map, { layer: { id } }, ...args)); }; -const assertLayerGroupAdded = async function(testScope, assert, layerGroupId) { +const assertLayerGroupAdded = async function (testScope, assert, layerGroupId) { // it adds the layers when toggled or if default const ids = lookupLayerIDsFromFixtures(layerGroupId); await toggleLayerGroupOn(`[data-test-toggle-${layerGroupId}]`); - ids.forEach(id => assert.ok(testScope.addLayerSpy.calledWithMatch({ id }), `it adds layer: ${id}`)); + ids.forEach((id) => + assert.ok( + testScope.addLayerSpy.calledWithMatch({ id }), + `it adds layer: ${id}` + ) + ); }; -const assertClickRouteBehavior = async function(testScope, assert, options) { +const assertClickRouteBehavior = async function (testScope, assert, options) { if (find('[data-test-button="close-route"]')) { await click('[data-test-button="close-route"]'); } @@ -97,41 +108,47 @@ const assertClickRouteBehavior = async function(testScope, assert, options) { assert.ok(currentURL().includes(expectedURL), 'it routes'); // it highlights selected - assert[highlightsAssertMethod](testScope.addSourceSpy.calledWith('selected-lot'), `highlights should be ${highlightsAssertMethod}`); + assert[highlightsAssertMethod]( + testScope.addSourceSpy.calledWith('selected-lot'), + `highlights should be ${highlightsAssertMethod}` + ); // it fits bounds on click // the bounding box is assumes to be the computed bounding box of the dummy // data, which is defined in the beforeEach - assert[fitBoundsAssertMethod](testScope.fitBoundsSpy.calledWith([0, 0, 1, 1]), `fitting bounds should be ${fitBoundsAssertMethod}`); -}; - -const assertCanBookmark = async function(testScope, assert, clickObject) { - if (find('[data-test-button="close-route"]')) { - await click('[data-test-button="close-route"]'); - } - - await clickMap(testScope.map, clickObject); - await click('[data-test-bookmark="save"]'); - - assert.ok(find('[data-test-bookmark-button-saved="true"]'), 'it saves bmark'); + assert[fitBoundsAssertMethod]( + testScope.fitBoundsSpy.calledWith([0, 0, 1, 1]), + `fitting bounds should be ${fitBoundsAssertMethod}` + ); }; -const assertFitBoundsOnClick = async function(testScope, assert, clickObject) { +const assertFitBoundsOnClick = async function (testScope, assert, clickObject) { if (find('[data-test-button="close-route"]')) { await click('[data-test-button="close-route"]'); } await clickMap(testScope.map, clickObject); await click('[data-test-button="fit-bounds"]'); - assert.ok(testScope.fitBoundsSpy.calledWith([0, 0, 1, 1]), 'it fits bounds on click layer'); + assert.ok( + testScope.fitBoundsSpy.calledWith([0, 0, 1, 1]), + 'it fits bounds on click layer' + ); }; -const assertTooltips = async function(testScope, assert, layerGroupId, assertion = true) { +const assertTooltips = async function ( + testScope, + assert, + layerGroupId, + assertion = true +) { const assertionMethod = assertion ? 'ok' : 'notOk'; await hoverLayerGroup(testScope.map, layerGroupId); const tooltipSelector = find('[data-test-tooltip="true"]'); - assert[assertionMethod](tooltipSelector, `tooltips should be ${assertionMethod}`); + assert[assertionMethod]( + tooltipSelector, + `tooltips should be ${assertionMethod}` + ); }; const assertSearchShouldFitBounds = async function(testScope, assert, routeIdentifierObject) { // eslint-disable-line @@ -139,7 +156,7 @@ const assertSearchShouldFitBounds = async function(testScope, assert, routeIdent await click('[data-test-button="close-route"]'); } - testScope.server.get(`${labsSearchHost}/**`, function() { + testScope.server.get(`${labsSearchHost}/**`, function () { return [routeIdentifierObject]; }); @@ -149,40 +166,45 @@ const assertSearchShouldFitBounds = async function(testScope, assert, routeIdent // it fits bounds on click // the bounding box is assumes to be the computed bounding box of the dummy // data, which is defined in the beforeEach - assert.ok(testScope.fitBoundsSpy.calledWith([0, 0, 1, 1]), 'it should fit bounds on search'); + assert.ok( + testScope.fitBoundsSpy.calledWith([0, 0, 1, 1]), + 'it should fit bounds on search' + ); }; -module('Acceptance | layer behavior tests', function(hooks) { +module('Acceptance | layer behavior tests', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); stubBasicMap(hooks); // setup sinon sandbox - hooks.before(function() { + hooks.before(function () { this.sandbox = Sinon.createSandbox(); }); // inject the layer group fixtures - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); // stub the search api - hooks.beforeEach(function() { - this.server.get(`${labsSearchHost}/**`, function() { - return [{ bbl: 1000477501, label: '120 Broadway, Manhattan', type: 'lot' }]; + hooks.beforeEach(function () { + this.server.get(`${labsSearchHost}/**`, function () { + return [ + { bbl: 1000477501, label: '120 Broadway, Manhattan', type: 'lot' }, + ]; }); }); // provide some spies on common mapbox calls - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.addLayerSpy = this.sandbox.spy(this.map, 'addLayer'); this.addSourceSpy = this.sandbox.spy(this.map, 'addSource'); this.fitBoundsSpy = this.sandbox.spy(this.map, 'fitBounds'); }); // refresh the local storages across tests - hooks.beforeEach(function() { + hooks.beforeEach(function () { if (window.localStorage) { window.localStorage.clear(); } @@ -192,16 +214,16 @@ module('Acceptance | layer behavior tests', function(hooks) { resetStorages(); }); - hooks.beforeEach(async function() { + hooks.beforeEach(async function () { await visit('/'); }); // reset sinon - hooks.afterEach(function() { + hooks.afterEach(function () { this.sandbox.restore(); }); - test('Tax Lots', async function(assert) { + test('Tax Lots', async function (assert) { this.server.create('lot', { id: 3034430054, properties: { @@ -219,22 +241,11 @@ module('Acceptance | layer behavior tests', function(hooks) { expectedURL: 'lot/1/187/21', }); - // it bookmarks - await assertCanBookmark(this, assert, { bbl: 1001870021, cartodb_id: 1001870021 }); - // it tooltips await assertTooltips(this, assert, 'tax-lots'); - - - // TODO: Make this assertion work.it searches - await assertSearchShouldFitBounds(this, assert, { - bbl: 1001870021, - type: 'lot', - label: '120 Broadway, Manhattan', - }); }); - test('Zoning Districts', async function(assert) { + test('Zoning Districts', async function (assert) { this.server.create('carto-geojson-feature', { id: '1', properties: { @@ -253,21 +264,15 @@ module('Acceptance | layer behavior tests', function(hooks) { expectedURL: 'zoning-district/1', }); - // TODO: Make this assertion work. - await assertCanBookmark(this, assert, { zonedist: '1', cartodb_id: '1' }); - - await assertFitBoundsOnClick(this, assert, { zonedist: '1', cartodb_id: '1' }); + await assertFitBoundsOnClick(this, assert, { + zonedist: '1', + cartodb_id: '1', + }); await assertTooltips(this, assert, 'zoning-districts', true); - - // TODO: Make this assertion work. - await assertSearchShouldFitBounds(this, assert, { - type: 'zoning-district', - label: '1', - }); }); - test('Commercial Overlays', async function(assert) { + test('Commercial Overlays', async function (assert) { this.server.create('carto-geojson-feature', { id: '1', properties: { @@ -285,21 +290,15 @@ module('Acceptance | layer behavior tests', function(hooks) { expectedURL: 'commercial-overlay/1', }); - // TODO: Make this assertion work. - await assertCanBookmark(this, assert, { overlay: '1', cartodb_id: '1' }); - - await assertFitBoundsOnClick(this, assert, { overlay: '1', cartodb_id: '1' }); + await assertFitBoundsOnClick(this, assert, { + overlay: '1', + cartodb_id: '1', + }); await assertTooltips(this, assert, 'commercial-overlays', true); - - // TODO: Make this assertion work. - await assertSearchShouldFitBounds(this, assert, { - type: 'commercial-overlay', - label: '1', - }); }); - test('Zoning Map Amendments', async function(assert) { + test('Zoning Map Amendments', async function (assert) { this.server.create('carto-geojson-feature', { id: '1', properties: { @@ -317,19 +316,10 @@ module('Acceptance | layer behavior tests', function(hooks) { expectedURL: 'zma/1', }); - await assertCanBookmark(this, assert, { ulurpno: '1', cartodb_id: '1' }); - await assertTooltips(this, assert, 'zoning-map-amendments', true); - - // TODO: Make this assertion work. - await assertSearchShouldFitBounds(this, assert, { - ulurpno: '1', - type: 'zma', - label: '1', - }); }); - test('Pending Zoning Map Amendments', async function(assert) { + test('Pending Zoning Map Amendments', async function (assert) { this.server.create('carto-geojson-feature', { id: '1', properties: { @@ -347,19 +337,10 @@ module('Acceptance | layer behavior tests', function(hooks) { expectedURL: 'zma/1', }); - await assertCanBookmark(this, assert, { ulurpno: '1', cartodb_id: '1' }); - await assertTooltips(this, assert, 'zoning-map-amendments-pending', true); - - // TODO: Make this assertion work. - await assertSearchShouldFitBounds(this, assert, { - ulurpno: '1', - type: 'zma', - label: '1', - }); }); - test('Special Purpose Districts', async function(assert) { + test('Special Purpose Districts', async function (assert) { this.server.create('carto-geojson-feature', { id: '1', properties: { @@ -377,20 +358,10 @@ module('Acceptance | layer behavior tests', function(hooks) { expectedURL: 'special-purpose-district/1', }); - await assertCanBookmark(this, assert, { sdlbl: '1', cartodb_id: '1' }); - await assertTooltips(this, assert, 'special-purpose-districts', false); - - // TODO: Make this assertion work. - await assertSearchShouldFitBounds(this, assert, { - type: 'special-purpose-district', - sdname: '1', - cartodb_id: '1', - label: '1', - }); }); - test('Special Purpose Subdistricts', async function(assert) { + test('Special Purpose Subdistricts', async function (assert) { this.server.create('carto-geojson-feature', { id: '1', properties: { @@ -408,168 +379,170 @@ module('Acceptance | layer behavior tests', function(hooks) { expectedURL: 'special-purpose-subdistrict/1', }); - await assertCanBookmark(this, assert, { splbl: '1', cartodb_id: '1' }); - await assertTooltips(this, assert, 'special-purpose-subdistricts', true); }); - test('Second class: Limited Height Districts', async function(assert) { + test('Second class: Limited Height Districts', async function (assert) { await assertLayerGroupAdded(this, assert, 'limited-height-districts'); await assertTooltips(this, assert, 'limited-height-districts', true); }); - test('Second class: Mandatory Inclusionary Housing Areas', async function(assert) { + test('Second class: Mandatory Inclusionary Housing Areas', async function (assert) { await assertLayerGroupAdded(this, assert, 'mandatory-inclusionary-housing'); await assertTooltips(this, assert, 'mandatory-inclusionary-housing', true); }); - test('Second class: Inclusionary Housing Designated Areas', async function(assert) { + test('Second class: Inclusionary Housing Designated Areas', async function (assert) { await assertLayerGroupAdded(this, assert, 'inclusionary-housing'); await assertTooltips(this, assert, 'inclusionary-housing', true); }); - test('Second class: Transit Zones', async function(assert) { + test('Second class: Transit Zones', async function (assert) { await assertLayerGroupAdded(this, assert, 'transit-zones'); await assertTooltips(this, assert, 'transit-zones', true); }); - test('Second class: FRESH Zones', async function(assert) { + test('Second class: FRESH Zones', async function (assert) { await assertLayerGroupAdded(this, assert, 'fresh'); await assertTooltips(this, assert, 'fresh', true); }); - test('Second class: Sidewalk Cafes', async function(assert) { + test('Second class: Sidewalk Cafes', async function (assert) { await assertLayerGroupAdded(this, assert, 'sidewalk-cafes'); await assertTooltips(this, assert, 'sidewalk-cafes', false); }); - test('Second class: Lower Density Growth Management Areas', async function(assert) { + test('Second class: Lower Density Growth Management Areas', async function (assert) { await assertLayerGroupAdded(this, assert, 'low-density-growth-mgmt-areas'); await assertTooltips(this, assert, 'low-density-growth-mgmt-areas', true); }); - test('Second class: Coastal Zone Boundary', async function(assert) { + test('Second class: Coastal Zone Boundary', async function (assert) { await assertLayerGroupAdded(this, assert, 'coastal-zone-boundary'); await assertTooltips(this, assert, 'coastal-zone-boundary', true); }); - test('Second class: Waterfront Access Plan', async function(assert) { + test('Second class: Waterfront Access Plan', async function (assert) { await assertLayerGroupAdded(this, assert, 'waterfront-access-plan'); await assertTooltips(this, assert, 'waterfront-access-plan', true); }); - test('Second class: Historic Districts', async function(assert) { + test('Second class: Historic Districts', async function (assert) { await assertLayerGroupAdded(this, assert, 'historic-districts'); await assertTooltips(this, assert, 'historic-districts', true); }); - test('Second class: Landmarks', async function(assert) { + test('Second class: Landmarks', async function (assert) { await assertLayerGroupAdded(this, assert, 'landmarks'); await assertTooltips(this, assert, 'landmarks', true); }); - test('Second class: Effective Flood Insurance Rate Maps 2007', async function(assert) { + test('Second class: Effective Flood Insurance Rate Maps 2007', async function (assert) { await assertLayerGroupAdded(this, assert, 'floodplain-efirm2007'); await assertTooltips(this, assert, 'floodplain-efirm2007', true); }); - test('Second class: Preliminary Flood Insurance Rate Maps 2015', async function(assert) { + test('Second class: Preliminary Flood Insurance Rate Maps 2015', async function (assert) { await assertLayerGroupAdded(this, assert, 'floodplain-pfirm2015'); await assertTooltips(this, assert, 'floodplain-pfirm2015', true); }); - test('Second class: Environmental Designations', async function(assert) { + test('Second class: Environmental Designations', async function (assert) { await assertLayerGroupAdded(this, assert, 'e-designations'); await assertTooltips(this, assert, 'e-designations', true); }); - test('Second class: Appendix J Designated M Districts', async function(assert) { - await assertLayerGroupAdded(this, assert, 'appendixj-designated-mdistricts'); + test('Second class: Appendix J Designated M Districts', async function (assert) { + await assertLayerGroupAdded( + this, + assert, + 'appendixj-designated-mdistricts' + ); await assertTooltips(this, assert, 'appendixj-designated-mdistricts', true); }); - test('Second class: Business Improvement Districts', async function(assert) { + test('Second class: Business Improvement Districts', async function (assert) { await assertLayerGroupAdded(this, assert, 'business-improvement-districts'); await assertTooltips(this, assert, 'business-improvement-districts', true); }); - test('Second class: Industrial Business Zones', async function(assert) { + test('Second class: Industrial Business Zones', async function (assert) { await assertLayerGroupAdded(this, assert, 'industrial-business-zones'); await assertTooltips(this, assert, 'industrial-business-zones', true); }); - test('Second class: Boroughs', async function(assert) { + test('Second class: Boroughs', async function (assert) { await assertLayerGroupAdded(this, assert, 'boroughs'); await assertTooltips(this, assert, 'boroughs', false); }); - test('Second class: Community Districts', async function(assert) { + test('Second class: Community Districts', async function (assert) { await assertLayerGroupAdded(this, assert, 'community-districts'); await assertTooltips(this, assert, 'community-districts', false); }); - test('Second class: NYC Council Districts', async function(assert) { + test('Second class: NYC Council Districts', async function (assert) { await assertLayerGroupAdded(this, assert, 'nyc-council-districts-combined'); await assertTooltips(this, assert, 'nyc-council-districts-combined', false); }); - test('Second class: NY State Senate Districts', async function(assert) { + test('Second class: NY State Senate Districts', async function (assert) { await assertLayerGroupAdded(this, assert, 'ny-senate-districts'); await assertTooltips(this, assert, 'ny-senate-districts', false); }); - test('Second class: NY State Assembly Districts', async function(assert) { + test('Second class: NY State Assembly Districts', async function (assert) { await assertLayerGroupAdded(this, assert, 'assembly-districts'); await assertTooltips(this, assert, 'assembly-districts', false); }); - test('Second class: Neighborhood Tabulation Areas', async function(assert) { + test('Second class: Neighborhood Tabulation Areas', async function (assert) { await assertLayerGroupAdded(this, assert, 'neighborhood-tabulation-areas'); await assertTooltips(this, assert, 'neighborhood-tabulation-areas', false); }); - test('Second class: Subways', async function(assert) { + test('Second class: Subways', async function (assert) { await assertLayerGroupAdded(this, assert, 'subway'); await assertTooltips(this, assert, 'subway', false); }); - test('Second class: Building Footprints', async function(assert) { + test('Second class: Building Footprints', async function (assert) { await assertLayerGroupAdded(this, assert, 'building-footprints'); await assertTooltips(this, assert, 'building-footprints', false); }); - test('Second class: 3D Buildings', async function(assert) { + test('Second class: 3D Buildings', async function (assert) { await assertLayerGroupAdded(this, assert, 'three-d-buildings'); await assertTooltips(this, assert, 'three-d-buildings', false); }); - test('Second class: Aerial Imagery', async function(assert) { + test('Second class: Aerial Imagery', async function (assert) { await assertLayerGroupAdded(this, assert, 'aerials'); await assertTooltips(this, assert, 'aerials', false); diff --git a/tests/acceptance/legacy-redirect-test.js b/tests/acceptance/legacy-redirect-test.js index 45f1f110f..ad25825ce 100644 --- a/tests/acceptance/legacy-redirect-test.js +++ b/tests/acceptance/legacy-redirect-test.js @@ -4,15 +4,15 @@ import { setupApplicationTest } from 'ember-qunit'; import { setupMirage } from 'ember-cli-mirage/test-support'; import layerGroupsFixtures from 'labs-zola/mirage/static-fixtures/layer-groups'; -module('Acceptance | legacy redirect', function(hooks) { +module('Acceptance | legacy redirect', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - test('visiting a non-namespaced URL redirects', async function(assert) { + test('visiting a non-namespaced URL redirects', async function (assert) { this.server.create('lot', { id: 1000163201, properties: { diff --git a/tests/acceptance/navigating-to-qpd-url-breaks-test.js b/tests/acceptance/navigating-to-qpd-url-breaks-test.js index 0eb098043..4adfa5db9 100644 --- a/tests/acceptance/navigating-to-qpd-url-breaks-test.js +++ b/tests/acceptance/navigating-to-qpd-url-breaks-test.js @@ -4,26 +4,30 @@ import { setupApplicationTest } from 'ember-qunit'; import { setupMirage } from 'ember-cli-mirage/test-support'; import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; -module('Acceptance | navigating to qpd url breaks', function(hooks) { +module('Acceptance | navigating to qpd url breaks', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - test('Visiting index with QPs directly doesnt break', async function(assert) { + test('Visiting index with QPs directly doesnt break', async function (assert) { // this does not work - zoning districts are on - await visit('/?layer-groups=["building-footprints"%2C"commercial-overlays"%2C"subway"%2C"tax-lots"]'); + await visit( + '/?layer-groups=["building-footprints"%2C"commercial-overlays"%2C"subway"%2C"tax-lots"]' + ); assert.ok(true); }); - test('Visiting index with QPs of different types does not break', async function(assert) { + test('Visiting index with QPs of different types does not break', async function (assert) { await visit('/'); await click('[data-test-toggle-boroughs] .layer-group-toggle-label'); // this is toggled OFF by default - await click('[data-test-toggle-community-districts] .layer-group-toggle-label'); // this is toggled OFF by default + await click( + '[data-test-toggle-community-districts] .layer-group-toggle-label' + ); // this is toggled OFF by default await click('[data-test-grouped-parent="Commercial Districts"]'); // this checkbox is checked by default await click('[data-test-grouped-parent="Manufacturing Districts"]'); // this checkbox is checked by default diff --git a/tests/acceptance/query-params-persist-test.js b/tests/acceptance/query-params-persist-test.js index d6a71006e..018b753d8 100644 --- a/tests/acceptance/query-params-persist-test.js +++ b/tests/acceptance/query-params-persist-test.js @@ -20,13 +20,12 @@ const defaultNonVisible = defaultLayerGroupState .filter(({ visible }) => !visible) .map(({ id }) => id); - -module('Acceptance | query params persist', function(hooks) { +module('Acceptance | query params persist', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); mockLayersAPI(hooks); - test('Navigating without layer group QPs shows default layers on, redirects', async function(assert) { + test('Navigating without layer group QPs shows default layers on, redirects', async function (assert) { await visit('/'); // loop over and check each one, seeing if it's toggled in DOM @@ -41,11 +40,11 @@ module('Acceptance | query params persist', function(hooks) { }); }); - test('QPs containing non-default of same length are toggled on', async function(assert) { + test('QPs containing non-default of same length are toggled on', async function (assert) { // get the non-default params, but only the same number as default const testParams = defaultNonVisible.slice(0, defaultVisible.length - 1); - await visit(`/about?layer-groups=[${testParams.map(l => `"${l}"`)}]`); + await visit(`/about?layer-groups=[${testParams.map((l) => `"${l}"`)}]`); // loop over and check each one, seeing if it's toggled in DOM testParams.forEach((id) => { @@ -66,11 +65,11 @@ module('Acceptance | query params persist', function(hooks) { }); }); - test('layer group QP length is greater than # of default layer groups', async function(assert) { + test('layer group QP length is greater than # of default layer groups', async function (assert) { // get the non-default params, but only the same number as default const testParams = defaultNonVisible.slice(0, defaultVisible.length + 1); - await visit(`/about?layer-groups=[${testParams.map(l => `"${l}"`)}]`); + await visit(`/about?layer-groups=[${testParams.map((l) => `"${l}"`)}]`); // loop over and check each one, seeing if it's toggled in DOM testParams.forEach((id) => { @@ -91,11 +90,11 @@ module('Acceptance | query params persist', function(hooks) { }); }); - test('layer group QP length is less than # of default layer groups', async function(assert) { + test('layer group QP length is less than # of default layer groups', async function (assert) { // get the non-default params, but only the same number as default const testParams = defaultNonVisible.slice(0, defaultVisible.length - 2); - await visit(`/about?layer-groups=[${testParams.map(l => `"${l}"`)}]`); + await visit(`/about?layer-groups=[${testParams.map((l) => `"${l}"`)}]`); // loop over and check each one, seeing if it's toggled in DOM testParams.forEach((id) => { diff --git a/tests/acceptance/retry-carto-query-test.js b/tests/acceptance/retry-carto-query-test.js index 68c71514a..da001306b 100644 --- a/tests/acceptance/retry-carto-query-test.js +++ b/tests/acceptance/retry-carto-query-test.js @@ -13,31 +13,41 @@ const DEFAULT_REQUIRED_FEATURE_PROPS = { }, geometry: { type: 'Polygon', - coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]], + coordinates: [ + [ + [0, 0], + [0, 1], + [1, 1], + [1, 0], + [0, 0], + ], + ], }, properties: {}, }; -const clickMap = async function(map, properties = {}) { - map.features = [{ - ...DEFAULT_REQUIRED_FEATURE_PROPS, - properties, - }]; +const clickMap = async function (map, properties = {}) { + map.features = [ + { + ...DEFAULT_REQUIRED_FEATURE_PROPS, + properties, + }, + ]; await map.events.mousemove(); await map.events.click(); }; -module('Acceptance | lot route retries after error', function(hooks) { +module('Acceptance | lot route retries after error', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); stubBasicMap(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - test('it returns a valid lot after retry', async function(assert) { + test('it returns a valid lot after retry', async function (assert) { let requests = 0; this.server.create('lot', { @@ -47,23 +57,26 @@ module('Acceptance | lot route retries after error', function(hooks) { }, }); - this.server.get('https://planninglabs.carto.com/api/v2/sql', (schema, request) => { - // special handling for json format - if (request.queryParams.format === 'json') { - return { rows: [] }; - } + this.server.get( + 'https://planninglabs.carto.com/api/v2/sql', + (schema, request) => { + // special handling for json format + if (request.queryParams.format === 'json') { + return { rows: [] }; + } - // only geojson requests are counted - requests += 1; + // only geojson requests are counted + requests += 1; - // throw error the first request - if (requests === 1) { - return new Response(400, {}, { error: ['query_timeout_exceeded'] }); - } + // throw error the first request + if (requests === 1) { + return new Response(400, {}, { error: ['query_timeout_exceeded'] }); + } - // return 200 data the second - return schema.lots.all(); - }); + // return 200 data the second + return schema.lots.all(); + } + ); await visit('/lot/1/1632/1'); @@ -74,27 +87,31 @@ module('Acceptance | lot route retries after error', function(hooks) { // the assertion works (in the finally clause), but for some // reason the error returned from the store is not being caught // by the task - ('it still handles an error state', async function(assert) { // eslint-disable-line no-unused-expressions - this.server.create('lot', { - id: 1016320001, - properties: { - borocode: '1', - }, - }); - - this.server.get('https://planninglabs.carto.com/api/v2/sql', - () => new Response(400, {}, { error: ['query_timeout_exceeded'] })); - - try { - await visit('/lot/1/1632/1'); - } catch (e) { - assert.throws(e, 'something'); - } finally { - assert.ok(find('[data-test-error-handler]')); - } - }); - - test('it still clicks through to subsequent lots', async function(assert) { + // 'it still handles an error state', + // async function (assert) { + // // eslint-disable-line no-unused-expressions + // this.server.create('lot', { + // id: 1016320001, + // properties: { + // borocode: '1', + // }, + // }); + + // this.server.get( + // 'https://planninglabs.carto.com/api/v2/sql', + // () => new Response(400, {}, { error: ['query_timeout_exceeded'] }) + // ); + + // try { + // await visit('/lot/1/1632/1'); + // } catch (e) { + // assert.throws(e, 'something'); + // } finally { + // assert.ok(find('[data-test-error-handler]')); + // } + // }; + + test('it still clicks through to subsequent lots', async function (assert) { this.server.create('lot', { id: 1016320001, properties: { @@ -115,10 +132,13 @@ module('Acceptance | lot route retries after error', function(hooks) { await clickMap(this.map, { bbl: 1001870021, cartodb_id: 1001870021 }); - assert.equal(find('[data-test-tax-lot-bbl]').textContent.trim(), 1001870021); + assert.equal( + find('[data-test-tax-lot-bbl]').textContent.trim(), + 1001870021 + ); }); - test('it lands on the last-clicked lot', async function(assert) { + test('it lands on the last-clicked lot', async function (assert) { this.server.timing = 500; this.server.create('lot', { id: 1016320001, @@ -144,11 +164,14 @@ module('Acceptance | lot route retries after error', function(hooks) { await clickMap(this.map, { bbl: 1001870023, cartodb_id: 1001870023 }); - assert.equal(find('[data-test-tax-lot-bbl]').textContent.trim(), 1001870023); + assert.equal( + find('[data-test-tax-lot-bbl]').textContent.trim(), + 1001870023 + ); this.server.timing = 0; }); - test('subsequent lot clicks fire only network request for a resource', async function(assert) { + test('subsequent lot clicks fire only network request for a resource', async function (assert) { let requests = 0; this.server.create('lot', { id: 1016320001, @@ -156,16 +179,19 @@ module('Acceptance | lot route retries after error', function(hooks) { borocode: '1', }, }); - this.server.get('https://planninglabs.carto.com/api/v2/sql', (schema, request) => { - // special handling for json format - if (request.queryParams.format === 'json') { - return { rows: [] }; - } + this.server.get( + 'https://planninglabs.carto.com/api/v2/sql', + (schema, request) => { + // special handling for json format + if (request.queryParams.format === 'json') { + return { rows: [] }; + } - requests += 1; + requests += 1; - return schema.lots.all(); - }); + return schema.lots.all(); + } + ); await visit('/lot/1/1632/1'); diff --git a/tests/acceptance/root-query-params-honored-after-redirect-test.js b/tests/acceptance/root-query-params-honored-after-redirect-test.js index 3778f8ca4..cf20c8e22 100644 --- a/tests/acceptance/root-query-params-honored-after-redirect-test.js +++ b/tests/acceptance/root-query-params-honored-after-redirect-test.js @@ -5,27 +5,35 @@ import { setupMirage } from 'ember-cli-mirage/test-support'; import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; import stubBasicMap from '../helpers/stub-basic-map'; -module('Acceptance | root query params honored after redirect', function(hooks) { - setupApplicationTest(hooks); - setupMirage(hooks); - stubBasicMap(hooks); +module( + 'Acceptance | root query params honored after redirect', + function (hooks) { + setupApplicationTest(hooks); + setupMirage(hooks); + stubBasicMap(hooks); - hooks.beforeEach(function() { - this.server.post('layer-groups', () => layerGroupsFixtures); - }); + hooks.beforeEach(function () { + this.server.post('layer-groups', () => layerGroupsFixtures); + }); - test('visiting site with query params on root are honored after the redirect to about', async function(assert) { - await visit('/?layer-groups=%5B%22street-centerlines%22%2C%22tax-lots%22%5D'); + test('visiting site with query params on root are honored after the redirect to about', async function (assert) { + await visit( + '/?layer-groups=%5B%22street-centerlines%22%2C%22tax-lots%22%5D' + ); - assert.equal(currentURL(), '/about?layer-groups=%5B%22street-centerlines%22%2C%22tax-lots%22%5D'); - }); + assert.equal( + currentURL(), + '/about?layer-groups=%5B%22street-centerlines%22%2C%22tax-lots%22%5D' + ); + }); - // I cannot test that the hash works in test suite - // There's some virtualization going on that's missing location hashes. - // This should be asserted someday. - // test('visiting site with map hash honored after redirect', async function(assert) { - // await visit('/#15.67/40.753686/-73.984754'); + // I cannot test that the hash works in test suite + // There's some virtualization going on that's missing location hashes. + // This should be asserted someday. + // test('visiting site with map hash honored after redirect', async function(assert) { + // await visit('/#15.67/40.753686/-73.984754'); - // assert.equal(currentURL(), '/about#15.67/40.753686/-73.984754'); - // }); -}); + // assert.equal(currentURL(), '/about#15.67/40.753686/-73.984754'); + // }); + } +); diff --git a/tests/acceptance/selected-zoning-qps-work-test.js b/tests/acceptance/selected-zoning-qps-work-test.js index 966ad9145..d223c63ec 100644 --- a/tests/acceptance/selected-zoning-qps-work-test.js +++ b/tests/acceptance/selected-zoning-qps-work-test.js @@ -1,39 +1,66 @@ +import { A } from '@ember/array'; import { module, test } from 'qunit'; -import { - visit, - click, - find, - currentURL, -} from '@ember/test-helpers'; +import { visit, click, find, currentURL } from '@ember/test-helpers'; import { setupApplicationTest } from 'ember-qunit'; import { setupMirage } from 'ember-cli-mirage/test-support'; import extractQueryParams from '../helpers/extract-query-params'; import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; -module('Acceptance | selected zoning qps work', function(hooks) { +module('Acceptance | selected zoning qps work', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - test('Selected zoning QPs are applied', async function(assert) { - const zoning = ['BP', 'C1', 'C2', 'C3', - 'C4', 'C6', 'C8', 'M1', - 'M2', 'M3', 'PA', 'R1', - 'R10', 'R2', 'R3', 'R4', - 'R5', 'R6', 'R7', 'R8', - 'R9']; - - const overlays = ['C1-2', 'C1-4', 'C2-1', 'C2-2', 'C2-3', 'C2-4', 'C2-5', 'C1-5', 'C1-3']; - - await visit(`/about?selectedZoning=[${zoning.map(z => `"${z}"`)}]&selectedOverlays=[${overlays.map(o => `"${o}"`)}]`); + test('Selected zoning QPs are applied', async function (assert) { + const zoning = [ + 'BP', + 'C1', + 'C2', + 'C3', + 'C4', + 'C6', + 'C8', + 'M1', + 'M2', + 'M3', + 'PA', + 'R1', + 'R10', + 'R2', + 'R3', + 'R4', + 'R5', + 'R6', + 'R7', + 'R8', + 'R9', + ]; + + const overlays = [ + 'C1-2', + 'C1-4', + 'C2-1', + 'C2-2', + 'C2-3', + 'C2-4', + 'C2-5', + 'C1-5', + 'C1-3', + ]; + + await visit( + `/about?selectedZoning=[${zoning.map( + (z) => `"${z}"` + )}]&selectedOverlays=[${overlays.map((o) => `"${o}"`)}]` + ); const selectors = { - c7: await find('[data-test-grouped="C7"'), - c5: await find('[data-test-grouped="C5"'), - coC11: await find('[data-test-grouped="C1-1"'), + c7: await find('[data-test-grouped="C7"]'), + c5: await find('[data-test-grouped="C5"]'), + coC11: await find('[data-test-grouped="C1-1"]'), }; assert.equal(selectors.c7.checked, false); @@ -41,41 +68,110 @@ module('Acceptance | selected zoning qps work', function(hooks) { assert.equal(selectors.coC11.checked, false); }); - test('Can click and URL updates', async function(assert) { - const zoning = ['BP', 'C1', 'C2', 'C3', - 'C4', 'C6', 'C8', 'M1', - 'M2', 'M3', 'PA', 'R1', - 'R10', 'R2', 'R3', 'R4', - 'R5', 'R6', 'R7', 'R8', - 'R9']; - - const overlays = ['C1-1', 'C1-2', 'C1-4', 'C2-1', 'C2-2', 'C2-3', 'C2-4', 'C2-5', 'C1-5', 'C1-3']; - - await visit(`/about?selectedZoning=[${zoning.map(z => `"${z}"`)}]&selectedOverlays=[${overlays.map(o => `"${o}"`)}]`); + test('Can click and URL updates', async function (assert) { + const zoning = [ + 'BP', + 'C1', + 'C2', + 'C3', + 'C4', + 'C6', + 'C8', + 'M1', + 'M2', + 'M3', + 'PA', + 'R1', + 'R10', + 'R2', + 'R3', + 'R4', + 'R5', + 'R6', + 'R7', + 'R8', + 'R9', + ]; + + const overlays = [ + 'C1-1', + 'C1-2', + 'C1-4', + 'C2-1', + 'C2-2', + 'C2-3', + 'C2-4', + 'C2-5', + 'C1-5', + 'C1-3', + ]; + + await visit( + `/about?selectedZoning=[${zoning.map( + (z) => `"${z}"` + )}]&selectedOverlays=[${overlays.map((o) => `"${o}"`)}]` + ); await click('[data-test-grouped="C8"]'); await click('[data-test-grouped="C1-1"]'); - const { selectedZoning, selectedOverlays } = extractQueryParams(currentURL()); + const { selectedZoning, selectedOverlays } = extractQueryParams( + currentURL() + ); - assert.ok(!selectedZoning.includes('C8') && !selectedOverlays.includes('C1-1')); + assert.ok( + !selectedZoning.includes('C8') && !selectedOverlays.includes('C1-1') + ); }); - test('URL params persist across route transitions', async function(assert) { - const zoning = ['BP', 'C1', 'C2', 'C3', - 'C4', 'C6', 'C8', 'M1', - 'M2', 'M3', 'PA', 'R1', - 'R10', 'R2', 'R3', 'R4', - 'R5', 'R6', 'R7', 'R8', - 'R9']; - - const overlays = ['C1-1', 'C1-2', 'C1-4', 'C2-1', 'C2-2', 'C2-3', 'C2-4', 'C2-5', 'C1-5', 'C1-3']; - - await visit(`/about?selectedZoning=[${zoning.map(z => `"${z}"`)}]&selectedOverlays=[${overlays.map(o => `"${o}"`)}]`); + test('URL params persist across route transitions', async function (assert) { + const zoning = A([ + 'BP', + 'C1', + 'C2', + 'C3', + 'C4', + 'C6', + 'C8', + 'M1', + 'M2', + 'M3', + 'PA', + 'R1', + 'R10', + 'R2', + 'R3', + 'R4', + 'R5', + 'R6', + 'R7', + 'R8', + 'R9', + ]); + + const overlays = A([ + 'C1-1', + 'C1-2', + 'C1-4', + 'C2-1', + 'C2-2', + 'C2-3', + 'C2-4', + 'C2-5', + 'C1-5', + 'C1-3', + ]); + + await visit( + `/about?selectedZoning=[${zoning.map( + (z) => `"${z}"` + )}]&selectedOverlays=[${overlays.map((o) => `"${o}"`)}]` + ); await click('.features-header-link'); - const { selectedZoning, selectedOverlays } = extractQueryParams(currentURL()); - - assert.ok(selectedZoning.every(z => zoning.any(s => z === s))); - assert.ok(selectedOverlays.every(o => overlays.any(t => t === o))); + const { selectedZoning, selectedOverlays } = extractQueryParams( + currentURL() + ); + assert.ok(selectedZoning.every((z) => zoning.any((s) => z === s))); + assert.ok(selectedOverlays.every((o) => overlays.any((t) => t === o))); }); }); diff --git a/tests/acceptance/user-can-configure-print-view-test.js b/tests/acceptance/user-can-configure-print-view-test.js index 54744a4a1..af72829da 100644 --- a/tests/acceptance/user-can-configure-print-view-test.js +++ b/tests/acceptance/user-can-configure-print-view-test.js @@ -4,15 +4,15 @@ import { setupApplicationTest } from 'ember-qunit'; import { setupMirage } from 'ember-cli-mirage/test-support'; import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; -module('Acceptance | user can configure print view', function(hooks) { +module('Acceptance | user can configure print view', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - test('User can click print and configure', async function(assert) { + test('User can click print and configure', async function (assert) { await visit('/'); await click('[data-test-map-print-button]'); await click('[data-test-print-control="landscape"]'); diff --git a/tests/acceptance/user-can-navigate-away-from-print-via-header-test.js b/tests/acceptance/user-can-navigate-away-from-print-via-header-test.js index 99f7b9f1c..da1957568 100644 --- a/tests/acceptance/user-can-navigate-away-from-print-via-header-test.js +++ b/tests/acceptance/user-can-navigate-away-from-print-via-header-test.js @@ -4,24 +4,27 @@ import { setupApplicationTest } from 'ember-qunit'; import { setupMirage } from 'ember-cli-mirage/test-support'; import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; -module('Acceptance | user can navigate away from print via header', function(hooks) { - setupApplicationTest(hooks); - setupMirage(hooks); +module( + 'Acceptance | user can navigate away from print via header', + function (hooks) { + setupApplicationTest(hooks); + setupMirage(hooks); - hooks.beforeEach(function() { - this.server.post('layer-groups', () => layerGroupsFixtures); - }); + hooks.beforeEach(function () { + this.server.post('layer-groups', () => layerGroupsFixtures); + }); - test('user can navigate away from print via header', async function(assert) { - // if you visit the site - await visit('/'); + test('user can navigate away from print via header', async function (assert) { + // if you visit the site + await visit('/'); - // when you click print, then click back - await click('[data-test-map-print-button=""]'); + // when you click print, then click back + await click('[data-test-map-print-button=""]'); - await click('[data-test-link-to="index"]'); + await click('[data-test-link-to="index"]'); - // then the site still works! - assert.ok(true); - }); -}); + // then the site still works! + assert.ok(true); + }); + } +); diff --git a/tests/acceptance/user-can-reset-layers-test.js b/tests/acceptance/user-can-reset-layers-test.js index 592e0cb8c..5ff996454 100644 --- a/tests/acceptance/user-can-reset-layers-test.js +++ b/tests/acceptance/user-can-reset-layers-test.js @@ -4,15 +4,19 @@ import { setupApplicationTest } from 'ember-qunit'; import { setupMirage } from 'ember-cli-mirage/test-support'; import generateMockCartoGeoJSONResponse from '../helpers/mock-layers-api'; -module('Acceptance | user can reset layers', function(hooks) { +module('Acceptance | user can reset layers', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); generateMockCartoGeoJSONResponse(hooks); - test('User can reset layers to default state', async function(assert) { + test('User can reset layers to default state', async function (assert) { await visit('/'); - await click('[data-test-toggle-zoning-districts] .layer-group-toggle-label'); - await click('[data-test-toggle-zoning-map-amendments] .layer-group-toggle-label'); + await click( + '[data-test-toggle-zoning-districts] .layer-group-toggle-label' + ); + await click( + '[data-test-toggle-zoning-map-amendments] .layer-group-toggle-label' + ); await click('[data-test-reset-query-params="true"]'); assert.equal(currentURL(), '/about'); }); diff --git a/tests/acceptance/visit-lot-test.js b/tests/acceptance/visit-lot-test.js index f6c4f2358..c51ade079 100644 --- a/tests/acceptance/visit-lot-test.js +++ b/tests/acceptance/visit-lot-test.js @@ -5,15 +5,15 @@ import { setupMirage } from 'ember-cli-mirage/test-support'; import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; // this is a true acceptance, just make sure it works -module('Acceptance | visit lot', function(hooks) { +module('Acceptance | visit lot', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - test('visiting a lot', async function(assert) { + test('visiting a lot', async function (assert) { this.server.create('lot', { id: 1016320001, properties: { @@ -26,7 +26,7 @@ module('Acceptance | visit lot', function(hooks) { assert.notEqual(find('.content-area').textContent.length, 0); }); - test('visiting a bbl', async function(assert) { + test('visiting a bbl', async function (assert) { this.server.create('lot', { id: 1001870021, properties: { @@ -40,7 +40,7 @@ module('Acceptance | visit lot', function(hooks) { assert.notEqual(find('.content-area').textContent.length, 0); }); - test('visiting a lot with special purpose districts', async function(assert) { + test('visiting a lot with special purpose districts', async function (assert) { this.server.create('lot', { id: 1001870021, properties: { @@ -50,39 +50,44 @@ module('Acceptance | visit lot', function(hooks) { }, }); - this.server.get('https://planninglabs.carto.com/api/v2/sql', (schema, request) => { - const { queryParams } = request; - const { format, q } = queryParams; + this.server.get( + 'https://planninglabs.carto.com/api/v2/sql', + (schema, request) => { + const { queryParams } = request; + const { format, q } = queryParams; - // by default, this will return a feature that looks like a PLUTO Lot - if (format === 'geojson') { - // by default, return anything created in this schema - let schemaModel = schema.cartoGeojsonFeatures.all(); + // by default, this will return a feature that looks like a PLUTO Lot + if (format === 'geojson') { + // by default, return anything created in this schema + let schemaModel = schema.cartoGeojsonFeatures.all(); - // if it includes mappluto, it's asking for lots - if (q.includes('dcp_mappluto')) { - schemaModel = schema.lots.all(); - } + // if it includes mappluto, it's asking for lots + if (q.includes('dcp_mappluto')) { + schemaModel = schema.lots.all(); + } - const { models: features } = schemaModel; + const { models: features } = schemaModel; - return { - type: 'FeatureCollection', - features, - }; - } + return { + type: 'FeatureCollection', + features, + }; + } - if (q.includes('special_purpose_districts')) { - return { - rows: [{ - sdname: 'Special Tribeca Mixed Use District', - sdlbl: 'TMU', - }], - }; - } + if (q.includes('special_purpose_districts')) { + return { + rows: [ + { + sdname: 'Special Tribeca Mixed Use District', + sdlbl: 'TMU', + }, + ], + }; + } - return { rows: [] }; - }); + return { rows: [] }; + } + ); await visit('/l/lot/1/187/21'); diff --git a/tests/acceptance/visual-diff-routes-test.js b/tests/acceptance/visual-diff-routes-test.js index 99acba855..8d8c7e133 100644 --- a/tests/acceptance/visual-diff-routes-test.js +++ b/tests/acceptance/visual-diff-routes-test.js @@ -4,15 +4,15 @@ import { setupApplicationTest } from 'ember-qunit'; import { setupMirage } from 'ember-cli-mirage/test-support'; import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; -module('Acceptance | visual diff routes', function(hooks) { +module('Acceptance | visual diff routes', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - test('visiting lot/1/187/21', async function(assert) { + test('visiting lot/1/187/21', async function (assert) { this.server.create('lot', { id: 1001870021, properties: { @@ -68,7 +68,7 @@ module('Acceptance | visual diff routes', function(hooks) { assert.ok(true); }); - test('visiting zoning-district/R3-2', async function(assert) { + test('visiting zoning-district/R3-2', async function (assert) { this.server.create('carto-geojson-feature', { properties: { id: 'R3-2', @@ -81,7 +81,7 @@ module('Acceptance | visual diff routes', function(hooks) { assert.ok(true); }); - test('visiting commercial-overlay/C2-5', async function(assert) { + test('visiting commercial-overlay/C2-5', async function (assert) { this.server.create('carto-geojson-feature', { id: 'C2-5', properties: { @@ -96,7 +96,7 @@ module('Acceptance | visual diff routes', function(hooks) { assert.ok(true); }); - test('visiting zma/090334zmk', async function(assert) { + test('visiting zma/090334zmk', async function (assert) { this.server.create('carto-geojson-feature', { id: '090334zmk', properties: { @@ -115,7 +115,7 @@ module('Acceptance | visual diff routes', function(hooks) { assert.ok(true); }); - test('visiting special-purpose-district/1', async function(assert) { + test('visiting special-purpose-district/1', async function (assert) { this.server.create('carto-geojson-feature', { id: 1, properties: { @@ -130,7 +130,7 @@ module('Acceptance | visual diff routes', function(hooks) { assert.ok(true); }); - test('visiting special-purpose-subdistrict/96', async function(assert) { + test('visiting special-purpose-subdistrict/96', async function (assert) { this.server.create('carto-geojson-feature', { id: 96, properties: { diff --git a/tests/helpers/.gitkeep b/tests/helpers/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/helpers/extract-query-params.js b/tests/helpers/extract-query-params.js index 51cac6a92..3e0a25a60 100644 --- a/tests/helpers/extract-query-params.js +++ b/tests/helpers/extract-query-params.js @@ -1,4 +1,4 @@ -export default function(URLStringFromCurrentURL) { +export default function (URLStringFromCurrentURL) { const URLParsed = new URL(`http://localhost${URLStringFromCurrentURL}`); const SearchParams = new URLSearchParams(URLParsed.search); diff --git a/tests/helpers/index.js b/tests/helpers/index.js new file mode 100644 index 000000000..7f70de80f --- /dev/null +++ b/tests/helpers/index.js @@ -0,0 +1,42 @@ +import { + setupApplicationTest as upstreamSetupApplicationTest, + setupRenderingTest as upstreamSetupRenderingTest, + setupTest as upstreamSetupTest, +} from 'ember-qunit'; + +// This file exists to provide wrappers around ember-qunit's / ember-mocha's +// test setup functions. This way, you can easily extend the setup that is +// needed per test type. + +function setupApplicationTest(hooks, options) { + upstreamSetupApplicationTest(hooks, options); + + // Additional setup for application tests can be done here. + // + // For example, if you need an authenticated session for each + // application test, you could do: + // + // hooks.beforeEach(async function () { + // await authenticateSession(); // ember-simple-auth + // }); + // + // This is also a good place to call test setup functions coming + // from other addons: + // + // setupIntl(hooks); // ember-intl + // setupMirage(hooks); // ember-cli-mirage +} + +function setupRenderingTest(hooks, options) { + upstreamSetupRenderingTest(hooks, options); + + // Additional setup for rendering tests can be done here. +} + +function setupTest(hooks, options) { + upstreamSetupTest(hooks, options); + + // Additional setup for unit tests can be done here. +} + +export { setupApplicationTest, setupRenderingTest, setupTest }; diff --git a/tests/helpers/mapbox-gl-loaded.js b/tests/helpers/mapbox-gl-loaded.js index d862da92e..21d5702c0 100644 --- a/tests/helpers/mapbox-gl-loaded.js +++ b/tests/helpers/mapbox-gl-loaded.js @@ -1,5 +1,5 @@ import { waitFor } from '@ember/test-helpers'; -export default async function() { +export default async function () { await waitFor('.labs-map-loaded', { timeout: 30000 }); } diff --git a/tests/helpers/mock-layers-api.js b/tests/helpers/mock-layers-api.js index 11e8685a1..60cea7978 100644 --- a/tests/helpers/mock-layers-api.js +++ b/tests/helpers/mock-layers-api.js @@ -1,7 +1,7 @@ import layerGroupsFixtures from '../../mirage/static-fixtures/layer-groups'; -export default function(hooks) { - hooks.beforeEach(function() { +export default function (hooks) { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); } diff --git a/tests/helpers/setup-map-mocks.js b/tests/helpers/setup-map-mocks.js index cf22615cc..f439376c2 100644 --- a/tests/helpers/setup-map-mocks.js +++ b/tests/helpers/setup-map-mocks.js @@ -3,28 +3,34 @@ import MapboxGL from 'ember-mapbox-gl/components/mapbox-gl'; import Service, { inject as service } from '@ember/service'; import TesterMap from './tester-map'; -export default function(hooks) { - hooks.beforeEach(async function() { - this.owner.register('service:mock-map-service', Service.extend({ - init(...args) { - this._super(...args); - this.set('maps', new Map()); - }, - })); +export default function (hooks) { + hooks.beforeEach(async function () { + this.owner.register( + 'service:mock-map-service', + Service.extend({ + init(...args) { + this._super(...args); + this.set('maps', new Map()); + }, + }) + ); - this.owner.register('component:mapbox-gl', MapboxGL.extend({ - mockMapService: service(), - init(...args) { - this._super(...args); - this.get('mockMapService.maps').set(this.elementId, this); - registerWaiter(() => this.map); - }, - willDestroyElement(...params) { - unregisterWaiter(() => this.map); + this.owner.register( + 'component:mapbox-gl', + MapboxGL.extend({ + mockMapService: service(), + init(...args) { + this._super(...args); + this.mockMapService.maps.set(this.elementId, this); + registerWaiter(() => this.map); + }, + willDestroyElement(...params) { + unregisterWaiter(() => this.map); - this._super(...params); - }, - })); + this._super(...params); + }, + }) + ); this.owner.register('component:labs-map', TesterMap); }); diff --git a/tests/helpers/stub-basic-map.js b/tests/helpers/stub-basic-map.js index 619e17950..043ca9adf 100644 --- a/tests/helpers/stub-basic-map.js +++ b/tests/helpers/stub-basic-map.js @@ -8,19 +8,68 @@ const MAPBOX_GL_SOURCE_STUB = { setData() {}, }; -const DEFAULT_EVENTS = ['resize', 'remove', 'mousedown', 'mouseup', 'mouseover', 'mousemove', 'click', 'dblclick', 'mouseenter', 'mouseleave', 'mouseout', 'contextmenu', 'wheel', 'touchstart', 'touchend', 'touchmove', 'touchcancel', 'movestart', 'move', 'moveend', 'dragstart', 'drag', 'dragend', 'zoomstart', 'zoom', 'zoomend', 'rotatestart', 'rotate', 'rotateend', 'pitchstart', 'pitch', 'pitchend', 'boxzoomstart', 'boxzoomend', 'boxzoomcancel', 'webglcontextlost', 'webglcontextrestored', 'load', 'render', 'idle', 'error', 'data', 'styledata', 'sourcedata', 'dataloading', 'styledataloading', 'sourcedataloading', 'styleimagemissing'] - .reduce((hash, eventName) => { - hash[eventName] = () => {}; - - return hash; - }, {}); +const DEFAULT_EVENTS = [ + 'resize', + 'remove', + 'mousedown', + 'mouseup', + 'mouseover', + 'mousemove', + 'click', + 'dblclick', + 'mouseenter', + 'mouseleave', + 'mouseout', + 'contextmenu', + 'wheel', + 'touchstart', + 'touchend', + 'touchmove', + 'touchcancel', + 'movestart', + 'move', + 'moveend', + 'dragstart', + 'drag', + 'dragend', + 'zoomstart', + 'zoom', + 'zoomend', + 'rotatestart', + 'rotate', + 'rotateend', + 'pitchstart', + 'pitch', + 'pitchend', + 'boxzoomstart', + 'boxzoomend', + 'boxzoomcancel', + 'webglcontextlost', + 'webglcontextrestored', + 'load', + 'render', + 'idle', + 'error', + 'data', + 'styledata', + 'sourcedata', + 'dataloading', + 'styledataloading', + 'sourcedataloading', + 'styleimagemissing', +].reduce((hash, eventName) => { + hash[eventName] = () => {}; + + return hash; +}, {}); export const MAPBOX_GL_DEFAULTS = { /** * convenience properties for stub */ features: [], - events: { // stores registered events + events: { + // stores registered events // spread noop default events ...DEFAULT_EVENTS, }, @@ -80,7 +129,7 @@ export const MAPBOX_GL_DEFAULTS = { }, }; -const createMapStub = function(testContext) { +const createMapStub = function (testContext) { testContext.map = MAPBOX_GL_DEFAULTS; testContext.hoveredFeature = null; @@ -93,18 +142,20 @@ const createMapStub = function(testContext) { return !!this.mapInstance; } - didInsertElement() { + didInsertElement(...args) { + super.didInsertElement(args); registerWaiter(this._mapIsLoaded); } - willDestroyElement() { + willDestroyElement(...args) { + super.willDestroyElement(args); unregisterWaiter(this._mapIsLoaded); } // labs-map (built on top of mapbox-gl) requires this, tries to handle this hoveredFeature = testContext.hoveredFeature; - mapLoaded = () => {} + mapLoaded = () => {}; @action handleMapLoaded() { @@ -117,8 +168,8 @@ const createMapStub = function(testContext) { }; // TODO: extract out the stub registration so that it can be used in other contexts -export default function(hooks) { - hooks.beforeEach(async function() { +export default function (hooks) { + hooks.beforeEach(async function () { this.owner.register('component:mapbox/basic-map', createMapStub(this)); }); } diff --git a/tests/helpers/tester-map.js b/tests/helpers/tester-map.js index aeef8f1f0..ea48165fd 100644 --- a/tests/helpers/tester-map.js +++ b/tests/helpers/tester-map.js @@ -6,14 +6,13 @@ import { timeout, task } from 'ember-concurrency'; export default class TesterMap extends LabsMap { didIdle = false; - @service - mockMapService; + @service mockMapService; init(...args) { super.init(...args); // register map reference - this.get('mockMapService.maps').set(this.elementId, this); + this.mockMapService.maps.set(this.elementId, this); // test waiter registerWaiter(this.testWaiter.bind(this)); @@ -25,7 +24,7 @@ export default class TesterMap extends LabsMap { this.map.off('idle', this.callbacks.willIdle); this.map.off('render', this.callbacks.willRender); - this._super(...params); + super.willDestroyElement(...params); } testWaiter() { @@ -38,7 +37,8 @@ export default class TesterMap extends LabsMap { @task(function* (map) { yield timeout(300); - const target = this.element.querySelector('canvas') || this.element.querySelector('img'); + const target = + this.element.querySelector('canvas') || this.element.querySelector('img'); target.outerHTML = ` diff --git a/tests/index.html b/tests/index.html index bbfbc4588..1c0010c41 100644 --- a/tests/index.html +++ b/tests/index.html @@ -2,7 +2,6 @@ - LabsZola Tests @@ -38,7 +37,6 @@ {{content-for "body"}} {{content-for "test-body"}} -
      diff --git a/tests/integration/components/bookmarks/bookmark-button-test.js b/tests/integration/components/bookmarks/bookmark-button-test.js index 774e5fcf8..e6c586e50 100644 --- a/tests/integration/components/bookmarks/bookmark-button-test.js +++ b/tests/integration/components/bookmarks/bookmark-button-test.js @@ -1,21 +1,21 @@ import { module, skip } from 'qunit'; +import { render } from '@ember/test-helpers'; import { setupRenderingTest } from 'ember-qunit'; -import { find } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | bookmark button', function(hooks) { +module('Integration | Component | bookmark button', function (hooks) { setupRenderingTest(hooks); - skip('it renders', function(assert) { + skip('it renders', function (assert) { // Set any properties with this.set('myProperty', 'value'); // Handle any actions with this.on('myAction', function(val) { ... }); - this.render(hbs`{{bookmarks/bookmark-button}}`); + render(hbs`{{bookmarks/bookmark-button}}`); assert.equal(this.element.textContent.trim(), ''); // Template block usage: - this.render(hbs` + render(hbs` {{#bookmarks/bookmark-button}} template block text {{/bookmarks/bookmark-button}} diff --git a/tests/integration/components/bookmarks/types/lot-test.js b/tests/integration/components/bookmarks/types/lot-test.js index d5ad45536..7b46ea486 100644 --- a/tests/integration/components/bookmarks/types/lot-test.js +++ b/tests/integration/components/bookmarks/types/lot-test.js @@ -3,10 +3,10 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | bookmarks/types/lot', function(hooks) { +module('Integration | Component | bookmarks/types/lot', function (hooks) { setupRenderingTest(hooks); - test('it renders', async function(assert) { + test('it renders', async function (assert) { await render(hbs`{{bookmarks/types/lot}}`); assert.ok(this.element.textContent); diff --git a/tests/integration/components/bookmarks/types/lot/lot-bookmark-item-test.js b/tests/integration/components/bookmarks/types/lot/lot-bookmark-item-test.js index 910e0686f..b424f7eea 100644 --- a/tests/integration/components/bookmarks/types/lot/lot-bookmark-item-test.js +++ b/tests/integration/components/bookmarks/types/lot/lot-bookmark-item-test.js @@ -1,12 +1,12 @@ import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { render, find } from '@ember/test-helpers'; +import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | lot bookmark item', function(hooks) { +module('Integration | Component | lot bookmark item', function (hooks) { setupRenderingTest(hooks); - test('it renders', async function(assert) { + test('it renders', async function (assert) { // Set any properties with this.set('myProperty', 'value'); // Handle any actions with this.on('myAction', function(val) { ... }); diff --git a/tests/integration/components/carto-data-provider-test.js b/tests/integration/components/carto-data-provider-test.js index 858c9e014..fdaa26e00 100644 --- a/tests/integration/components/carto-data-provider-test.js +++ b/tests/integration/components/carto-data-provider-test.js @@ -4,14 +4,14 @@ import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; import { setupMirage } from 'ember-cli-mirage/test-support'; -module('Integration | Component | carto-data-provider', function(hooks) { +module('Integration | Component | carto-data-provider', function (hooks) { setupRenderingTest(hooks); setupMirage(hooks); - test('it loads', async function(assert) { + test('it loads', async function (assert) { this.server.create('lot', { id: 'bbl' }); - this.cartoQueryTemplate = function(id) { + this.cartoQueryTemplate = function (id) { return `${id}`; }; diff --git a/tests/integration/components/carto-data-provider/error-handler-test.js b/tests/integration/components/carto-data-provider/error-handler-test.js index 767b72ed4..0ffd5dab1 100644 --- a/tests/integration/components/carto-data-provider/error-handler-test.js +++ b/tests/integration/components/carto-data-provider/error-handler-test.js @@ -3,18 +3,21 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | carto-data-provider/error-handler', function(hooks) { - setupRenderingTest(hooks); +module( + 'Integration | Component | carto-data-provider/error-handler', + function (hooks) { + setupRenderingTest(hooks); - test('it renders', async function(assert) { - // Set any properties with this.set('myProperty', 'value'); - // Handle any actions with this.set('myAction', function(val) { ... }); + test('it renders', async function (assert) { + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.set('myAction', function(val) { ... }); - await render(hbs` + await render(hbs` {{carto-data-provider/error-handler errors=(array 'some error') }}`); - assert.ok(this.element.textContent.includes('some error')); - }); -}); + assert.ok(this.element.textContent.includes('some error')); + }); + } +); diff --git a/tests/integration/components/grouped-checkboxes-test.js b/tests/integration/components/grouped-checkboxes-test.js index 1e76f2b6d..eccf27c21 100644 --- a/tests/integration/components/grouped-checkboxes-test.js +++ b/tests/integration/components/grouped-checkboxes-test.js @@ -3,10 +3,10 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | grouped-checkboxes', function(hooks) { +module('Integration | Component | grouped-checkboxes', function (hooks) { setupRenderingTest(hooks); - test('it renders', async function(assert) { + test('it renders', async function (assert) { // Set any properties with this.set('myProperty', 'value'); // Handle any actions with this.set('myAction', function(val) { ... }); diff --git a/tests/integration/components/intersecting-layers-test.js b/tests/integration/components/intersecting-layers-test.js index 180c2c1cd..a59d8fe34 100644 --- a/tests/integration/components/intersecting-layers-test.js +++ b/tests/integration/components/intersecting-layers-test.js @@ -1,23 +1,23 @@ import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { render, find } from '@ember/test-helpers'; +import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | intersecting layers', function(hooks) { +module('Integration | Component | intersecting layers', function (hooks) { setupRenderingTest(hooks); - test('it renders', async function(assert) { + test('it renders', async function (assert) { // Set any properties with // Handle any actions with this.on('myAction', function(val) { ... }); this.set('myProperty', []); - await render(hbs`{{intersecting-layers tables=myProperty}}`); + await render(hbs`{{intersecting-layers tables=this.myProperty}}`); assert.equal(this.element.textContent.trim(), ''); // Template block usage: await render(hbs` - {{#intersecting-layers tables=myProperty}} + {{#intersecting-layers tables=this.myProperty}} template block text {{/intersecting-layers}} `); diff --git a/tests/integration/components/layer-control-timeline-test.js b/tests/integration/components/layer-control-timeline-test.js index 8c1ac5ad6..ca105cc38 100644 --- a/tests/integration/components/layer-control-timeline-test.js +++ b/tests/integration/components/layer-control-timeline-test.js @@ -5,38 +5,40 @@ import hbs from 'htmlbars-inline-precompile'; import { setupMirage } from 'ember-cli-mirage/test-support'; import layerGroupsFixtures from '../../../mirage/static-fixtures/layer-groups'; -module('Integration | Component | layer control timeline', function(hooks) { +module('Integration | Component | layer control timeline', function (hooks) { setupRenderingTest(hooks); setupMirage(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.post('layer-groups', () => layerGroupsFixtures); }); - test('it renders', async function(assert) { - const layers = await this.owner.lookup('service:store') + test('it renders', async function (assert) { + const layers = await this.owner + .lookup('service:store') .findAll('layer-group'); this.layer = layers.findBy('id', 'zoning-map-amendments'); await render(hbs` {{layer-control-timeline start=(array 1032370151000 1092370199000) - layerGroup=layer + layerGroup=this.layer column='effective_epoch' }}`); assert.equal(this.element.textContent.trim(), '2002-092004-08'); }); - test('it changes slider', async function(assert) { - const layers = await this.owner.lookup('service:store') + test('it changes slider', async function (assert) { + const layers = await this.owner + .lookup('service:store') .query('layer-group', {}); this.layer = layers.findBy('id', 'zoning-map-amendments'); await render(hbs` {{layer-control-timeline start=(array 1032370151000 1092370199000) - layerGroup=layer + layerGroup=this.layer column='effective_epoch' }}`); diff --git a/tests/integration/components/layer-palette-test.js b/tests/integration/components/layer-palette-test.js index 2d1ce9c13..0594db3a9 100644 --- a/tests/integration/components/layer-palette-test.js +++ b/tests/integration/components/layer-palette-test.js @@ -1,12 +1,13 @@ +import { A } from '@ember/array'; import { module, test, skip } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { render, click, pauseTest } from '@ember/test-helpers'; +import { render, click } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; import { setupMirage } from 'ember-cli-mirage/test-support'; import stubBasicMap from '../../helpers/stub-basic-map'; import layerGroupsFixtures from '../../../mirage/static-fixtures/layer-groups'; -module('Integration | Component | layer-palette', function(hooks) { +module('Integration | Component | layer-palette', function (hooks) { setupRenderingTest(hooks); setupMirage(hooks); stubBasicMap(hooks); @@ -14,27 +15,24 @@ module('Integration | Component | layer-palette', function(hooks) { // Set any properties with this.set('myProperty', 'value'); // Handle any actions with this.set('myAction', function(val) { ... }); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.server.get('layer-groups', () => layerGroupsFixtures); }); - test('toggling the Show Land Use Colors checkbox in the layer-palette changes the visibility', async function(assert) { + test('toggling the Show Land Use Colors checkbox in the layer-palette changes the visibility', async function (assert) { this.layerGroups = await this.owner .lookup('service:store') .findAll('layer-group', { include: 'layers' }); - this.layerGroupsObject = this.layerGroups.reduce( - (accumulator, current) => { - accumulator[current.get('id')] = current; - return accumulator; - }, - {}, - ); + this.layerGroupsObject = this.layerGroups.reduce((accumulator, current) => { + accumulator[current.get('id')] = current; + return accumulator; + }, {}); await render(hbs` {{layer-palette layerGroups=this.layerGroupsObject - isDefault=isDefault + isDefault=this.isDefault }} `); @@ -42,27 +40,27 @@ module('Integration | Component | layer-palette', function(hooks) { const taxLots = this.layerGroupsObject['tax-lots']; assert.equal(taxLots.visible, true); - assert.equal(taxLots.layers.findBy('id', 'pluto-fill').paint['fill-opacity'], 0.5); + assert.equal( + taxLots.layers.findBy('id', 'pluto-fill').paint['fill-opacity'], + 0.5 + ); }); - test('toggling the zoning type checkboxes under Zoning Districts in the layer palette changes which district types are shown', async function(assert) { + test('toggling the zoning type checkboxes under Zoning Districts in the layer palette changes which district types are shown', async function (assert) { this.layerGroups = await this.owner .lookup('service:store') .findAll('layer-group', { include: 'layers' }); - this.layerGroupsObject = this.layerGroups.reduce( - (accumulator, current) => { - accumulator[current.get('id')] = current; - return accumulator; - }, - {}, - ); + this.layerGroupsObject = this.layerGroups.reduce((accumulator, current) => { + accumulator[current.get('id')] = current; + return accumulator; + }, {}); - this.selectedZoning = []; + this.selectedZoning = A([]); await render(hbs` {{layer-palette - selectedZoning=selectedZoning + selectedZoning=this.selectedZoning layerGroups=this.layerGroupsObject }} `); @@ -73,28 +71,35 @@ module('Integration | Component | layer-palette', function(hooks) { assert.deepEqual( zoningDistricts.layers.findBy('id', 'zd-fill').style.filter, - ['any', ['==', 'primaryzone', 'C1'], ['==', 'primaryzone', 'C2'], ['==', 'primaryzone', 'C3'], ['==', 'primaryzone', 'C4'], ['==', 'primaryzone', 'C5'], ['==', 'primaryzone', 'C6'], ['==', 'primaryzone', 'C7'], ['==', 'primaryzone', 'C8']], + [ + 'any', + ['==', 'primaryzone', 'C1'], + ['==', 'primaryzone', 'C2'], + ['==', 'primaryzone', 'C3'], + ['==', 'primaryzone', 'C4'], + ['==', 'primaryzone', 'C5'], + ['==', 'primaryzone', 'C6'], + ['==', 'primaryzone', 'C7'], + ['==', 'primaryzone', 'C8'], + ] ); }); - test('toggling the commercial overlay type checkboxes under Commercial Overlays in the layer palette changes which types are shown', async function(assert) { + test('toggling the commercial overlay type checkboxes under Commercial Overlays in the layer palette changes which types are shown', async function (assert) { this.layerGroups = await this.owner .lookup('service:store') .findAll('layer-group', { include: 'layers' }); - this.layerGroupsObject = this.layerGroups.reduce( - (accumulator, current) => { - accumulator[current.get('id')] = current; - return accumulator; - }, - {}, - ); + this.layerGroupsObject = this.layerGroups.reduce((accumulator, current) => { + accumulator[current.get('id')] = current; + return accumulator; + }, {}); - this.selectedOverlays = []; + this.selectedOverlays = A([]); await render(hbs` {{layer-palette - selectedOverlays=selectedOverlays + selectedOverlays=this.selectedOverlays layerGroups=this.layerGroupsObject }} `); @@ -105,27 +110,31 @@ module('Integration | Component | layer-palette', function(hooks) { assert.deepEqual( commercialOverlays.layers.findBy('id', 'co').style.filter, - ['any', ['==', 'overlay', 'C1-1'], ['==', 'overlay', 'C1-2'], ['==', 'overlay', 'C1-3'], ['==', 'overlay', 'C1-4'], ['==', 'overlay', 'C1-5']], + [ + 'any', + ['==', 'overlay', 'C1-1'], + ['==', 'overlay', 'C1-2'], + ['==', 'overlay', 'C1-3'], + ['==', 'overlay', 'C1-4'], + ['==', 'overlay', 'C1-5'], + ] ); }); - test('toggling aerials changes the year shown', async function(assert) { + test('toggling aerials changes the year shown', async function (assert) { this.layerGroups = await this.owner .lookup('service:store') .findAll('layer-group', { include: 'layers' }); - this.layerGroupsObject = this.layerGroups.reduce( - (accumulator, current) => { - accumulator[current.get('id')] = current; - return accumulator; - }, - {}, - ); + this.layerGroupsObject = this.layerGroups.reduce((accumulator, current) => { + accumulator[current.get('id')] = current; + return accumulator; + }, {}); await render(hbs` {{layer-palette layerGroups=this.layerGroupsObject - isDefault=isDefault + isDefault=this.isDefault }} `); @@ -134,32 +143,32 @@ module('Integration | Component | layer-palette', function(hooks) { assert.equal(aerialsLayer.visible, true); // check that toggling the layer makes it visible await click('[data-test-radio="aerials-2008"]'); - assert.equal(aerialsLayer.layers.findBy('id', 'aerials-2008').visibility, true); // clicking on the new radio button changes the visibility + assert.equal( + aerialsLayer.layers.findBy('id', 'aerials-2008').visibility, + true + ); // clicking on the new radio button changes the visibility }); // reset map button is broken as of now, will fix in another branch and return to this test - skip('clicking reset map button resets to all of default layers', async function(assert) { + skip('clicking reset map button resets to all of default layers', async function (assert) { this.layerGroups = await this.owner .lookup('service:store') .findAll('layer-group', { include: 'layers' }); - this.layerGroupsObject = this.layerGroups.reduce( - (accumulator, current) => { - accumulator[current.get('id')] = current; - return accumulator; - }, - {}, - ); + this.layerGroupsObject = this.layerGroups.reduce((accumulator, current) => { + accumulator[current.get('id')] = current; + return accumulator; + }, {}); this.selectedOverlays = []; this.selectedZoning = []; await render(hbs` {{layer-palette - selectedZoning=selectedZoning - selectedOverlays=selectedOverlays + selectedZoning=this.selectedZoning + selectedOverlays=this.selectedOverlays layerGroups=this.layerGroupsObject - isDefault=isDefault + isDefault=this.isDefault }} `); @@ -171,9 +180,14 @@ module('Integration | Component | layer-palette', function(hooks) { const aerialsLayer = this.layerGroupsObject.aerials; await click('[data-test-reset-map-button]'); - await pauseTest(); - assert.deepEqual(zoningDistricts.layers.findBy('id', 'zd-fill').style.filter, []); // reset to none - assert.deepEqual(commercialOverlays.layers.findBy('id', 'co').style.filter, []); // reset to none + assert.deepEqual( + zoningDistricts.layers.findBy('id', 'zd-fill').style.filter, + [] + ); // reset to none + assert.deepEqual( + commercialOverlays.layers.findBy('id', 'co').style.filter, + [] + ); // reset to none assert.equal(aerialsLayer.visible, false); // toggle to false }); }); diff --git a/tests/integration/components/layer-record-views/commercial-overlay-test.js b/tests/integration/components/layer-record-views/commercial-overlay-test.js index ccd21318b..fe5ab4a4b 100644 --- a/tests/integration/components/layer-record-views/commercial-overlay-test.js +++ b/tests/integration/components/layer-record-views/commercial-overlay-test.js @@ -3,15 +3,18 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | layer-record-views/commercial-overlay', function(hooks) { - setupRenderingTest(hooks); +module( + 'Integration | Component | layer-record-views/commercial-overlay', + function (hooks) { + setupRenderingTest(hooks); - test('it renders', async function(assert) { - // Set any properties with this.set('myProperty', 'value'); - // Handle any actions with this.set('myAction', function(val) { ... }); + test('it renders', async function (assert) { + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.set('myAction', function(val) { ... }); - await render(hbs`{{layer-record-views/commercial-overlay}}`); + await render(hbs`{{layer-record-views/commercial-overlay}}`); - assert.ok(this.element); - }); -}); + assert.ok(this.element); + }); + } +); diff --git a/tests/integration/components/layer-record-views/special-purpose-district-test.js b/tests/integration/components/layer-record-views/special-purpose-district-test.js index 91a791e67..11b47b462 100644 --- a/tests/integration/components/layer-record-views/special-purpose-district-test.js +++ b/tests/integration/components/layer-record-views/special-purpose-district-test.js @@ -3,15 +3,18 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | layer-record-views/special-purpose-district', function(hooks) { - setupRenderingTest(hooks); +module( + 'Integration | Component | layer-record-views/special-purpose-district', + function (hooks) { + setupRenderingTest(hooks); - test('it renders', async function(assert) { - // Set any properties with this.set('myProperty', 'value'); - // Handle any actions with this.set('myAction', function(val) { ... }); + test('it renders', async function (assert) { + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.set('myAction', function(val) { ... }); - await render(hbs`{{layer-record-views/special-purpose-district}}`); + await render(hbs`{{layer-record-views/special-purpose-district}}`); - assert.ok(this.element); - }); -}); + assert.ok(this.element); + }); + } +); diff --git a/tests/integration/components/layer-record-views/special-purpose-subdistricts-test.js b/tests/integration/components/layer-record-views/special-purpose-subdistricts-test.js index 134bcadbc..7a4f484fb 100644 --- a/tests/integration/components/layer-record-views/special-purpose-subdistricts-test.js +++ b/tests/integration/components/layer-record-views/special-purpose-subdistricts-test.js @@ -3,15 +3,18 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | layer-record-views/special-purpose-subdistricts', function(hooks) { - setupRenderingTest(hooks); +module( + 'Integration | Component | layer-record-views/special-purpose-subdistricts', + function (hooks) { + setupRenderingTest(hooks); - test('it renders', async function(assert) { - // Set any properties with this.set('myProperty', 'value'); - // Handle any actions with this.set('myAction', function(val) { ... }); + test('it renders', async function (assert) { + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.set('myAction', function(val) { ... }); - await render(hbs`{{layer-record-views/special-purpose-subdistricts}}`); + await render(hbs`{{layer-record-views/special-purpose-subdistricts}}`); - assert.ok(this.element); - }); -}); + assert.ok(this.element); + }); + } +); diff --git a/tests/integration/components/layer-record-views/tax-lot-test.js b/tests/integration/components/layer-record-views/tax-lot-test.js index fb4801868..4e01eb96a 100644 --- a/tests/integration/components/layer-record-views/tax-lot-test.js +++ b/tests/integration/components/layer-record-views/tax-lot-test.js @@ -1,16 +1,140 @@ import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { render } from '@ember/test-helpers'; +import { render, find } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; import { setupMirage } from 'ember-cli-mirage/test-support'; -module('Integration | Component | layer-record-views/tax-lot', function(hooks) { - setupRenderingTest(hooks); - setupMirage(hooks); +module( + 'Integration | Component | layer-record-views/tax-lot', + function (hooks) { + setupRenderingTest(hooks); + setupMirage(hooks); - test('it renders', async function(assert) { - await render(hbs`{{layer-record-views/tax-lot}}`); + hooks.beforeEach(function () { + this.record = { + address: '120 BROADWAY', + bbl: 1000477501, + bldgclass: 'RB', + block: 47, + borough: 'MN', + borocode: 1, + cd: 101, + council: 1, + histdist: 'Individual Landmark', + landmark: 'INDIVIDUAL LANDMARK', + landuse: '05', + lot: 7501, + overlay1: null, + overlay2: null, + spdist1: 'LM', + spdist2: null, + spdist3: null, + yearalter2: 0, + zipcode: 10271, + zonedist1: 'C5-5', + zonedist2: null, + zonedist3: null, + zonedist4: null, + zonemap: '12b', + id: 1000477501, + }; + }); - assert.ok(this.element); - }); -}); + test('it renders', async function (assert) { + await render(hbs``); + + assert.ok(this.element); + }); + + test('it generates correct links: BISWEB', async function (assert) { + await render(hbs``); + + assert.equal( + find('[data-test-bisweb-link]').getAttribute('href'), + 'http://a810-bisweb.nyc.gov/bisweb/PropertyBrowseByBBLServlet?allborough=1&allblock=47&alllot=7501&go5=+GO+&requestid=0' + ); + }); + + test('it generates correct links: Community Profiles', async function (assert) { + await render(hbs``); + + assert.equal( + find('[data-test-full-cd-url]').getAttribute('href'), + 'https://communityprofiles.planning.nyc.gov/manhattan/1' + ); + }); + + test('it generates correct links: Zoning District Tag Links', async function (assert) { + await render(hbs``); + + assert.equal( + find('[data-test-zone-dist-link]').getAttribute('href'), + 'https://www1.nyc.gov/site/planning/zoning/districts-tools/c5.page' + ); + }); + + test('it generates correct links: Digital Tax Map', async function (assert) { + await render(hbs``); + + assert.equal( + find('[data-test-tax-map-link]').getAttribute('href'), + 'http://gis.nyc.gov/taxmap/map.htm?searchType=BblSearch&featureTypeName=EVERY_BBL&featureName=1000477501' + ); + }); + + test('it generates correct links: Zoning Map', async function (assert) { + await render(hbs``); + + assert.equal( + find('[data-test-zoning-map-link]').getAttribute('href'), + 'https://s-media.nyc.gov/agencies/dcp/assets/files/pdf/zoning/zoning-maps/map12b.pdf' + ); + }); + + test('it generates correct links: Historical Zoning Map', async function (assert) { + await render(hbs``); + + assert.equal( + find('[data-test-historical-zoning-map-link]').getAttribute('href'), + 'https://s-media.nyc.gov/agencies/dcp/assets/files/pdf/zoning/zoning-maps/maps12b.pdf' + ); + }); + + test('it generates correct links: ACRIS', async function (assert) { + await render(hbs``); + + assert.equal( + find('[data-test-acris-link]').getAttribute('href'), + 'http://a836-acris.nyc.gov/bblsearch/bblsearch.asp?borough=1&block=47&lot=7501' + ); + }); + + test('it generates correct links: Housing Info Link', async function (assert) { + await render(hbs``); + + assert.equal( + find('[data-test-housing-info-link]').getAttribute('href'), + 'https://hpdonline.nyc.gov/hpdonline/' + ); + }); + + test('it generates correct links: Council', async function (assert) { + await render(hbs``); + + assert.equal( + find('[data-test-council-link]').getAttribute('href'), + 'https://council.nyc.gov/district-1/' + ); + }); + } +); diff --git a/tests/integration/components/layer-record-views/tax-lot/intersecting-layers-views-test.js b/tests/integration/components/layer-record-views/tax-lot/intersecting-layers-views-test.js index ed0ebfd90..936315f87 100644 --- a/tests/integration/components/layer-record-views/tax-lot/intersecting-layers-views-test.js +++ b/tests/integration/components/layer-record-views/tax-lot/intersecting-layers-views-test.js @@ -1,18 +1,25 @@ import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { render } from '@ember/test-helpers'; +import { render, waitFor } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; import { setupMirage } from 'ember-cli-mirage/test-support'; -module('Integration | Component | layer-record-views/tax-lot/intersecting-layers-views', function(hooks) { - setupRenderingTest(hooks); - setupMirage(hooks); +module( + 'Integration | Component | layer-record-views/tax-lot/intersecting-layers-views', + function (hooks) { + setupRenderingTest(hooks); + setupMirage(hooks); - test('it shows none found with empty response', async function(assert) { - this.server.get('https://planninglabs.carto.com/api/v2/sql', () => ({ rows: [] })); + test('it shows none found with empty response', async function (assert) { + this.server.get('https://planninglabs.carto.com/api/v2/sql', () => ({ + rows: [], + })); - await render(hbs`{{layer-record-views/tax-lot/intersecting-layers-views}}`); + await render(hbs``); - assert.equal(this.element.textContent.trim(), 'None found'); - }); -}); + await waitFor('[data-test-none-found]'); + + assert.equal(this.element.textContent.trim(), 'None found'); + }); + } +); diff --git a/tests/integration/components/layer-record-views/zoning-district-test.js b/tests/integration/components/layer-record-views/zoning-district-test.js index 75ea3ab5a..5e7aa47d0 100644 --- a/tests/integration/components/layer-record-views/zoning-district-test.js +++ b/tests/integration/components/layer-record-views/zoning-district-test.js @@ -3,15 +3,23 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | layer-record-views/zoning-district', function(hooks) { - setupRenderingTest(hooks); +module( + 'Integration | Component | layer-record-views/zoning-district', + function (hooks) { + setupRenderingTest(hooks); - test('it renders', async function(assert) { - // Set any properties with this.set('myProperty', 'value'); - // Handle any actions with this.set('myAction', function(val) { ... }); + test('it renders', async function (assert) { + this.zoningDistrict = { + properties: { + zonedist: 'R6A', + }, + }; - await render(hbs`{{layer-record-views/zoning-district}}`); + await render(hbs` `); - assert.ok(this.element); - }); -}); + assert.ok(this.element); + }); + } +); diff --git a/tests/integration/components/layer-record-views/zoning-map-amendment-test.js b/tests/integration/components/layer-record-views/zoning-map-amendment-test.js index 7be58351e..2de2fd4b6 100644 --- a/tests/integration/components/layer-record-views/zoning-map-amendment-test.js +++ b/tests/integration/components/layer-record-views/zoning-map-amendment-test.js @@ -3,15 +3,18 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | layer-record-views/zoning-map-amendment', function(hooks) { - setupRenderingTest(hooks); +module( + 'Integration | Component | layer-record-views/zoning-map-amendment', + function (hooks) { + setupRenderingTest(hooks); - test('it renders', async function(assert) { - // Set any properties with this.set('myProperty', 'value'); - // Handle any actions with this.set('myAction', function(val) { ... }); + test('it renders', async function (assert) { + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.set('myAction', function(val) { ... }); - await render(hbs`{{layer-record-views/zoning-map-amendment}}`); + await render(hbs`{{layer-record-views/zoning-map-amendment}}`); - assert.ok(this.element); - }); -}); + assert.ok(this.element); + }); + } +); diff --git a/tests/integration/components/locate-me-mobile-test.js b/tests/integration/components/locate-me-mobile-test.js index 62a9e98e8..abce26e8b 100644 --- a/tests/integration/components/locate-me-mobile-test.js +++ b/tests/integration/components/locate-me-mobile-test.js @@ -3,10 +3,10 @@ import { setupRenderingTest } from 'ember-qunit'; import { render, click, find } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | locate-me-mobile', function(hooks) { +module('Integration | Component | locate-me-mobile', function (hooks) { setupRenderingTest(hooks); - test('clicking on the locate me button removes the locate me mobile feature', async function(assert) { + test('clicking on the locate me button removes the locate me mobile feature', async function (assert) { // Set any properties with this.set('myProperty', 'value'); // Handle any actions with this.set('myAction', function(val) { ... }); diff --git a/tests/integration/components/main-header-test.js b/tests/integration/components/main-header-test.js index f7c65cf8b..d9e9d850e 100644 --- a/tests/integration/components/main-header-test.js +++ b/tests/integration/components/main-header-test.js @@ -3,10 +3,10 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | main-header', function(hooks) { +module('Integration | Component | main-header', function (hooks) { setupRenderingTest(hooks); - test('it renders', async function(assert) { + test('it renders', async function (assert) { await render(hbs``); assert.ok(this.element); diff --git a/tests/integration/components/main-map-test.js b/tests/integration/components/main-map-test.js index f4c94c791..b657987b8 100644 --- a/tests/integration/components/main-map-test.js +++ b/tests/integration/components/main-map-test.js @@ -1,11 +1,7 @@ +import { A } from '@ember/array'; import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { - render, - find, - click, - waitFor, -} from '@ember/test-helpers'; +import { render, find, click, waitFor } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; import { setupMirage } from 'ember-cli-mirage/test-support'; import Service from '@ember/service'; @@ -19,18 +15,18 @@ const MAPBOX_GL_BLANK_STYLE = { }, }; -module('Integration | Component | main-map', function(hooks) { +module('Integration | Component | main-map', function (hooks) { setupRenderingTest(hooks); setupMirage(hooks); stubBasicMap(hooks); - hooks.beforeEach(async function() { + hooks.beforeEach(async function () { this.meta = MAPBOX_GL_BLANK_STYLE; - this.bookmarks = []; + this.bookmarks = A([]); this.printSvc = this.owner.lookup('service:print'); }); - test('it renders', async function(assert) { + test('it renders', async function (assert) { this.server.createList('layer-group', 10, 'hasLayers'); this.layerGroups = await this.owner .lookup('service:store') @@ -51,7 +47,7 @@ module('Integration | Component | main-map', function(hooks) { // this test may be an over-reach because it's making sure that an addon behaves // correctly, the addon being ember-mapbox-composer - test('mousing-over something highlightable highlights the feature', async function(assert) { + test('mousing-over something highlightable highlights the feature', async function (assert) { this.server.create('layer', 1, { visible: true, highlightable: true, @@ -94,7 +90,7 @@ module('Integration | Component | main-map', function(hooks) { // the visibility of the generic mapbox-gl-layer that's used to // represent the highlighted feature let args = []; - this.map.setLayoutProperty = function(id, key, value) { + this.map.setLayoutProperty = function (id, key, value) { args = [id, key, value]; }; @@ -104,7 +100,7 @@ module('Integration | Component | main-map', function(hooks) { assert.equal(args[2], 'visible'); }); - test('mousing-over something shows a tooltip about that feature', async function(assert) { + test('mousing-over something shows a tooltip about that feature', async function (assert) { this.server.create('layer', 1, { visible: true, highlightable: true, @@ -152,40 +148,47 @@ module('Integration | Component | main-map', function(hooks) { assert.ok(find('[data-test-tooltip="true"]')); }); - module('Component | main-map | lets you measure stuff', async function(hooksForMeasure) { - hooksForMeasure.beforeEach(async function() { - this.server.createList('layer-group', 10, 'hasLayers'); - this.layerGroups = await this.owner - .lookup('service:store') - .findAll('layer-group', { include: 'layers' }); - this.layerGroups.meta = this.meta; - }); - - test('it measures with line tool', async function(assert) { - // these are the "drawn" features - this.map.features = [{ - type: 'Feature', - geometry: { - type: 'LineString', - coordinates: [[0, 0], [1, 1]], - }, - }]; - - this.draw = { - changeMode() {}, - deleteAll() {}, - getAll: () => ({ features: this.map.features }), - }; - - let lastSource = ''; - this.map = { - ...this.map, - addSource(source) { - lastSource = source; - }, - }; - - await render(hbs` + module( + 'Component | main-map | lets you measure stuff', + async function (hooksForMeasure) { + hooksForMeasure.beforeEach(async function () { + this.server.createList('layer-group', 10, 'hasLayers'); + this.layerGroups = await this.owner + .lookup('service:store') + .findAll('layer-group', { include: 'layers' }); + this.layerGroups.meta = this.meta; + }); + + test('it measures with line tool', async function (assert) { + // these are the "drawn" features + this.map.features = [ + { + type: 'Feature', + geometry: { + type: 'LineString', + coordinates: [ + [0, 0], + [1, 1], + ], + }, + }, + ]; + + this.draw = { + changeMode() {}, + deleteAll() {}, + getAll: () => ({ features: this.map.features }), + }; + + let lastSource = ''; + this.map = { + ...this.map, + addSource(source) { + lastSource = source; + }, + }; + + await render(hbs` {{main-map layerGroups=this.layerGroups layerGroupsMeta=this.meta @@ -195,46 +198,58 @@ module('Integration | Component | main-map', function(hooks) { }} `); - await click('[data-test-button="begin-measure"]'); - - await click('[data-test-button="measure-tool-line"]'); - - await this.map.events['draw.create'](); - - await this.map.events['draw.render'](); - - // TODO: I believe the awaits before aren't working because - // of the dynamic import of the measurement libs that - // happens in the event callback... need to file bug - await waitFor('[data-test-measure="value"]'); - - const measurement = find('[data-test-measure="value"]').textContent.trim(); - - assert.equal(measurement, '97.74 mi'); - - // make sure the drawn source gets added to map - assert.equal(lastSource, 'drawn-feature'); - - await click('[data-test-button="measure-tool-close"]'); - }); - - test('it measures with polygon tool', async function(assert) { - // these are the "drawn" features - this.map.features = [{ - type: 'Feature', - geometry: { - type: 'Polygon', - coordinates: [[[-74.000, 40.736], [-74.000, 40.729], [-73.991, 40.727], [-73.991, 40.736], [-74.000, 40.736]]], - }, - }]; - - this.draw = { - changeMode() {}, - deleteAll() {}, - getAll: () => ({ features: this.map.features }), - }; - - await render(hbs` + await click('[data-test-button="begin-measure"]'); + + await click('[data-test-button="measure-tool-line"]'); + + await this.map.events['draw.create'](); + + await this.map.events['draw.render'](); + + // TODO: I believe the awaits before aren't working because + // of the dynamic import of the measurement libs that + // happens in the event callback... need to file bug + await waitFor('[data-test-measure="value"]'); + + const measurement = find( + '[data-test-measure="value"]' + ).textContent.trim(); + + assert.equal(measurement, '97.74 mi'); + + // make sure the drawn source gets added to map + assert.equal(lastSource, 'drawn-feature'); + + await click('[data-test-button="measure-tool-close"]'); + }); + + test('it measures with polygon tool', async function (assert) { + // these are the "drawn" features + this.map.features = [ + { + type: 'Feature', + geometry: { + type: 'Polygon', + coordinates: [ + [ + [-74.0, 40.736], + [-74.0, 40.729], + [-73.991, 40.727], + [-73.991, 40.736], + [-74.0, 40.736], + ], + ], + }, + }, + ]; + + this.draw = { + changeMode() {}, + deleteAll() {}, + getAll: () => ({ features: this.map.features }), + }; + + await render(hbs` {{main-map layerGroups=this.layerGroups layerGroupsMeta=this.meta @@ -244,40 +259,47 @@ module('Integration | Component | main-map', function(hooks) { }} `); - await click('[data-test-button="begin-measure"]'); + await click('[data-test-button="begin-measure"]'); - await click('[data-test-button="measure-tool-polygon"]'); + await click('[data-test-button="measure-tool-polygon"]'); - await this.map.events['draw.create'](); + await this.map.events['draw.create'](); - await this.map.events['draw.render'](); + await this.map.events['draw.render'](); - await waitFor('[data-test-measure="value"]'); + await waitFor('[data-test-measure="value"]'); - const measurement = find('[data-test-measure="value"]').textContent.trim(); + const measurement = find( + '[data-test-measure="value"]' + ).textContent.trim(); - assert.equal(measurement, '7,277,503 ft²'); + assert.equal(measurement, '7,277,503 ft²'); - await click('[data-test-button="measure-tool-close"]'); - }); + await click('[data-test-button="measure-tool-close"]'); + }); + + test('it changes the measurement unit', async function (assert) { + // these are the "drawn" features + this.map.features = [ + { + type: 'Feature', + geometry: { + type: 'LineString', + coordinates: [ + [0, 0], + [1, 1], + ], + }, + }, + ]; - test('it changes the measurement unit', async function(assert) { - // these are the "drawn" features - this.map.features = [{ - type: 'Feature', - geometry: { - type: 'LineString', - coordinates: [[0, 0], [1, 1]], - }, - }]; - - this.draw = { - changeMode() {}, - deleteAll() {}, - getAll: () => ({ features: this.map.features }), - }; - - await render(hbs` + this.draw = { + changeMode() {}, + deleteAll() {}, + getAll: () => ({ features: this.map.features }), + }; + + await render(hbs` {{main-map layerGroups=this.layerGroups layerGroupsMeta=this.meta @@ -287,74 +309,85 @@ module('Integration | Component | main-map', function(hooks) { }} `); - await click('[data-test-button="begin-measure"]'); + await click('[data-test-button="begin-measure"]'); - await click('[data-test-button="measure-tool-line"]'); + await click('[data-test-button="measure-tool-line"]'); - await this.map.events['draw.create'](); + await this.map.events['draw.create'](); - await this.map.events['draw.render'](); + await this.map.events['draw.render'](); - await waitFor('[data-test-measure="value"]'); + await waitFor('[data-test-measure="value"]'); - await click('[data-test-measure="unit-menu"]'); + await click('[data-test-measure="unit-menu"]'); - await click('[data-tests-measure="unit-metric"]'); + await click('[data-tests-measure="unit-metric"]'); - await waitFor('[data-test-measure="value"]'); + await waitFor('[data-test-measure="value"]'); - const measurement = find('[data-test-measure="value"]').textContent.trim(); + const measurement = find( + '[data-test-measure="value"]' + ).textContent.trim(); - assert.equal(measurement, '157.30 km'); - }); - }); + assert.equal(measurement, '157.30 km'); + }); + } + ); - module('Integration | Component | main-map | it routes to specific resources correctly', function(subHooks) { - subHooks.beforeEach(async function() { - // generate mock layer for map - this.server.create('layer', 1, { visible: true, clickable: true, id: 'visible-layer' }); - - // setup the arguments that get passed into the component - this.layerGroups = await this.owner - .lookup('service:store') - .findAll('layer-group', { include: 'layers' }); - this.layerGroups.meta = this.meta; - - // stubbed features that are "on the map" - this.map.features = [{ - type: 'Feature', - properties: { - bbl: '1', - id: '1', - }, - layer: { + module( + 'Integration | Component | main-map | it routes to specific resources correctly', + function (subHooks) { + subHooks.beforeEach(async function () { + // generate mock layer for map + this.server.create('layer', 1, { + visible: true, + clickable: true, id: 'visible-layer', - }, - geometry: null, - }]; - - // stub the router service that gets injected into the component - const testContext = this; - class RouterServiceStub extends Service { - transitionTo(...args) { - testContext.transitionTo(...args); + }); + + // setup the arguments that get passed into the component + this.layerGroups = await this.owner + .lookup('service:store') + .findAll('layer-group', { include: 'layers' }); + this.layerGroups.meta = this.meta; + + // stubbed features that are "on the map" + this.map.features = [ + { + type: 'Feature', + properties: { + bbl: '1', + id: '1', + }, + layer: { + id: 'visible-layer', + }, + geometry: null, + }, + ]; + + // stub the router service that gets injected into the component + const testContext = this; + class RouterServiceStub extends Service { + transitionTo(...args) { + testContext.transitionTo(...args); + } } - } - this.owner.unregister('service:router'); - this.owner.register('service:router', RouterServiceStub); - }); + this.owner.unregister('service:router'); + this.owner.register('service:router', RouterServiceStub); + }); - test('it routes to lot', async function(assert) { - this.map.features[0].properties = { - bbl: '1', - }; + test('it routes to lot', async function (assert) { + this.map.features[0].properties = { + bbl: '1', + }; - this.transitionTo = function(route) { - assert.equal(route, 'map-feature.lot'); - }; + this.transitionTo = function (route) { + assert.equal(route, 'map-feature.lot'); + }; - await render(hbs` + await render(hbs` {{main-map layerGroups=this.layerGroups layerGroupsMeta=this.meta @@ -363,20 +396,20 @@ module('Integration | Component | main-map', function(hooks) { }} `); - await this.map.events.mousemove(); - await this.map.events.click(); - }); + await this.map.events.mousemove(); + await this.map.events.click(); + }); - test('it routes to zoning-map-amendment', async function(assert) { - this.map.features[0].properties = { - ulurpno: '1', - }; + test('it routes to zoning-map-amendment', async function (assert) { + this.map.features[0].properties = { + ulurpno: '1', + }; - this.transitionTo = function(route) { - assert.equal(route, 'map-feature.zoning-map-amendment'); - }; + this.transitionTo = function (route) { + assert.equal(route, 'map-feature.zoning-map-amendment'); + }; - await render(hbs` + await render(hbs` {{main-map layerGroups=this.layerGroups layerGroupsMeta=this.meta @@ -385,20 +418,20 @@ module('Integration | Component | main-map', function(hooks) { }} `); - await this.map.events.mousemove(); - await this.map.events.click(); - }); + await this.map.events.mousemove(); + await this.map.events.click(); + }); - test('it routes to zoning-district', async function(assert) { - this.map.features[0].properties = { - zonedist: '1', - }; + test('it routes to zoning-district', async function (assert) { + this.map.features[0].properties = { + zonedist: '1', + }; - this.transitionTo = function(route) { - assert.equal(route, 'map-feature.zoning-district'); - }; + this.transitionTo = function (route) { + assert.equal(route, 'map-feature.zoning-district'); + }; - await render(hbs` + await render(hbs` {{main-map layerGroups=this.layerGroups layerGroupsMeta=this.meta @@ -407,20 +440,20 @@ module('Integration | Component | main-map', function(hooks) { }} `); - await this.map.events.mousemove(); - await this.map.events.click(); - }); + await this.map.events.mousemove(); + await this.map.events.click(); + }); - test('it routes to special-purpose-district', async function(assert) { - this.map.features[0].properties = { - sdlbl: '1', - }; + test('it routes to special-purpose-district', async function (assert) { + this.map.features[0].properties = { + sdlbl: '1', + }; - this.transitionTo = function(route) { - assert.equal(route, 'map-feature.special-purpose-district'); - }; + this.transitionTo = function (route) { + assert.equal(route, 'map-feature.special-purpose-district'); + }; - await render(hbs` + await render(hbs` {{main-map layerGroups=this.layerGroups layerGroupsMeta=this.meta @@ -429,20 +462,20 @@ module('Integration | Component | main-map', function(hooks) { }} `); - await this.map.events.mousemove(); - await this.map.events.click(); - }); + await this.map.events.mousemove(); + await this.map.events.click(); + }); - test('it routes to special-purpose-subdistrict', async function(assert) { - this.map.features[0].properties = { - splbl: '1', - }; + test('it routes to special-purpose-subdistrict', async function (assert) { + this.map.features[0].properties = { + splbl: '1', + }; - this.transitionTo = function(route) { - assert.equal(route, 'map-feature.special-purpose-subdistrict'); - }; + this.transitionTo = function (route) { + assert.equal(route, 'map-feature.special-purpose-subdistrict'); + }; - await render(hbs` + await render(hbs` {{main-map layerGroups=this.layerGroups layerGroupsMeta=this.meta @@ -451,20 +484,20 @@ module('Integration | Component | main-map', function(hooks) { }} `); - await this.map.events.mousemove(); - await this.map.events.click(); - }); + await this.map.events.mousemove(); + await this.map.events.click(); + }); - test('it routes to commercial-overlay', async function(assert) { - this.map.features[0].properties = { - overlay: '1', - }; + test('it routes to commercial-overlay', async function (assert) { + this.map.features[0].properties = { + overlay: '1', + }; - this.transitionTo = function(route) { - assert.equal(route, 'map-feature.commercial-overlay'); - }; + this.transitionTo = function (route) { + assert.equal(route, 'map-feature.commercial-overlay'); + }; - await render(hbs` + await render(hbs` {{main-map layerGroups=this.layerGroups layerGroupsMeta=this.meta @@ -473,8 +506,9 @@ module('Integration | Component | main-map', function(hooks) { }} `); - await this.map.events.mousemove(); - await this.map.events.click(); - }); - }); + await this.map.events.mousemove(); + await this.map.events.click(); + }); + } + ); }); diff --git a/tests/integration/components/map-measurement-tools-test.js b/tests/integration/components/map-measurement-tools-test.js index 81820890c..dde5f7564 100644 --- a/tests/integration/components/map-measurement-tools-test.js +++ b/tests/integration/components/map-measurement-tools-test.js @@ -4,10 +4,10 @@ import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; import { MAPBOX_GL_DEFAULTS } from '../../helpers/stub-basic-map'; -module('Integration | Component | map-measurement-tools', function(hooks) { +module('Integration | Component | map-measurement-tools', function (hooks) { setupRenderingTest(hooks); - test('it renders', async function(assert) { + test('it renders', async function (assert) { this.map = { ...MAPBOX_GL_DEFAULTS, }; diff --git a/tests/integration/components/map-resource-search-test.js b/tests/integration/components/map-resource-search-test.js index e3bc53a3f..6b5ef8ce7 100644 --- a/tests/integration/components/map-resource-search-test.js +++ b/tests/integration/components/map-resource-search-test.js @@ -1,30 +1,31 @@ import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { - render, - fillIn, - click, -} from '@ember/test-helpers'; +import { render, fillIn, click, settled } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; import { setupMirage } from 'ember-cli-mirage/test-support'; import config from 'labs-zola/config/environment'; import Service from '@ember/service'; -const { 'labs-search': { host: labsSearchHost } } = config; - -// generic procedure for typing in a search with a given result and assertion -const runSearch = async function() { - await render(hbs``); - await fillIn('[data-test-search="resource"] .map-search-input', 'test'); - await click('.result'); -}; +const { + 'labs-search': { host: labsSearchHost }, +} = config; // this behavior is already tested in an acceptance test -module('Integration | Component | map-resource-search', function(hooks) { +module('Integration | Component | map-resource-search', function (hooks) { + // generic procedure for typing in a search with a given result and assertion + // needs to be defined here to inherit this + const runSearch = async () => { + await render(hbs``); + await fillIn('[data-test-search="resource"] .map-search-input', 'test'); + // eslint-disable-next-line ember/no-settled-after-test-helper + await settled(); + await click('.result'); + }; + setupRenderingTest(hooks); setupMirage(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { const testContext = this; class RouterServiceStub extends Service { transitionTo(...args) { @@ -47,74 +48,87 @@ module('Integration | Component | map-resource-search', function(hooks) { this.owner.register('service:main-map', MainMapServiceStub); }); - test('it renders', async function(assert) { + test('it renders', async function (assert) { await render(hbs``); assert.ok(true); }); - - test('map search for search api works: lot', async function(assert) { + test('map search for search api works: lot', async function (assert) { assert.expect(1); // mock server response that returns a "lot" - this.server.get(`${labsSearchHost}/**`, function() { - return [{ - bbl: 'test', - type: 'lot', - label: '120 Broadway, Manhattan', - }]; + this.server.get(`${labsSearchHost}/**`, function () { + return [ + { + bbl: 'test', + type: 'lot', + label: '120 Broadway, Manhattan', + }, + ]; }); - this.transitionTo = (route) => { assert.equal(route, 'map-feature.lot'); }; + this.transitionTo = (route) => { + assert.equal(route, 'map-feature.lot'); + }; await runSearch(); }); - test('map search for search api works: zoning-map-amendment', async function(assert) { + test('map search for search api works: zoning-map-amendment', async function (assert) { assert.expect(1); // mock server response that returns a "lot" - this.server.get(`${labsSearchHost}/**`, function() { - return [{ - ulurpno: 'test', - type: 'zma', - label: '120 Broadway, Manhattan', - }]; + this.server.get(`${labsSearchHost}/**`, function () { + return [ + { + ulurpno: 'test', + type: 'zma', + label: '120 Broadway, Manhattan', + }, + ]; }); - this.transitionTo = (route) => { assert.equal(route, 'map-feature.zoning-map-amendment'); }; + this.transitionTo = (route) => { + assert.equal(route, 'map-feature.zoning-map-amendment'); + }; await runSearch(); }); - test('map search for search api works: zoning-district', async function(assert) { + test('map search for search api works: zoning-district', async function (assert) { assert.expect(1); // mock server response that returns a "lot" - this.server.get(`${labsSearchHost}/**`, function() { - return [{ - type: 'zoning-district', - label: 'C1-5', - }]; + this.server.get(`${labsSearchHost}/**`, function () { + return [ + { + type: 'zoning-district', + label: 'C1-5', + }, + ]; }); - this.transitionTo = (route) => { assert.equal(route, 'map-feature.zoning-district'); }; + this.transitionTo = (route) => { + assert.equal(route, 'map-feature.zoning-district'); + }; await runSearch(); }); - test('map search for search api works: neighborhood', async function(assert) { + test('map search for search api works: neighborhood', async function (assert) { assert.expect(1); // mock server response that returns a "lot" - this.server.get(`${labsSearchHost}/**`, function() { - return [{ - neighbourhood: 'test', - type: 'neighborhood', - coordinates: [0, 0], - label: '120 Broadway, Manhattan', - }]; + this.server.get(`${labsSearchHost}/**`, function () { + return [ + { + neighbourhood: 'test', + type: 'neighborhood', + coordinates: [0, 0], + label: '120 Broadway, Manhattan', + }, + ]; }); this.flyTo = (mapboxObject) => { @@ -127,36 +141,44 @@ module('Integration | Component | map-resource-search', function(hooks) { await runSearch(); }); - test('map search for search api works: special-purpose-district', async function(assert) { + test('map search for search api works: special-purpose-district', async function (assert) { assert.expect(1); // mock server response that returns a "lot" - this.server.get(`${labsSearchHost}/**`, function() { - return [{ - type: 'special-purpose-district', - sdname: 'test', - cartodb_id: 'test', - label: '120 Broadway, Manhattan', - }]; + this.server.get(`${labsSearchHost}/**`, function () { + return [ + { + type: 'special-purpose-district', + sdname: 'test', + cartodb_id: 'test', + label: '120 Broadway, Manhattan', + }, + ]; }); - this.transitionTo = (route) => { assert.equal(route, 'map-feature.special-purpose-district'); }; + this.transitionTo = (route) => { + assert.equal(route, 'map-feature.special-purpose-district'); + }; await runSearch(); }); - test('map search for search api works: commercial-overlay', async function(assert) { + test('map search for search api works: commercial-overlay', async function (assert) { assert.expect(1); // mock server response that returns a "lot" - this.server.get(`${labsSearchHost}/**`, function() { - return [{ - type: 'commercial-overlay', - label: '120 Broadway, Manhattan', - }]; + this.server.get(`${labsSearchHost}/**`, function () { + return [ + { + type: 'commercial-overlay', + label: '120 Broadway, Manhattan', + }, + ]; }); - this.transitionTo = (route) => { assert.equal(route, 'map-feature.commercial-overlay'); }; + this.transitionTo = (route) => { + assert.equal(route, 'map-feature.commercial-overlay'); + }; await runSearch(); }); diff --git a/tests/integration/components/mapbox/basic-map-test.js b/tests/integration/components/mapbox/basic-map-test.js index d3891d0e5..e563914fa 100644 --- a/tests/integration/components/mapbox/basic-map-test.js +++ b/tests/integration/components/mapbox/basic-map-test.js @@ -12,11 +12,11 @@ const MAPBOX_GL_BLANK_STYLE = { }, }; -module('Integration | Component | mapbox/basic-map', function(hooks) { +module('Integration | Component | mapbox/basic-map', function (hooks) { setupRenderingTest(hooks); setupMirage(hooks); - test('it renders', async function(assert) { + test('it renders', async function (assert) { this.layerGroups = await this.owner .lookup('service:store') .findAll('layer-group', { include: 'layers' }); diff --git a/tests/integration/components/mapbox/fit-map-to-all-button-test.js b/tests/integration/components/mapbox/fit-map-to-all-button-test.js index 6e10f92f2..da3b7207f 100644 --- a/tests/integration/components/mapbox/fit-map-to-all-button-test.js +++ b/tests/integration/components/mapbox/fit-map-to-all-button-test.js @@ -3,24 +3,27 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | mapbox/fit-map-to-all-button', function(hooks) { - setupRenderingTest(hooks); +module( + 'Integration | Component | mapbox/fit-map-to-all-button', + function (hooks) { + setupRenderingTest(hooks); - test('it renders', async function(assert) { - // Set any properties with this.set('myProperty', 'value'); - // Handle any actions with this.set('myAction', function(val) { ... }); + test('it renders', async function (assert) { + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.set('myAction', function(val) { ... }); - await render(hbs`{{mapbox/fit-map-to-all-button}}`); + await render(hbs`{{mapbox/fit-map-to-all-button}}`); - assert.equal(this.element.textContent.trim(), ''); + assert.equal(this.element.textContent.trim(), ''); - // Template block usage: - await render(hbs` + // Template block usage: + await render(hbs` {{#mapbox/fit-map-to-all-button}} template block text {{/mapbox/fit-map-to-all-button}} `); - assert.equal(this.element.textContent.trim(), 'template block text'); - }); -}); + assert.equal(this.element.textContent.trim(), 'template block text'); + }); + } +); diff --git a/tests/integration/components/mapbox/load-spinner-test.js b/tests/integration/components/mapbox/load-spinner-test.js index 5fe14e97f..cbfe4cc8c 100644 --- a/tests/integration/components/mapbox/load-spinner-test.js +++ b/tests/integration/components/mapbox/load-spinner-test.js @@ -3,10 +3,10 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | mapbox/load-spinner', function(hooks) { +module('Integration | Component | mapbox/load-spinner', function (hooks) { setupRenderingTest(hooks); - test('it renders', async function(assert) { + test('it renders', async function (assert) { // Set any properties with this.set('myProperty', 'value'); // Handle any actions with this.set('myAction', function(val) { ... }); @@ -19,7 +19,7 @@ module('Integration | Component | mapbox/load-spinner', function(hooks) { await render(hbs` {{mapbox/load-spinner - map = map.instance + map = this.map.instance }} `); diff --git a/tests/integration/components/mapbox/map-feature-renderer-test.js b/tests/integration/components/mapbox/map-feature-renderer-test.js index 3a2cb2068..9c21990f1 100644 --- a/tests/integration/components/mapbox/map-feature-renderer-test.js +++ b/tests/integration/components/mapbox/map-feature-renderer-test.js @@ -16,19 +16,22 @@ class MainMapService extends Service { }; } -module('Integration | Component | mapbox/map-feature-renderer', function(hooks) { - setupRenderingTest(hooks); +module( + 'Integration | Component | mapbox/map-feature-renderer', + function (hooks) { + setupRenderingTest(hooks); - test('it renders', async function(assert) { - this.owner.register('service:main-map', MainMapService); + test('it renders', async function (assert) { + this.owner.register('service:main-map', MainMapService); - this.model = {}; + this.model = {}; - await render(hbs` + await render(hbs` {{mapbox/map-feature-renderer model=this.model }}`); - assert.equal(this.element.textContent.trim(), ''); - }); -}); + assert.equal(this.element.textContent.trim(), ''); + }); + } +); diff --git a/tests/integration/components/print-view-controls-test.js b/tests/integration/components/print-view-controls-test.js index 7eac77243..86fd6402f 100644 --- a/tests/integration/components/print-view-controls-test.js +++ b/tests/integration/components/print-view-controls-test.js @@ -3,18 +3,18 @@ import { setupRenderingTest } from 'ember-qunit'; import { render, find, click } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | print-view-controls', function(hooks) { +module('Integration | Component | print-view-controls', function (hooks) { setupRenderingTest(hooks); - test('it renders', async function(assert) { + test('it renders', async function (assert) { this.printSvc = this.owner.lookup('service:print'); await render(hbs`{{print-view-controls printSvc=this.printSvc}}`); assert.ok(true); }); - test('it renders with default state', async function(assert) { + test('it renders with default state', async function (assert) { this.printSvc = this.owner.lookup('service:print'); - await render(hbs`{{print-view-controls printSvc=printSvc}}`); + await render(hbs`{{print-view-controls printSvc=this.printSvc}}`); assert.ok(!find('[data-test-print-control="landscape"] .a11y-orange')); assert.ok(find('[data-test-print-control="portrait"] .a11y-orange')); @@ -28,9 +28,9 @@ module('Integration | Component | print-view-controls', function(hooks) { assert.ok(find('[data-test-print-control="content"] .a11y-orange')); }); - test('it changes orientation', async function(assert) { + test('it changes orientation', async function (assert) { this.printSvc = this.owner.lookup('service:print'); - await render(hbs`{{print-view-controls printSvc=printSvc}}`); + await render(hbs`{{print-view-controls printSvc=this.printSvc}}`); await click('[data-test-print-control="landscape"]'); @@ -43,9 +43,9 @@ module('Integration | Component | print-view-controls', function(hooks) { assert.ok(find('[data-test-print-control="portrait"] .a11y-orange')); }); - test('it changes size', async function(assert) { + test('it changes size', async function (assert) { this.printSvc = this.owner.lookup('service:print'); - await render(hbs`{{print-view-controls printSvc=printSvc}}`); + await render(hbs`{{print-view-controls printSvc=this.printSvc}}`); await click('[data-test-print-control="legal"]'); assert.ok(!find('[data-test-print-control="letter"] .a11y-orange')); @@ -65,9 +65,9 @@ module('Integration | Component | print-view-controls', function(hooks) { assert.ok(!find('[data-test-print-control="tabloid"] .a11y-orange')); }); - test('it changes what to show and hide', async function(assert) { + test('it changes what to show and hide', async function (assert) { this.printSvc = this.owner.lookup('service:print'); - await render(hbs`{{print-view-controls printSvc=printSvc}}`); + await render(hbs`{{print-view-controls printSvc=this.printSvc}}`); await click('[data-test-print-control="map"]'); diff --git a/tests/integration/components/recaptcha-block-test.js b/tests/integration/components/recaptcha-block-test.js index 4dd184a38..d209e07bb 100644 --- a/tests/integration/components/recaptcha-block-test.js +++ b/tests/integration/components/recaptcha-block-test.js @@ -1,16 +1,12 @@ import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { - click, - find, - render, -} from '@ember/test-helpers'; +import { click, find, render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Component | recaptcha-block', function(hooks) { +module('Integration | Component | recaptcha-block', function (hooks) { setupRenderingTest(hooks); - test('it shows button text', async function(assert) { + test('it shows button text', async function (assert) { await render(hbs` template block text @@ -20,7 +16,7 @@ module('Integration | Component | recaptcha-block', function(hooks) { assert.equal(this.element.textContent.trim(), 'button text'); }); - test('it shows a spinner', async function(assert) { + test('it shows a spinner', async function (assert) { await render(hbs` template block text diff --git a/tests/integration/components/tooltip-renderer-test.js b/tests/integration/components/tooltip-renderer-test.js index e26d79c37..fa8fd4aac 100644 --- a/tests/integration/components/tooltip-renderer-test.js +++ b/tests/integration/components/tooltip-renderer-test.js @@ -13,15 +13,15 @@ const feature = { const template = 'The value of foo is {{foo}}'; -module('Integration | Component | tooltip-renderer', function(hooks) { +module('Integration | Component | tooltip-renderer', function (hooks) { setupRenderingTest(hooks); - test('it renders a tooltipTemplate', async function(assert) { + test('it renders a tooltipTemplate', async function (assert) { this.set('feature', feature); this.set('template', template); await render(hbs` - {{tooltip-renderer feature=feature template=template}} + {{tooltip-renderer feature=this.feature template=this.template}} `); assert.equal(this.element.textContent.trim(), 'The value of foo is bar'); diff --git a/tests/integration/helpers/carto-download-link-test.js b/tests/integration/helpers/carto-download-link-test.js index 3b33e61fb..ed46b05f0 100644 --- a/tests/integration/helpers/carto-download-link-test.js +++ b/tests/integration/helpers/carto-download-link-test.js @@ -1,14 +1,13 @@ - import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('helper:carto-download-link', function(hooks) { +module('helper:carto-download-link', function (hooks) { setupRenderingTest(hooks); // Replace this with your real tests. - test('it renders', async function(assert) { + test('it renders', async function (assert) { this.setProperties({ table: 'dcp_mappluto', identifier: 'bbl', @@ -16,8 +15,13 @@ module('helper:carto-download-link', function(hooks) { format: 'csv', }); - await render(hbs`{{carto-download-link table identifier ids format}}`); + await render( + hbs`{{carto-download-link this.table this.identifier this.ids this.format}}` + ); - assert.equal(this.element.textContent.trim(), 'https://planninglabs.carto.com/api/v2/sql?q=SELECT * FROM dcp_mappluto WHERE bbl IN (1014970028,1015280036,1015280038)&format=csv&filename=dcp_mappluto'); + assert.equal( + this.element.textContent.trim(), + 'https://planninglabs.carto.com/api/v2/sql?q=SELECT * FROM dcp_mappluto WHERE bbl IN (1014970028,1015280036,1015280038)&format=csv&filename=dcp_mappluto' + ); }); }); diff --git a/tests/integration/helpers/humanize-dasherized-words-test.js b/tests/integration/helpers/humanize-dasherized-words-test.js index aba5d3631..28ba9f03f 100644 --- a/tests/integration/helpers/humanize-dasherized-words-test.js +++ b/tests/integration/helpers/humanize-dasherized-words-test.js @@ -3,14 +3,14 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Helper | humanize-dasherized-words', function(hooks) { +module('Integration | Helper | humanize-dasherized-words', function (hooks) { setupRenderingTest(hooks); // Replace this with your real tests. - test('it renders', async function(assert) { + test('it renders', async function (assert) { this.set('inputValue', '1234'); - await render(hbs`{{humanize-dasherized-words inputValue}}`); + await render(hbs`{{humanize-dasherized-words this.inputValue}}`); assert.equal(this.element.textContent.trim(), '1234'); }); diff --git a/tests/integration/helpers/numeral-format-test.js b/tests/integration/helpers/numeral-format-test.js index 5438aba40..10fcb72e6 100644 --- a/tests/integration/helpers/numeral-format-test.js +++ b/tests/integration/helpers/numeral-format-test.js @@ -1,16 +1,16 @@ import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { render, find } from '@ember/test-helpers'; +import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('helper:numeral-format', function(hooks) { +module('helper:numeral-format', function (hooks) { setupRenderingTest(hooks); // Replace this with your real tests. - test('it renders', async function(assert) { + test('it renders', async function (assert) { this.set('inputValue', '1234'); - await render(hbs`{{numeral-format inputValue}}`); + await render(hbs`{{numeral-format this.inputValue}}`); assert.equal(this.element.textContent.trim(), '1,234'); }); diff --git a/tests/integration/helpers/sanitize-test.js b/tests/integration/helpers/sanitize-test.js index ac3d17035..220ddae8c 100644 --- a/tests/integration/helpers/sanitize-test.js +++ b/tests/integration/helpers/sanitize-test.js @@ -3,14 +3,14 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Helper | sanitize', function(hooks) { +module('Integration | Helper | sanitize', function (hooks) { setupRenderingTest(hooks); // Replace this with your real tests. - test('it renders', async function(assert) { + test('it renders', async function (assert) { this.set('inputValue', { color: 'purple' }); - await render(hbs`{{sanitize inputValue}}`); + await render(hbs`{{sanitize this.inputValue}}`); assert.equal(this.element.textContent.trim(), 'color:purple;'); }); diff --git a/tests/integration/helpers/to-title-case-test.js b/tests/integration/helpers/to-title-case-test.js index 0ba5c5736..648fbb34e 100644 --- a/tests/integration/helpers/to-title-case-test.js +++ b/tests/integration/helpers/to-title-case-test.js @@ -1,17 +1,16 @@ - import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { render, find } from '@ember/test-helpers'; +import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('helper:to-title-case', function(hooks) { +module('helper:to-title-case', function (hooks) { setupRenderingTest(hooks); // Replace this with your real tests. - test('it renders', async function(assert) { + test('it renders', async function (assert) { this.set('inputValue', '1234'); - await render(hbs`{{to-title-case inputValue}}`); + await render(hbs`{{to-title-case this.inputValue}}`); assert.equal(this.element.textContent.trim(), '1234'); }); diff --git a/tests/integration/helpers/zoom-dependent-label-test.js b/tests/integration/helpers/zoom-dependent-label-test.js index 0f7de97e8..378e9da77 100644 --- a/tests/integration/helpers/zoom-dependent-label-test.js +++ b/tests/integration/helpers/zoom-dependent-label-test.js @@ -3,30 +3,32 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; -module('Integration | Helper | zoom-dependent-label', function(hooks) { +module('Integration | Helper | zoom-dependent-label', function (hooks) { setupRenderingTest(hooks); - test('it returns correct warning label based on current map zoom', async function(assert) { - this.mockLayerGroup = { + test('it returns correct warning label based on current map zoom', async function (assert) { + const store = this.owner.lookup('service:store'); + const mockLayerGroup = store.createRecord('layer-group', { layers: [ - { - style: { minzoom: 4 }, - }, - { + store.createRecord('layer', { style: { minzoom: 12 }, - }, - {}, - { - style: {}, - }, + }), + store.createRecord('layer', { + style: { minzoom: 13 }, + }), ], - }; + }); + this.set('mockLayerGroup', mockLayerGroup); - await render(hbs`{{zoom-dependent-label this.mockLayerGroup "Warning" 10}}`); + await render( + hbs`{{zoom-dependent-label this.mockLayerGroup "Warning" 10}}` + ); assert.equal(this.element.textContent.trim(), 'Warning'); - await render(hbs`{{zoom-dependent-label this.mockLayerGroup "Warning" 14}}`); + await render( + hbs`{{zoom-dependent-label this.mockLayerGroup "Warning" 14}}` + ); assert.equal(this.element.textContent.trim(), ''); }); diff --git a/tests/unit/adapters/bookmark-test.js b/tests/unit/adapters/bookmark-test.js index 390810573..6fe2f1326 100644 --- a/tests/unit/adapters/bookmark-test.js +++ b/tests/unit/adapters/bookmark-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Adapter | bookmark', function(hooks) { +module('Unit | Adapter | bookmark', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const adapter = this.owner.lookup('adapter:bookmark'); assert.ok(adapter); }); diff --git a/tests/unit/adapters/commercial-overlay-test.js b/tests/unit/adapters/commercial-overlay-test.js index 00f462de7..704bd987b 100644 --- a/tests/unit/adapters/commercial-overlay-test.js +++ b/tests/unit/adapters/commercial-overlay-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Adapter | commercial overlay', function(hooks) { +module('Unit | Adapter | commercial overlay', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const adapter = this.owner.lookup('adapter:commercial-overlay'); assert.ok(adapter); }); diff --git a/tests/unit/adapters/geojson-feature-test.js b/tests/unit/adapters/geojson-feature-test.js index 7e3265c62..b34c17171 100644 --- a/tests/unit/adapters/geojson-feature-test.js +++ b/tests/unit/adapters/geojson-feature-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Adapter | geojson feature', function(hooks) { +module('Unit | Adapter | geojson feature', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const adapter = this.owner.lookup('adapter:carto-geojson-feature'); assert.ok(adapter); }); diff --git a/tests/unit/adapters/layer-group-test.js b/tests/unit/adapters/layer-group-test.js index f9dc8e573..636583fe9 100644 --- a/tests/unit/adapters/layer-group-test.js +++ b/tests/unit/adapters/layer-group-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Adapter | layer group', function(hooks) { +module('Unit | Adapter | layer group', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const adapter = this.owner.lookup('adapter:layer-group'); assert.ok(adapter); }); diff --git a/tests/unit/adapters/layer-test.js b/tests/unit/adapters/layer-test.js index 8c810fd42..59d7e5bf0 100644 --- a/tests/unit/adapters/layer-test.js +++ b/tests/unit/adapters/layer-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Adapter | layer', function(hooks) { +module('Unit | Adapter | layer', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const adapter = this.owner.lookup('adapter:layer'); assert.ok(adapter); }); diff --git a/tests/unit/adapters/special-purpose-district-test.js b/tests/unit/adapters/special-purpose-district-test.js index 8ecbe4d1f..3cad1fafa 100644 --- a/tests/unit/adapters/special-purpose-district-test.js +++ b/tests/unit/adapters/special-purpose-district-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Adapter | special purpose district', function(hooks) { +module('Unit | Adapter | special purpose district', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const adapter = this.owner.lookup('adapter:special-purpose-district'); assert.ok(adapter); }); diff --git a/tests/unit/adapters/special-purpose-subdistrict-test.js b/tests/unit/adapters/special-purpose-subdistrict-test.js index 3b60d82f5..fafdae289 100644 --- a/tests/unit/adapters/special-purpose-subdistrict-test.js +++ b/tests/unit/adapters/special-purpose-subdistrict-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Adapter | special purpose subdistrict', function(hooks) { +module('Unit | Adapter | special purpose subdistrict', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const adapter = this.owner.lookup('adapter:special-purpose-subdistrict'); assert.ok(adapter); }); diff --git a/tests/unit/adapters/zoning-map-amendment-test.js b/tests/unit/adapters/zoning-map-amendment-test.js index 506962067..17bca2af5 100644 --- a/tests/unit/adapters/zoning-map-amendment-test.js +++ b/tests/unit/adapters/zoning-map-amendment-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Adapter | zoning-map-amendment', function(hooks) { +module('Unit | Adapter | zoning-map-amendment', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const adapter = this.owner.lookup('adapter:zoning-map-amendment'); assert.ok(adapter); }); diff --git a/tests/unit/components/recaptcha-block-test.js b/tests/unit/components/recaptcha-block-test.js index ce68372f2..5f009b7d0 100644 --- a/tests/unit/components/recaptcha-block-test.js +++ b/tests/unit/components/recaptcha-block-test.js @@ -1,12 +1,14 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Component | recaptcha-block', function(hooks) { +module('Unit | Component | recaptcha-block', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('its actions update its args', function(assert) { - const component = this.owner.factoryFor('component:recaptcha-block').create(); + test('its actions update its args', function (assert) { + const component = this.owner + .factoryFor('component:recaptcha-block') + .create(); // reCaptchaResponse starts off undefined let reCaptchaResponse = component.get('reCaptchaResponse'); diff --git a/tests/unit/controllers/application-test.js b/tests/unit/controllers/application-test.js index ad0ec5279..8d3763eff 100644 --- a/tests/unit/controllers/application-test.js +++ b/tests/unit/controllers/application-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Controller | application', function(hooks) { +module('Unit | Controller | application', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const controller = this.owner.lookup('controller:application'); assert.ok(controller); }); diff --git a/tests/unit/controllers/bookmarks-test.js b/tests/unit/controllers/bookmarks-test.js index 375ddcc3d..d282f6e03 100644 --- a/tests/unit/controllers/bookmarks-test.js +++ b/tests/unit/controllers/bookmarks-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Controller | bookmarks', function(hooks) { +module('Unit | Controller | bookmarks', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const controller = this.owner.lookup('controller:bookmarks'); assert.ok(controller); }); diff --git a/tests/unit/controllers/commercial-overlay.js b/tests/unit/controllers/commercial-overlay.js index 770c0b63c..3e7bd1e52 100644 --- a/tests/unit/controllers/commercial-overlay.js +++ b/tests/unit/controllers/commercial-overlay.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Controller | commercial overlay', function(hooks) { +module('Unit | Controller | commercial overlay', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const controller = this.owner.lookup('controller:commercial-overlay'); assert.ok(controller); }); diff --git a/tests/unit/controllers/map-feature-test.js b/tests/unit/controllers/map-feature-test.js index 5c71296c0..b37208501 100644 --- a/tests/unit/controllers/map-feature-test.js +++ b/tests/unit/controllers/map-feature-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Controller | map-feature', function(hooks) { +module('Unit | Controller | map-feature', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const controller = this.owner.lookup('controller:map-feature'); assert.ok(controller); }); diff --git a/tests/unit/initializers/route-css-classes-test.js b/tests/unit/initializers/route-css-classes-test.js index 19f4fc87b..d0d512cac 100644 --- a/tests/unit/initializers/route-css-classes-test.js +++ b/tests/unit/initializers/route-css-classes-test.js @@ -1,14 +1,14 @@ import Application from '@ember/application'; import { initialize } from 'labs-zola/initializers/route-css-classes'; -import { module, test } from 'qunit'; +import { module, skip } from 'qunit'; import { setupTest } from 'ember-qunit'; import { run } from '@ember/runloop'; -module('Unit | Initializer | route-css-classes', function(hooks) { +module('Unit | Initializer | route-css-classes', function (hooks) { setupTest(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.TestApplication = Application.extend(); this.TestApplication.initializer({ name: 'initializer under test', @@ -18,12 +18,12 @@ module('Unit | Initializer | route-css-classes', function(hooks) { this.application = this.TestApplication.create({ autoboot: false }); }); - hooks.afterEach(function() { + hooks.afterEach(function () { run(this.application, 'destroy'); }); // Replace this with your real tests. - test('it works', async function(assert) { + skip('it works', async function (assert) { await this.application.boot(); assert.ok(true); diff --git a/tests/unit/initializers/zf-widget-test.js b/tests/unit/initializers/zf-widget-test.js index fc6fad1ca..7d4ed680a 100644 --- a/tests/unit/initializers/zf-widget-test.js +++ b/tests/unit/initializers/zf-widget-test.js @@ -1,14 +1,14 @@ import Application from '@ember/application'; import { initialize } from 'labs-zola/initializers/zf-widget'; -import { module, test } from 'qunit'; +import { module, skip } from 'qunit'; import { setupTest } from 'ember-qunit'; import { run } from '@ember/runloop'; -module('Unit | Initializer | zf-widget', function(hooks) { +module('Unit | Initializer | zf-widget', function (hooks) { setupTest(hooks); - hooks.beforeEach(function() { + hooks.beforeEach(function () { this.TestApplication = Application.extend(); this.TestApplication.initializer({ name: 'initializer under test', @@ -18,12 +18,12 @@ module('Unit | Initializer | zf-widget', function(hooks) { this.application = this.TestApplication.create({ autoboot: false }); }); - hooks.afterEach(function() { + hooks.afterEach(function () { run(this.application, 'destroy'); }); // Replace this with your real tests. - test('it works', async function(assert) { + skip('it works', async function (assert) { await this.application.boot(); assert.ok(true); diff --git a/tests/unit/mixins/track-page-test.js b/tests/unit/mixins/track-page-test.js index 1009a53b0..b5c236a19 100644 --- a/tests/unit/mixins/track-page-test.js +++ b/tests/unit/mixins/track-page-test.js @@ -2,9 +2,9 @@ import EmberObject from '@ember/object'; import TrackPageMixin from 'labs-zola/mixins/track-page'; import { module, test } from 'qunit'; -module('Unit | Mixin | track page', function() { +module('Unit | Mixin | track page', function () { // Replace this with your real tests. - test('it works', function(assert) { + test('it works', function (assert) { const TrackPageObject = EmberObject.extend(TrackPageMixin); const subject = TrackPageObject.create(); assert.ok(subject); diff --git a/tests/unit/models/bookmark-test.js b/tests/unit/models/bookmark-test.js index e4bc85b13..7de0ff2d2 100644 --- a/tests/unit/models/bookmark-test.js +++ b/tests/unit/models/bookmark-test.js @@ -3,11 +3,13 @@ import { setupTest } from 'ember-qunit'; import { run } from '@ember/runloop'; -module('Unit | Model | bookmark', function(hooks) { +module('Unit | Model | bookmark', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { - const model = run(() => this.owner.lookup('service:store').createRecord('bookmark')); + test('it exists', function (assert) { + const model = run(() => + this.owner.lookup('service:store').createRecord('bookmark') + ); // const store = this.store(); assert.ok(!!model); }); diff --git a/tests/unit/models/geojson-feature-test.js b/tests/unit/models/geojson-feature-test.js index 90e935f4d..5776c3188 100644 --- a/tests/unit/models/geojson-feature-test.js +++ b/tests/unit/models/geojson-feature-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Model | geojson feature', function(hooks) { +module('Unit | Model | geojson feature', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const store = this.owner.lookup('service:store'); const model = store.createRecord('carto-geojson-feature', {}); assert.ok(model); diff --git a/tests/unit/models/lot-test.js b/tests/unit/models/lot-test.js deleted file mode 100644 index e03714b45..000000000 --- a/tests/unit/models/lot-test.js +++ /dev/null @@ -1,126 +0,0 @@ -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; -import { setupMirage } from 'ember-cli-mirage/test-support'; - -module('Unit | Model | lot', function(hooks) { - setupTest(hooks); - setupMirage(hooks); - - test('it generates correct links: BISWEB', async function(assert) { - this.server.create('lot', { - properties: { - cd: '1', - block: '1', - lot: '1', - borocode: '1', - }, - }); - - const model = await this.owner.lookup('service:store') - .findRecord('lot', 1); - - assert.equal(model.properties.biswebLink, 'http://a810-bisweb.nyc.gov/bisweb/PropertyBrowseByBBLServlet?allborough=1&allblock=1&alllot=1&go5=+GO+&requestid=0'); - }); - - test('it generates correct links: Community Profiles', async function(assert) { - this.server.create('lot', { - properties: { - cd: '104', - block: '1', - lot: '1', - borocode: '1', - }, - }); - - const model = await this.owner.lookup('service:store') - .findRecord('lot', 1); - - assert.equal(model.properties.fullCommunityDistrictURL, 'https://communityprofiles.planning.nyc.gov/manhattan/4'); - }); - - test('it generates correct links: Zoning District Tag Links', async function(assert) { - this.server.create('lot', { - properties: { - zonedist1: 'R8B', - }, - }); - - const model = await this.owner.lookup('service:store') - .findRecord('lot', 1); - - assert.equal(model.properties.zoneDistLinks.primaryzone1, 'https://www1.nyc.gov/site/planning/zoning/districts-tools/r8.page'); - }); - - test('it generates correct links: Digital Tax Map', async function(assert) { - this.server.create('lot', { - id: 1007650065, - properties: { - bbl: 1007650065, - }, - }); - - const model = await this.owner.lookup('service:store') - .findRecord('lot', 1007650065); - - assert.equal(model.properties.digitalTaxMapLink, 'http://maps.nyc.gov/taxmap/map.htm?searchType=BblSearch&featureTypeName=EVERY_BBL&featureName=1007650065'); - }); - - test('it generates correct links: Zoning Map', async function(assert) { - this.server.create('lot', { - id: 1, - properties: { - zonemap: '8d', - }, - }); - - const model = await this.owner.lookup('service:store') - .findRecord('lot', 1); - - assert.equal(model.properties.zoningMapLink, 'https://s-media.nyc.gov/agencies/dcp/assets/files/pdf/zoning/zoning-maps/map8d.pdf'); - }); - - test('it generates correct links: Historical Zoning Map', async function(assert) { - this.server.create('lot', { - id: 1, - properties: { - zonemap: '8d', - }, - }); - - const model = await this.owner.lookup('service:store') - .findRecord('lot', 1); - - assert.equal(model.properties.historicalZoningMapLink, 'https://s-media.nyc.gov/agencies/dcp/assets/files/pdf/zoning/zoning-maps/maps08d.pdf'); - }); - - test('it generates correct links: ACRIS', async function(assert) { - this.server.create('lot', { - id: 1, - properties: { - cd: '104', - block: '1', - lot: '1', - borocode: '1', - }, - }); - - const model = await this.owner.lookup('service:store') - .findRecord('lot', 1); - - assert.equal(model.properties.ACRISLink, 'http://a836-acris.nyc.gov/bblsearch/bblsearch.asp?borough=1&block=1&lot=1'); - }); - - test('it generates correct links: Council', async function(assert) { - this.server.create('lot', { - id: 1, - properties: { - council: 'peanut-butter', - }, - }); - - const model = await this.owner.lookup('service:store') - .findRecord('lot', 1); - - assert.equal(model.properties.councilLink, 'https://council.nyc.gov/district-peanut-butter/'); - }); -}); diff --git a/tests/unit/models/source-test.js b/tests/unit/models/source-test.js index d5f431816..ab1ae3492 100644 --- a/tests/unit/models/source-test.js +++ b/tests/unit/models/source-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Model | source', function(hooks) { +module('Unit | Model | source', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const store = this.owner.lookup('service:store'); const model = store.createRecord('source', {}); assert.ok(model); diff --git a/tests/unit/routes/about-test.js b/tests/unit/routes/about-test.js index 22b3c2673..dbd700f58 100644 --- a/tests/unit/routes/about-test.js +++ b/tests/unit/routes/about-test.js @@ -1,7 +1,7 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | about', function(hooks) { +module('Unit | Route | about', function (hooks) { setupTest(hooks); test('it exists', function (assert) { diff --git a/tests/unit/routes/application-test.js b/tests/unit/routes/application-test.js index 79b7535d3..9cf5aefd4 100644 --- a/tests/unit/routes/application-test.js +++ b/tests/unit/routes/application-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | application', function(hooks) { +module('Unit | Route | application', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { const route = this.owner.lookup('route:application'); assert.ok(route); }); diff --git a/tests/unit/routes/bbl-test.js b/tests/unit/routes/bbl-test.js index e1db74c22..98f437ede 100644 --- a/tests/unit/routes/bbl-test.js +++ b/tests/unit/routes/bbl-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | bbl', function(hooks) { +module('Unit | Route | bbl', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { const route = this.owner.lookup('route:bbl'); assert.ok(route); }); diff --git a/tests/unit/routes/bbox-test.js b/tests/unit/routes/bbox-test.js index d71b4bc3b..2ee423702 100644 --- a/tests/unit/routes/bbox-test.js +++ b/tests/unit/routes/bbox-test.js @@ -2,25 +2,25 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; import { GREATER_NYC_BBOX } from 'labs-zola/routes/bbox'; -module('Unit | Route | bbox', function(hooks) { +module('Unit | Route | bbox', function (hooks) { setupTest(hooks); - test('it validates valid bbox in NYC', function(assert) { + test('it validates valid bbox in NYC', function (assert) { const route = this.owner.lookup('route:bbox'); assert.ok(route.validateBounds([-73.9978, 40.5705, -73.9804, 40.5785])); }); - test('it rejects bbox containing non-number', function(assert) { + test('it rejects bbox containing non-number', function (assert) { const route = this.owner.lookup('route:bbox'); assert.notOk(route.validateBounds(['foo', 40.5705, -73.9804, 40.5785])); }); - test('it rejects bbox outside greater nyc', function(assert) { + test('it rejects bbox outside greater nyc', function (assert) { const route = this.owner.lookup('route:bbox'); - const badBbox = GREATER_NYC_BBOX.map(d => d - 10); + const badBbox = GREATER_NYC_BBOX.map((d) => d - 10); assert.notOk(route.validateBounds(badBbox)); }); }); diff --git a/tests/unit/routes/bookmarks-test.js b/tests/unit/routes/bookmarks-test.js index 2f69168a3..a1e025c14 100644 --- a/tests/unit/routes/bookmarks-test.js +++ b/tests/unit/routes/bookmarks-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | bookmarks', function(hooks) { +module('Unit | Route | bookmarks', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { const route = this.owner.lookup('route:bookmarks'); assert.ok(route); }); diff --git a/tests/unit/routes/data-test.js b/tests/unit/routes/data-test.js index 4bb71a058..3a871d141 100644 --- a/tests/unit/routes/data-test.js +++ b/tests/unit/routes/data-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | data', function(hooks) { +module('Unit | Route | data', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { const route = this.owner.lookup('route:data'); assert.ok(route); }); diff --git a/tests/unit/routes/features-test.js b/tests/unit/routes/features-test.js index 466f13c1f..013d56713 100644 --- a/tests/unit/routes/features-test.js +++ b/tests/unit/routes/features-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | features', function(hooks) { +module('Unit | Route | features', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { const route = this.owner.lookup('route:features'); assert.ok(route); }); diff --git a/tests/unit/routes/index-test.js b/tests/unit/routes/index-test.js index 46c142d68..edabb732a 100644 --- a/tests/unit/routes/index-test.js +++ b/tests/unit/routes/index-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | index', function(hooks) { +module('Unit | Route | index', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { const route = this.owner.lookup('route:index'); assert.ok(route); }); diff --git a/tests/unit/routes/legacy-redirects-test.js b/tests/unit/routes/legacy-redirects-test.js index a13701408..a928d5b3d 100644 --- a/tests/unit/routes/legacy-redirects-test.js +++ b/tests/unit/routes/legacy-redirects-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | legacy-redirects', function(hooks) { +module('Unit | Route | legacy-redirects', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { const route = this.owner.lookup('route:legacy-redirects'); assert.ok(route); }); diff --git a/tests/unit/routes/map-feature/commercial-overlay-test.js b/tests/unit/routes/map-feature/commercial-overlay-test.js index d900f055d..070dbe151 100644 --- a/tests/unit/routes/map-feature/commercial-overlay-test.js +++ b/tests/unit/routes/map-feature/commercial-overlay-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | map-feature/commercial-overlay', function(hooks) { +module('Unit | Route | map-feature/commercial-overlay', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { const route = this.owner.lookup('route:map-feature/commercial-overlay'); assert.ok(route); }); diff --git a/tests/unit/routes/map-feature/lot-test.js b/tests/unit/routes/map-feature/lot-test.js index c65fbd857..c94b807aa 100644 --- a/tests/unit/routes/map-feature/lot-test.js +++ b/tests/unit/routes/map-feature/lot-test.js @@ -1,7 +1,7 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | lot', function(hooks) { +module('Unit | Route | lot', function (hooks) { setupTest(hooks); test('it exists', function (assert) { diff --git a/tests/unit/routes/map-feature/special-purpose-district-test.js b/tests/unit/routes/map-feature/special-purpose-district-test.js index 4ef6bf4f2..e3309c0a8 100644 --- a/tests/unit/routes/map-feature/special-purpose-district-test.js +++ b/tests/unit/routes/map-feature/special-purpose-district-test.js @@ -1,11 +1,13 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | map-feature/special-purpose-district', function(hooks) { +module('Unit | Route | map-feature/special-purpose-district', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { - const route = this.owner.lookup('route:map-feature/special-purpose-district'); + test('it exists', function (assert) { + const route = this.owner.lookup( + 'route:map-feature/special-purpose-district' + ); assert.ok(route); }); }); diff --git a/tests/unit/routes/map-feature/special-purpose-subdistrict-test.js b/tests/unit/routes/map-feature/special-purpose-subdistrict-test.js index 115bbe619..3a0f6de4e 100644 --- a/tests/unit/routes/map-feature/special-purpose-subdistrict-test.js +++ b/tests/unit/routes/map-feature/special-purpose-subdistrict-test.js @@ -1,11 +1,16 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | map-feature/special-purpose-subdistrict', function(hooks) { - setupTest(hooks); +module( + 'Unit | Route | map-feature/special-purpose-subdistrict', + function (hooks) { + setupTest(hooks); - test('it exists', function(assert) { - const route = this.owner.lookup('route:map-feature/special-purpose-subdistrict'); - assert.ok(route); - }); -}); + test('it exists', function (assert) { + const route = this.owner.lookup( + 'route:map-feature/special-purpose-subdistrict' + ); + assert.ok(route); + }); + } +); diff --git a/tests/unit/routes/map-feature/zoning-district-test.js b/tests/unit/routes/map-feature/zoning-district-test.js index 39ff7f691..8b344a411 100644 --- a/tests/unit/routes/map-feature/zoning-district-test.js +++ b/tests/unit/routes/map-feature/zoning-district-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | map-feature/zoning-district', function(hooks) { +module('Unit | Route | map-feature/zoning-district', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { const route = this.owner.lookup('route:map-feature/zoning-district'); assert.ok(route); }); diff --git a/tests/unit/routes/map-feature/zoning-map-amendment-test.js b/tests/unit/routes/map-feature/zoning-map-amendment-test.js index 55c7d98df..fc62aa6e1 100644 --- a/tests/unit/routes/map-feature/zoning-map-amendment-test.js +++ b/tests/unit/routes/map-feature/zoning-map-amendment-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | map-feature/zoning-map-amendment', function(hooks) { +module('Unit | Route | map-feature/zoning-map-amendment', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { const route = this.owner.lookup('route:map-feature/zoning-map-amendment'); assert.ok(route); }); diff --git a/tests/unit/serializers/bookmark-test.js b/tests/unit/serializers/bookmark-test.js index 54ed44bde..2a39e7300 100644 --- a/tests/unit/serializers/bookmark-test.js +++ b/tests/unit/serializers/bookmark-test.js @@ -3,12 +3,14 @@ import { setupTest } from 'ember-qunit'; import { run } from '@ember/runloop'; -module('Unit | Serializer | bookmark', function(hooks) { +module('Unit | Serializer | bookmark', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it serializes records', function(assert) { - const record = run(() => this.owner.lookup('service:store').createRecord('bookmark')); + test('it serializes records', function (assert) { + const record = run(() => + this.owner.lookup('service:store').createRecord('bookmark') + ); const serializedRecord = record.serialize(); diff --git a/tests/unit/serializers/geojson-feature-test.js b/tests/unit/serializers/geojson-feature-test.js index ba69edceb..855867720 100644 --- a/tests/unit/serializers/geojson-feature-test.js +++ b/tests/unit/serializers/geojson-feature-test.js @@ -1,18 +1,18 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Serializer | geojson feature', function(hooks) { +module('Unit | Serializer | geojson feature', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const store = this.owner.lookup('service:store'); const serializer = store.serializerFor('carto-geojson-feature'); assert.ok(serializer); }); - test('it serializes records', function(assert) { + test('it serializes records', function (assert) { const store = this.owner.lookup('service:store'); const record = store.createRecord('carto-geojson-feature', {}); diff --git a/tests/unit/serializers/layer-group-test.js b/tests/unit/serializers/layer-group-test.js index 0d4a79d97..8c61e1b18 100644 --- a/tests/unit/serializers/layer-group-test.js +++ b/tests/unit/serializers/layer-group-test.js @@ -1,18 +1,18 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Serializer | layer group', function(hooks) { +module('Unit | Serializer | layer group', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const store = this.owner.lookup('service:store'); const serializer = store.serializerFor('layer-group'); assert.ok(serializer); }); - test('it serializes records', function(assert) { + test('it serializes records', function (assert) { const store = this.owner.lookup('service:store'); const record = store.createRecord('layer-group', {}); diff --git a/tests/unit/serializers/layer-test.js b/tests/unit/serializers/layer-test.js index 253498df3..23ec1580d 100644 --- a/tests/unit/serializers/layer-test.js +++ b/tests/unit/serializers/layer-test.js @@ -1,18 +1,18 @@ import { module, skip } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Serializer | layer', function(hooks) { +module('Unit | Serializer | layer', function (hooks) { setupTest(hooks); // Replace this with your real tests. - skip('it exists', function(assert) { + skip('it exists', function (assert) { const store = this.owner.lookup('service:store'); const serializer = store.serializerFor('layer'); assert.ok(serializer); }); - skip('it serializes records', function(assert) { + skip('it serializes records', function (assert) { const store = this.owner.lookup('service:store'); const record = store.createRecord('layer', {}); diff --git a/tests/unit/serializers/lot-test.js b/tests/unit/serializers/lot-test.js index d2b4a53e9..27117bb3a 100644 --- a/tests/unit/serializers/lot-test.js +++ b/tests/unit/serializers/lot-test.js @@ -1,18 +1,18 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Serializer | lot', function(hooks) { +module('Unit | Serializer | lot', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const store = this.owner.lookup('service:store'); const serializer = store.serializerFor('lot'); assert.ok(serializer); }); - test('it serializes records', function(assert) { + test('it serializes records', function (assert) { const store = this.owner.lookup('service:store'); const record = store.createRecord('lot', {}); diff --git a/tests/unit/serializers/source-test.js b/tests/unit/serializers/source-test.js index cc85d0982..09e969980 100644 --- a/tests/unit/serializers/source-test.js +++ b/tests/unit/serializers/source-test.js @@ -1,18 +1,18 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Serializer | source', function(hooks) { +module('Unit | Serializer | source', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const store = this.owner.lookup('service:store'); const serializer = store.serializerFor('source'); assert.ok(serializer); }); - test('it serializes records', function(assert) { + test('it serializes records', function (assert) { const store = this.owner.lookup('service:store'); const record = store.createRecord('source', {}); diff --git a/tests/unit/services/fastboot-test.js b/tests/unit/services/fastboot-test.js index cc71044c4..7272114eb 100644 --- a/tests/unit/services/fastboot-test.js +++ b/tests/unit/services/fastboot-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Service | fastboot', function(hooks) { +module('Unit | Service | fastboot', function (hooks) { setupTest(hooks); // TODO: Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const service = this.owner.lookup('service:fastboot'); assert.ok(service); }); diff --git a/tests/unit/services/main-map-test.js b/tests/unit/services/main-map-test.js index b21fd8a38..94f51b81c 100644 --- a/tests/unit/services/main-map-test.js +++ b/tests/unit/services/main-map-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Service | main map', function(hooks) { +module('Unit | Service | main map', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const service = this.owner.lookup('service:main-map'); assert.ok(service); }); diff --git a/tests/unit/services/print-test.js b/tests/unit/services/print-test.js index 6e65103a7..ec3ba06b1 100644 --- a/tests/unit/services/print-test.js +++ b/tests/unit/services/print-test.js @@ -1,35 +1,67 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Service | print', function(hooks) { +module('Unit | Service | print', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const service = this.owner.lookup('service:print'); assert.ok(service); }); - test('printViewHiddenAreas computed property returns correct classes', function(assert) { + test('printViewHiddenAreas computed property returns correct classes', function (assert) { const printSvc = this.owner.lookup('service:print'); - assert.equal(printSvc.printViewHiddenAreas, '', 'printViewHiddenAreas default value is okay'); + assert.equal( + printSvc.printViewHiddenAreas, + '', + 'printViewHiddenAreas default value is okay' + ); printSvc.set('printViewShowMap', false); printSvc.set('printViewShowLegend', false); - assert.equal(printSvc.printViewHiddenAreas, 'no-map no-legend', 'printViewHiddenAreas observes changes to ShowMap and ShowLegend'); + assert.equal( + printSvc.printViewHiddenAreas, + 'no-map no-legend', + 'printViewHiddenAreas observes changes to ShowMap and ShowLegend' + ); printSvc.set('printViewShowContent', false); - assert.equal(printSvc.printViewHiddenAreas, 'no-map no-legend no-content', 'printViewHiddenAreas observes changes to ShowContent, too'); + assert.equal( + printSvc.printViewHiddenAreas, + 'no-map no-legend no-content', + 'printViewHiddenAreas observes changes to ShowContent, too' + ); }); - test('printViewClasses computed property returns correct classes', function(assert) { + test('printViewClasses computed property returns correct classes', function (assert) { const printSvc = this.owner.lookup('service:print'); - assert.equal(printSvc.printViewClasses, '', 'printViewClasses is blank when print disabled'); + assert.equal( + printSvc.printViewClasses, + '', + 'printViewClasses is blank when print disabled' + ); printSvc.set('enabled', true); - assert.equal(printSvc.printViewClasses, 'paper letter portrait ', 'printViewClasses default value is okay'); + assert.equal( + printSvc.printViewClasses, + 'paper letter portrait ', + 'printViewClasses default value is okay' + ); printSvc.set('printViewOrientation', 'landscape'); - assert.equal(printSvc.printViewClasses, 'paper letter landscape ', 'printViewClasses observes changes to printViewOrientation'); + assert.equal( + printSvc.printViewClasses, + 'paper letter landscape ', + 'printViewClasses observes changes to printViewOrientation' + ); printSvc.set('printViewPaperSize', 'tabloid'); - assert.equal(printSvc.printViewClasses, 'paper tabloid landscape ', 'printViewClasses observes changes to printViewPaperSize'); + assert.equal( + printSvc.printViewClasses, + 'paper tabloid landscape ', + 'printViewClasses observes changes to printViewPaperSize' + ); printSvc.set('printViewShowContent', false); - assert.equal(printSvc.printViewClasses, 'paper tabloid landscape no-content', 'printViewClasses observes changes to printViewHiddenAreas'); + assert.equal( + printSvc.printViewClasses, + 'paper tabloid landscape no-content', + 'printViewClasses observes changes to printViewHiddenAreas' + ); }); }); diff --git a/tests/unit/services/store-test.js b/tests/unit/services/store-test.js index 20fb3ae5f..c86ae11c7 100644 --- a/tests/unit/services/store-test.js +++ b/tests/unit/services/store-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Service | store', function(hooks) { +module('Unit | Service | store', function (hooks) { setupTest(hooks); // Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { const service = this.owner.lookup('service:store'); assert.ok(service); }); diff --git a/tests/unit/utils/bbl-demux-test.js b/tests/unit/utils/bbl-demux-test.js index 0071bffbc..10a08d296 100644 --- a/tests/unit/utils/bbl-demux-test.js +++ b/tests/unit/utils/bbl-demux-test.js @@ -1,9 +1,9 @@ import bblDemux from 'labs-zola/utils/bbl-demux'; import { module, test } from 'qunit'; -module('Unit | Utility | bbl demux', function() { +module('Unit | Utility | bbl demux', function () { // Replace this with your real tests. - test('it works', function(assert) { + test('it works', function (assert) { const result = bblDemux(); assert.ok(result); }); diff --git a/tests/unit/utils/track-event-test.js b/tests/unit/utils/track-event-test.js index 431efb778..fec7dd93e 100644 --- a/tests/unit/utils/track-event-test.js +++ b/tests/unit/utils/track-event-test.js @@ -1,9 +1,9 @@ import trackEvent from 'labs-zola/utils/track-event'; import { module, test } from 'qunit'; -module('Unit | Utility | track event', function() { +module('Unit | Utility | track event', function () { // Replace this with your real tests. - test('it works', function(assert) { + test('it works', function (assert) { const result = trackEvent(); assert.ok(result); }); diff --git a/vendor/.gitkeep b/vendor/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/yarn.lock b/yarn.lock index 561af009f..bfa8623d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,13 +15,6 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" @@ -30,12 +23,20 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" +"@babel/code-frame@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" + integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA== + dependencies: + "@babel/highlight" "^7.22.10" + chalk "^2.4.2" + "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== -"@babel/core@^7.0.0", "@babel/core@^7.1.6", "@babel/core@^7.12.0", "@babel/core@^7.13.8", "@babel/core@^7.16.7", "@babel/core@^7.3.4": +"@babel/core@^7.0.0", "@babel/core@^7.12.0", "@babel/core@^7.16.7", "@babel/core@^7.3.4": version "7.22.17" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.17.tgz#2f9b0b395985967203514b24ee50f9fd0639c866" integrity sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ== @@ -56,15 +57,67 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/eslint-parser@^7.18.2": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34" - integrity sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg== +"@babel/core@^7.16.10", "@babel/core@^7.18.6", "@babel/core@^7.21.0": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35" + integrity sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.10" + "@babel/helper-module-transforms" "^7.22.9" + "@babel/helpers" "^7.22.10" + "@babel/parser" "^7.22.10" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.10" + "@babel/types" "^7.22.10" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.1" + +"@babel/core@^7.20.2": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.0.tgz#f8259ae0e52a123eb40f552551e647b506a94d83" + integrity sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helpers" "^7.23.0" + "@babel/parser" "^7.23.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/eslint-parser@^7.21.3": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.10.tgz#bfdf3d1b32ad573fe7c1c3447e0b485e3a41fd09" + integrity sha512-0J8DNPRXQRLeR9rPaUMM3fA+RbixjnVLe/MRMYCkp3hzgsSuxCHQ8NN8xQG1wIHKJ4a1DTROTvFJdW+B5/eOsg== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" semver "^6.3.1" +"@babel/generator@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" + integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== + dependencies: + "@babel/types" "^7.22.10" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/generator@^7.22.15", "@babel/generator@^7.4.0": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339" @@ -75,6 +128,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== + dependencies: + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -100,7 +163,18 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.5.5", "@babel/helper-create-class-features-plugin@^7.8.3": +"@babel/helper-compilation-targets@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" + integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.5" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== @@ -115,6 +189,21 @@ "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz#dd2612d59eac45588021ac3d6fa976d08f4e95a3" + integrity sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" @@ -135,6 +224,11 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" @@ -148,6 +242,14 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -162,7 +264,14 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5", "@babel/helper-module-imports@^7.8.3": +"@babel/helper-module-imports@^7.16.7": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== @@ -180,6 +289,17 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.15" +"@babel/helper-module-transforms@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" + integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -217,7 +337,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== @@ -241,11 +361,21 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044" integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-validator-option@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== +"@babel/helper-validator-option@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" + integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== + "@babel/helper-wrap-function@^7.22.17": version "7.22.17" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.17.tgz#222ac3ff9cc8f9b617cc1e5db75c0b538e722801" @@ -255,6 +385,15 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.17" +"@babel/helpers@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.10.tgz#ae6005c539dfbcb5cd71fb51bfc8a52ba63bc37a" + integrity sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw== + dependencies: + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.10" + "@babel/types" "^7.22.10" + "@babel/helpers@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1" @@ -264,7 +403,25 @@ "@babel/traverse" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.22.13": +"@babel/helpers@^7.23.0": + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.1.tgz#44e981e8ce2b9e99f8f0b703f3326a4636c16d15" + integrity sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" + +"@babel/highlight@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7" + integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/highlight@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== @@ -273,16 +430,26 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@7.7.5", "@babel/parser@^7.7.0": +"@babel/parser@7.7.5": version "7.7.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.5.tgz#cbf45321619ac12d83363fcf9c94bb67fa646d71" integrity sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig== +"@babel/parser@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55" + integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ== + "@babel/parser@^7.22.15", "@babel/parser@^7.22.16", "@babel/parser@^7.4.3", "@babel/parser@^7.4.5": version "7.22.16" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95" integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA== +"@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" @@ -299,7 +466,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.22.15" -"@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.16.5", "@babel/plugin-proposal-class-properties@^7.16.7": +"@babel/plugin-proposal-class-properties@^7.16.5", "@babel/plugin-proposal-class-properties@^7.16.7": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -318,22 +485,16 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/plugin-syntax-decorators" "^7.22.10" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.6.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== +"@babel/plugin-proposal-decorators@^7.18.6", "@babel/plugin-proposal-decorators@^7.21.0": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.10.tgz#d6a8c3a9018e1b13e6647f869c5ea56ff2b585d4" + integrity sha512-KxN6TqZzcFi4uD3UifqXElBTBNLAEH1l3vzMQj6JwJZbL2sZlThxSViOKCYY+4Ah4V4JhQ95IVB7s/Y6SJSlMQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.22.10" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/plugin-syntax-decorators" "^7.22.10" "@babel/plugin-proposal-private-methods@^7.16.5": version "7.18.6" @@ -348,7 +509,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-private-property-in-object@^7.16.5", "@babel/plugin-proposal-private-property-in-object@^7.18.6": +"@babel/plugin-proposal-private-property-in-object@^7.16.5": version "7.21.11" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== @@ -379,7 +540,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.22.10": +"@babel/plugin-syntax-decorators@^7.16.7", "@babel/plugin-syntax-decorators@^7.22.10": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz#7d83ea04d893c442b78ebf4c3cbac59a7211deff" integrity sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ== @@ -484,7 +645,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.2.0", "@babel/plugin-syntax-typescript@^7.22.5", "@babel/plugin-syntax-typescript@^7.8.3": +"@babel/plugin-syntax-typescript@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== @@ -532,7 +693,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.15", "@babel/plugin-transform-block-scoping@^7.8.3": +"@babel/plugin-transform-block-scoping@^7.20.2": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" + integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.20.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa" + integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz#494eb82b87b5f8b1d8f6f28ea74078ec0a10a841" integrity sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw== @@ -671,7 +846,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.12.1", "@babel/plugin-transform-modules-amd@^7.13.0", "@babel/plugin-transform-modules-amd@^7.22.5": +"@babel/plugin-transform-modules-amd@^7.13.0", "@babel/plugin-transform-modules-amd@^7.20.11", "@babel/plugin-transform-modules-amd@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== @@ -737,13 +912,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-assign@^7.8.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.22.5.tgz#290c1b9555dcea48bb2c29ad94237777600d04f9" - integrity sha512-iDhx9ARkXq4vhZ2CYOSnQXkmxkDgosLi3J8Z17mKz7LyzthtkdVchLD7WZ3aXeCuvJDOW3+1I5TpJmwIbF9MKQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-object-rest-spread@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" @@ -885,31 +1053,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" -"@babel/plugin-transform-typescript@~7.4.0": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.4.5.tgz#ab3351ba35307b79981993536c93ff8be050ba28" - integrity sha512-RPB/YeGr4ZrFKNwfuQRlMf2lxoCUaU01MTw39/OFE/RiL8HDjtn68BwEPft1P7JN4akyEmjGWAMNldOV7o9V2g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-typescript" "^7.2.0" - -"@babel/plugin-transform-typescript@~7.5.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.5.tgz#6d862766f09b2da1cb1f7d505fe2aedab6b7d4b8" - integrity sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.5.5" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-typescript" "^7.2.0" - -"@babel/plugin-transform-typescript@~7.8.0": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.7.tgz#48bccff331108a7b3a28c3a4adc89e036dc3efda" - integrity sha512-7O0UsPQVNKqpHeHLpfvOG4uXmlw+MOxYvUv6Otc9uH5SYMIxvF6eBdjkWvC3f9G+VXe0RsNExyAQBeTRug/wqQ== +"@babel/plugin-transform-typescript@^7.16.8": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.10.tgz#aadd98fab871f0bb5717bcc24c31aaaa455af923" + integrity sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A== dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-typescript" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.10" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.22.5" "@babel/plugin-transform-unicode-escapes@^7.22.10": version "7.22.10" @@ -950,7 +1102,7 @@ core-js "^2.6.5" regenerator-runtime "^0.13.4" -"@babel/preset-env@^7.10.2", "@babel/preset-env@^7.16.5", "@babel/preset-env@^7.16.7": +"@babel/preset-env@^7.16.5", "@babel/preset-env@^7.16.7": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.15.tgz#142716f8e00bc030dae5b2ac6a46fbd8b3e18ff8" integrity sha512-tZFHr54GBkHk6hQuVA8w4Fmq+MSPsfvMG0vPnOYyTnJpyfMqybL8/MbNCPRT9zc2KBO2pe4tq15g6Uno4Jpoag== @@ -1057,6 +1209,20 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.14.0": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" + integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.20.1": + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" + integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/runtime@^7.21.0", "@babel/runtime@^7.8.4": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8" @@ -1073,7 +1239,23 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.1.6", "@babel/traverse@^7.22.15", "@babel/traverse@^7.22.17", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": +"@babel/traverse@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.10.tgz#20252acb240e746d27c2e82b4484f199cf8141aa" + integrity sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig== + dependencies: + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.22.10" + "@babel/types" "^7.22.10" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.22.15", "@babel/traverse@^7.22.17", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5": version "7.22.17" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.17.tgz#b23c203ab3707e3be816043081b4a994fcacec44" integrity sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg== @@ -1089,7 +1271,23 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.1.6", "@babel/types@^7.12.13", "@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.5", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2": +"@babel/traverse@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.0.tgz#18196ddfbcf4ccea324b7f6d3ada00d8c5a99c53" + integrity sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.12.13", "@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.5", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.2": version "7.22.17" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.17.tgz#f753352c4610ffddf9c8bc6823f9ff03e2303eee" integrity sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg== @@ -1098,6 +1296,24 @@ "@babel/helper-validator-identifier" "^7.22.15" to-fast-properties "^2.0.0" +"@babel/types@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03" + integrity sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + to-fast-properties "^2.0.0" + +"@babel/types@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@bufbuild/protobuf@^1.0.0": version "1.3.1" resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-1.3.1.tgz#c4de66bacbe7ac97fe054e68314aeba6f45177f9" @@ -1111,131 +1327,154 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@ember-data/adapter@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-3.28.13.tgz#3b921365046a329f3eb1c72fc4964c6aff06e53b" - integrity sha512-AwLJTs+GvxX72vfP3edV0hoMLD9oPWJNbnqxakXVN9xGTuk6/TeGQLMrVU3222GCoMMNrJ357Nip7kZeFo4IdA== +"@csstools/css-parser-algorithms@^2.3.0": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz#ec4fc764ba45d2bb7ee2774667e056aa95003f3a" + integrity sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA== + +"@csstools/css-tokenizer@^2.1.1": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz#9d70e6dcbe94e44c7400a2929928db35c4de32b5" + integrity sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA== + +"@csstools/media-query-list-parser@^2.1.2": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz#0017f99945f6c16dd81a7aacf6821770933c3a5c" + integrity sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw== + +"@csstools/selector-specificity@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz#798622546b63847e82389e473fd67f2707d82247" + integrity sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g== + +"@ember-data/adapter@4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-4.11.3.tgz#1c9261873c1010b5104a2ad61c355adf1bb411ad" + integrity sha512-G7dbaPnYMW8VYxIT75KAkzax2mkWTs2TYxS7+qbphs6esXpO9Y/iNp5fTqLaACb9JqUypwEA/rlfC7/zkcGbBw== dependencies: - "@ember-data/private-build-infra" "3.28.13" - "@ember-data/store" "3.28.13" + "@ember-data/private-build-infra" "4.11.3" "@ember/edition-utils" "^1.2.0" - "@ember/string" "^3.0.0" - ember-cli-babel "^7.26.6" + "@embroider/macros" "^1.10.0" + ember-auto-import "^2.4.3" + ember-cli-babel "^7.26.11" ember-cli-test-info "^1.0.0" - ember-cli-typescript "^4.1.0" -"@ember-data/canary-features@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-3.28.13.tgz#59cd75b94bfff86f85affb42e66016c71f45f02e" - integrity sha512-fgpcB0wmtUjZeqcIKkfP/MclQjY5r8ft8YZhPlvQh2MIx+3d3nCNRXB6lEUdRdQphFEag2towONFEIsiOAgs3Q== +"@ember-data/canary-features@4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-4.11.3.tgz#0bc0f2ef4b00d6aec11182a19be7ed4fea65d17b" + integrity sha512-RTLY2N9t1SXr4e90VBKi+3PIitwjTMBU8BcEhnKovT//sGlywohHq7T36H6nJuITRtki3On9PpbJOhhQZuyAlQ== dependencies: - ember-cli-babel "^7.26.6" - ember-cli-typescript "^4.1.0" + "@embroider/macros" "^1.10.0" + ember-cli-babel "^7.26.11" -"@ember-data/debug@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-3.28.13.tgz#eb20779de83429f5d493d3c8e81ced468fa5974d" - integrity sha512-ofny/Grpqx1lM6KWy5q75/b2/B+zQ4B4Ynk7SrQ//sFvpX3gjuP8iN07SKTHSN07vedlC+7QNhNJdCQwyqK1Fg== +"@ember-data/debug@4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-4.11.3.tgz#423893e389daf39d478f1af246fa4cf127a42f73" + integrity sha512-3pA5u3qy+pjtwcoyMzs7WijRrSQz5z+Vgn9b5Y4cEOHn8loS9riLCMScnFaQT3HjxQgq+3NkNb52sJafHPzs4Q== dependencies: - "@ember-data/private-build-infra" "3.28.13" + "@ember-data/private-build-infra" "4.11.3" "@ember/edition-utils" "^1.2.0" - "@ember/string" "^3.0.0" - ember-cli-babel "^7.26.6" - ember-cli-test-info "^1.0.0" - ember-cli-typescript "^4.1.0" + "@embroider/macros" "^1.10.0" + ember-auto-import "^2.4.3" + ember-cli-babel "^7.26.11" -"@ember-data/model@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-3.28.13.tgz#50ac1bd5783e7cc51344767d5ff46f84198f4d1a" - integrity sha512-V5Hgzz5grNWTSrKGksY9xeOsTDLN/d3qsVMu26FWWHP5uqyWT0Cd4LSRpNxs14PsTFDcbrtGKaZv3YVksZfFEQ== +"@ember-data/model@4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-4.11.3.tgz#c5e54382cd3850bb07888cf8b6100e3a1e5f70da" + integrity sha512-nkDru5TZmOp4J1xp65D1bR3hBJ3u5KhKKfDpWeGnHW2YDCVUdLORRwW7vfrPnnXDIoJij42DwDVCiTY25Xhrqw== dependencies: - "@ember-data/canary-features" "3.28.13" - "@ember-data/private-build-infra" "3.28.13" - "@ember-data/store" "3.28.13" + "@ember-data/canary-features" "4.11.3" + "@ember-data/private-build-infra" "4.11.3" "@ember/edition-utils" "^1.2.0" - "@ember/string" "^3.0.0" - ember-cached-decorator-polyfill "^0.1.4" - ember-cli-babel "^7.26.6" + "@embroider/macros" "^1.10.0" + ember-auto-import "^2.4.3" + ember-cached-decorator-polyfill "^1.0.1" + ember-cli-babel "^7.26.11" ember-cli-string-utils "^1.1.0" ember-cli-test-info "^1.0.0" - ember-cli-typescript "^4.1.0" - ember-compatibility-helpers "^1.2.0" - inflection "~1.13.1" - -"@ember-data/private-build-infra@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.28.13.tgz#828a27e724240b1ef70ae5dd8ab8be1f61275929" - integrity sha512-8gT3/gnmbNgFIMVdHBpl3xFGJefJE26VUIidFHTF1/N1aumVUlEhnXH0BSPxvxTnFXz/klGSTOMs+sDsx3jw6A== - dependencies: - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@ember-data/canary-features" "3.28.13" + ember-compatibility-helpers "^1.2.6" + inflection "~2.0.0" + +"@ember-data/private-build-infra@4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-4.11.3.tgz#0868575885623e33215273348ff3fc67331209f7" + integrity sha512-bXFQMEegUc+vKn/vD7FmAkq7ECE0okZ2sbtv/0RXqYn7TLk44rvGzpqSUXUowpCaGI/87MmaW8JaZMMdqF9wuw== + dependencies: + "@babel/core" "^7.20.2" + "@babel/plugin-transform-block-scoping" "^7.20.2" + "@babel/runtime" "^7.20.1" + "@ember-data/canary-features" "4.11.3" "@ember/edition-utils" "^1.2.0" - babel-plugin-debug-macros "^0.3.3" + "@embroider/macros" "^1.10.0" + babel-import-util "^1.3.0" + babel-plugin-debug-macros "^0.3.4" babel-plugin-filter-imports "^4.0.0" babel6-plugin-strip-class-callcheck "^6.0.0" broccoli-debug "^0.6.5" broccoli-file-creator "^2.1.1" - broccoli-funnel "^3.0.3" + broccoli-funnel "^3.0.8" broccoli-merge-trees "^4.2.0" broccoli-rollup "^5.0.0" calculate-cache-key-for-tree "^2.0.0" - chalk "^4.0.0" - ember-cli-babel "^7.26.6" + chalk "^4.1.2" + ember-cli-babel "^7.26.11" ember-cli-path-utils "^1.0.0" ember-cli-string-utils "^1.1.0" - ember-cli-typescript "^4.1.0" - ember-cli-version-checker "^5.1.1" - esm "^3.2.25" + ember-cli-version-checker "^5.1.2" git-repo-info "^2.1.1" - glob "^7.1.6" + glob "^8.0.3" npm-git-info "^1.0.3" rimraf "^3.0.2" rsvp "^4.8.5" - semver "^7.1.3" + semver "^7.3.8" silent-error "^1.1.1" -"@ember-data/record-data@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/record-data/-/record-data-3.28.13.tgz#2bf169404732e126489d3b3a8dc6c0dfca8b5f5f" - integrity sha512-0qYOxQr901eZ0JoYVt/IiszZYuNefqO6yiwKw0VH2dmWhVniQSp+Da9YnoKN9U2KgR4NdxKiUs2j9ZLNZ+bH7g== +"@ember-data/record-data@4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@ember-data/record-data/-/record-data-4.11.3.tgz#18cb5edaa0511777458704b50a238658838c694e" + integrity sha512-8NmeEZJ7or354NLZJgibJ1FuhWL70H6G24tGSEIzM8IV7wr6TreIyaWODaW372QwamWYgFIpfnFwWt5MTlY/gw== dependencies: - "@ember-data/canary-features" "3.28.13" - "@ember-data/private-build-infra" "3.28.13" - "@ember-data/store" "3.28.13" + "@ember-data/canary-features" "4.11.3" + "@ember-data/private-build-infra" "4.11.3" "@ember/edition-utils" "^1.2.0" - ember-cli-babel "^7.26.6" - ember-cli-test-info "^1.0.0" - ember-cli-typescript "^4.1.0" + "@embroider/macros" "^1.10.0" + ember-auto-import "^2.4.3" + ember-cli-babel "^7.26.11" "@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== -"@ember-data/serializer@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-3.28.13.tgz#6dfa8ba17c0ea192313134643dbe56adf45a722a" - integrity sha512-BlYXi8ObH0B5G7QeWtkf9u8PrhdlfAxOAsOuOPZPCTzWsQlmyzV6M9KvBmIAvJtM2IQ3a5BX2o71eP6/7MJDUg== +"@ember-data/serializer@4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-4.11.3.tgz#3e54a68d1b36629b1d9af74fa8996ffc990fe7e6" + integrity sha512-Qnzrowinz14/onQfwd4TPwNG0sMTAwTWE0RajYo2fysF3CKyAua0nIzmFtXKx0CogD7TYd0C5xf6nMjFesT09Q== dependencies: - "@ember-data/private-build-infra" "3.28.13" - "@ember-data/store" "3.28.13" - ember-cli-babel "^7.26.6" + "@ember-data/private-build-infra" "4.11.3" + "@embroider/macros" "^1.10.0" + ember-auto-import "^2.4.3" + ember-cli-babel "^7.26.11" ember-cli-test-info "^1.0.0" - ember-cli-typescript "^4.1.0" -"@ember-data/store@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-3.28.13.tgz#be3c3fca03d155767af72422f6a3c6dcd6147be8" - integrity sha512-y1ddWLfR20l3NN9fNfIAFWCmREnC6hjKCZERDgkvBgZOCAKcs+6bVJGyMmKBcsp4W7kanqKn71tX7Y63jp+jXQ== +"@ember-data/store@4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-4.11.3.tgz#aeddd396af8668c49c2c33bc61c04424b0f4db41" + integrity sha512-ogwWy+VqMpkCGs4n30pzuB2vqv/dJRL6wdV3fdNKpXrDugffjuMPpLBQYF937qztDUZKxmnbWAZe5PbQOz8b1Q== dependencies: - "@ember-data/canary-features" "3.28.13" - "@ember-data/private-build-infra" "3.28.13" - "@ember/string" "^3.0.0" - "@glimmer/tracking" "^1.0.4" - ember-cached-decorator-polyfill "^0.1.4" - ember-cli-babel "^7.26.6" - ember-cli-path-utils "^1.0.0" - ember-cli-typescript "^4.1.0" + "@ember-data/canary-features" "4.11.3" + "@ember-data/private-build-infra" "4.11.3" + "@embroider/macros" "^1.10.0" + ember-auto-import "^2.4.3" + ember-cached-decorator-polyfill "^1.0.1" + ember-cli-babel "^7.26.11" + +"@ember-data/tracking@4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@ember-data/tracking/-/tracking-4.11.3.tgz#2eabdb73ffd81203cec2f4547d1deac6f03612d1" + integrity sha512-YZxFTMe2TBL8H8/GrnrvP7Wc/uuAijoSyiP2g6TMNRsL1e/3BWDT0EIl+B/5Wji+dchofY8iuMWfpY7VDvPIzA== + dependencies: + ember-cli-babel "^7.26.11" "@ember-decorators/component@^6.0.0": version "6.1.1" @@ -1253,23 +1492,13 @@ "@ember-decorators/utils" "^6.1.1" ember-cli-babel "^7.1.3" -"@ember-decorators/utils@^6.1.0", "@ember-decorators/utils@^6.1.1": +"@ember-decorators/utils@^6.1.1": version "6.1.1" resolved "https://registry.yarnpkg.com/@ember-decorators/utils/-/utils-6.1.1.tgz#6b619814942b4fb3747cfa9f540c9f05283d7c5e" integrity sha512-0KqnoeoLKb6AyoSU65TRF5T85wmS4uDn06oARddwNPxxf/lt5jQlh41uX3W7V/fWL9tPu8x1L1Vvpc80MN1+YA== dependencies: ember-cli-babel "^7.1.3" -"@ember-template-lint/todo-utils@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@ember-template-lint/todo-utils/-/todo-utils-10.0.0.tgz#085aafcf31ca04ba4d3a9460f088aed752b90ea8" - integrity sha512-US8VKnetBOl8KfKz+rXGsosz6rIETNwSz2F2frM8hIoJfF/d6ME1Iz1K7tPYZEE6SoKqZFlBs5XZPSmzRnabjA== - dependencies: - "@types/eslint" "^7.2.13" - fs-extra "^9.1.0" - slash "^3.0.0" - tslib "^2.2.0" - "@ember/edition-utils@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@ember/edition-utils/-/edition-utils-1.2.0.tgz#a039f542dc14c8e8299c81cd5abba95e2459cfa6" @@ -1299,7 +1528,7 @@ mkdirp "^1.0.4" silent-error "^1.1.1" -"@ember/render-modifiers@^2.0.4": +"@ember/render-modifiers@^2.0.4", "@ember/render-modifiers@^2.0.5": version "2.1.0" resolved "https://registry.yarnpkg.com/@ember/render-modifiers/-/render-modifiers-2.1.0.tgz#f4fff95a8b5cfbe947ec46644732d511711c5bf9" integrity sha512-LruhfoDv2itpk0fA0IC76Sxjcnq/7BC6txpQo40hOko8Dn6OxwQfxkPIbZGV0Cz7df+iX+VJrcYzNIvlc3w2EQ== @@ -1308,28 +1537,28 @@ ember-cli-babel "^7.26.11" ember-modifier-manager-polyfill "^1.2.0" -"@ember/string@^3.0.0": +"@ember/string@^3.0.1", "@ember/string@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@ember/string/-/string-3.1.1.tgz#0a5ac0d1e4925259e41d5c8d55ef616117d47ff0" integrity sha512-UbXJ+k3QOrYN4SRPHgXCqYIJ+yWWUg1+vr0H4DhdQPTy8LJfyqwZ2tc5uqpSSnEXE+/1KopHBE5J8GDagAg5cg== dependencies: ember-cli-babel "^7.26.6" -"@ember/test-helpers@^2.8.1": - version "2.9.4" - resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-2.9.4.tgz#985022e9ba05cfc918bcf08b77cbb355f85b723e" - integrity sha512-z+Qs1NYWyIVDmrY6WdmOS5mdG1lJ5CFfzh6dRhLfs9lq45deDaDrVNcaCYhnNeJZTvUBK2XR2SvPcZm0RloXdA== +"@ember/test-helpers@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-3.2.0.tgz#3541bd815bd214b7f1686125f0d6f9eb5bf1488d" + integrity sha512-3yWpPsK5O77tUdCwW3HayrAcdlRitIRYMvLIG69Pkal1JMIGdNYVTvJ2R1lenhQh2syd/WFmGM07vQuDAtotQw== dependencies: - "@ember/test-waiters" "^3.0.0" + "@ember/test-waiters" "^3.0.2" "@embroider/macros" "^1.10.0" - "@embroider/util" "^1.9.0" + "@simple-dom/interface" "^1.4.0" broccoli-debug "^0.6.5" broccoli-funnel "^3.0.8" + ember-auto-import "^2.6.0" ember-cli-babel "^7.26.11" - ember-cli-htmlbars "^6.1.1" - ember-destroyable-polyfill "^2.0.3" + ember-cli-htmlbars "^6.2.0" -"@ember/test-waiters@^3.0.0", "@ember/test-waiters@^3.0.2": +"@ember/test-waiters@^3.0.2": version "3.0.2" resolved "https://registry.yarnpkg.com/@ember/test-waiters/-/test-waiters-3.0.2.tgz#5b950c580a1891ed1d4ee64f9c6bacf49a15ea6f" integrity sha512-H8Q3Xy9rlqhDKnQpwt2pzAYDouww4TZIGSI1pZJhM7mQIGufQKuB0ijzn/yugA6Z+bNdjYp1HioP8Y4hn2zazQ== @@ -1339,19 +1568,16 @@ ember-cli-version-checker "^5.1.2" semver "^7.3.5" -"@embroider/macros@^0.41.0": - version "0.41.0" - resolved "https://registry.yarnpkg.com/@embroider/macros/-/macros-0.41.0.tgz#3e78b6f388d7229906abf4c75edfff8bb0208aca" - integrity sha512-QISzwEEfLsskZeL0jyZDs1RoQSotwBWj+4upTogNHuxQP5j/9H3IMG/3QB1gh8GEpbudATb/cS4NDYK3UBxufw== +"@embroider/addon-shim@^1.8.4": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@embroider/addon-shim/-/addon-shim-1.8.6.tgz#b676991b4fa32c3a98dc7db7dc6cd655029c3f09" + integrity sha512-siC9kP78uucEbpDcVyxjkwa76pcs5rVzDVpWO4PDc9EAXRX+pzmUuSTLAK3GztUwx7/PWhz1BenAivqdSvSgfg== dependencies: - "@embroider/shared-internals" "0.41.0" - assert-never "^1.1.0" - ember-cli-babel "^7.23.0" - lodash "^4.17.10" - resolve "^1.8.1" - semver "^7.3.2" + "@embroider/shared-internals" "^2.2.3" + broccoli-funnel "^3.0.8" + semver "^7.3.8" -"@embroider/macros@^0.50.0 || ^1.0.0", "@embroider/macros@^1.0.0", "@embroider/macros@^1.10.0", "@embroider/macros@^1.13.0", "@embroider/macros@^1.2.0", "@embroider/macros@^1.8.0": +"@embroider/macros@^0.50.0 || ^1.0.0", "@embroider/macros@^1.0.0", "@embroider/macros@^1.10.0", "@embroider/macros@^1.12.0", "@embroider/macros@^1.8.0": version "1.13.1" resolved "https://registry.yarnpkg.com/@embroider/macros/-/macros-1.13.1.tgz#aee17e5af0e0086bd36873bdb4e49ea346bab3fa" integrity sha512-4htraP/rNIht8uCxXoc59Bw2EsBFfc4YUQD9XSpzJ4xUr1V0GQf9wL/noeSuYSxIhwRfZOErnJhsdyf1hH+I/A== @@ -1365,20 +1591,21 @@ resolve "^1.20.0" semver "^7.3.2" -"@embroider/shared-internals@0.41.0": - version "0.41.0" - resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-0.41.0.tgz#2553f026d4f48ea1fd11235501feb63bf49fa306" - integrity sha512-fiqUVB6cfh2UBEFE4yhT5EzagkZ1Q26+OhBV0nJszFEJZx4DqVIb3pxSSZ8P+HhpxuJsQ2XpMA/j02ZPFZfbdQ== +"@embroider/macros@^1.13.0", "@embroider/macros@^1.8.3": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@embroider/macros/-/macros-1.13.2.tgz#07dda11313a2539f403404881b729e622a80ca17" + integrity sha512-AUgJ71xG8kjuTx8XB1AQNBiebJuXRfhcHr318dCwnQz9VRXdYSnEEqf38XRvGYIoCvIyn/3c72LrSwzaJqknOA== dependencies: - ember-rfc176-data "^0.3.17" - fs-extra "^7.0.1" - lodash "^4.17.10" - pkg-up "^3.1.0" - resolve-package-path "^1.2.2" + "@embroider/shared-internals" "2.5.0" + assert-never "^1.2.1" + babel-import-util "^2.0.0" + ember-cli-babel "^7.26.6" + find-up "^5.0.0" + lodash "^4.17.21" + resolve "^1.20.0" semver "^7.3.2" - typescript-memoize "^1.0.0-alpha.3" -"@embroider/shared-internals@2.4.0", "@embroider/shared-internals@^2.0.0": +"@embroider/shared-internals@2.4.0", "@embroider/shared-internals@^2.0.0", "@embroider/shared-internals@^2.2.3": version "2.4.0" resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-2.4.0.tgz#0e9fdb0b2df9bad45fab8c54cbb70d8a2cbf01fc" integrity sha512-pFE05ebenWMC9XAPRjadYCXXb6VmqjkhYN5uqkhPo+VUmMHnx7sZYYxqGjxfVuhC/ghS/BNlOffOCXDOoE7k7g== @@ -1393,12 +1620,13 @@ semver "^7.3.5" typescript-memoize "^1.0.1" -"@embroider/shared-internals@^1.0.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-1.8.3.tgz#52d868dc80016e9fe983552c0e516f437bf9b9f9" - integrity sha512-N5Gho6Qk8z5u+mxLCcMYAoQMbN4MmH+z2jXwQHVs859bxuZTxwF6kKtsybDAASCtd2YGxEmzcc1Ja/wM28824w== +"@embroider/shared-internals@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-2.5.0.tgz#4a0b5127c589718fae60fc22f81374ed558b944a" + integrity sha512-7qzrb7GVIyNqeY0umxoeIvjDC+ay1b+wb2yCVuYTUYrFfLAkLEy9FNI3iWCi3RdQ9OFjgcAxAnwsAiPIMZZ3pQ== dependencies: - babel-import-util "^1.1.0" + babel-import-util "^2.0.0" + debug "^4.3.2" ember-rfc176-data "^0.3.17" fs-extra "^9.1.0" js-string-escape "^1.0.1" @@ -1407,7 +1635,7 @@ semver "^7.3.5" typescript-memoize "^1.0.1" -"@embroider/util@^0.39.1 || ^0.40.0 || ^0.41.0 || ^1.0.0", "@embroider/util@^1.0.0", "@embroider/util@^1.2.0", "@embroider/util@^1.9.0": +"@embroider/util@^0.39.1 || ^0.40.0 || ^0.41.0 || ^1.0.0", "@embroider/util@^1.11.0": version "1.12.0" resolved "https://registry.yarnpkg.com/@embroider/util/-/util-1.12.0.tgz#4b7828650b55f8498f1e78bb63e27e77835e926f" integrity sha512-P4M1QADEH9ceIYC9mwHeV+6DDgEIQQYFfZi728nVKqTAxakXoiLgu/BCyQmEGyow9fYEPYaC1boDCZxW2JQAXg== @@ -1416,71 +1644,89 @@ broccoli-funnel "^3.0.5" ember-cli-babel "^7.26.11" -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.6.1": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" + integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== + +"@eslint/eslintrc@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" + js-yaml "^4.1.0" + minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@fortawesome/ember-fontawesome@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@fortawesome/ember-fontawesome/-/ember-fontawesome-0.3.0.tgz#2cde1f130a10aa5e284c243eca7c3658a1a3e6f7" - integrity sha512-EtQRuX7Z6rsWG8W7JmJg0qOq9ooYnlVUn3kMgQ+54oegFrAtralpNnZ7S7U5LhQZohrlo8UIlIdcfpNWKvbR2g== +"@eslint/js@^8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.47.0.tgz#5478fdf443ff8158f9de171c704ae45308696c7d" + integrity sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og== + +"@fortawesome/ember-fontawesome@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@fortawesome/ember-fontawesome/-/ember-fontawesome-1.0.1.tgz#4a6729fdfe39f94dbc53fc8a6edf8b91c49a476b" + integrity sha512-t/mkz2K6H2xriD9RPzQJNOpDeqOng3vdCW1V8PmA2/f9VnqqBHGuVT2C5Rs5UIo0nHa9WOvdbkI8T0LE7IzlIA== dependencies: - "@fortawesome/fontawesome-svg-core" "^1.2.0" + "@fortawesome/fontawesome-svg-core" "^6.2.0" + "@rollup/plugin-node-resolve" "^15.1.0" broccoli-file-creator "^2.1.1" broccoli-merge-trees "^4.2.0" broccoli-plugin "^4.0.3" - broccoli-rollup "^4.1.1" + broccoli-rollup "^5.0.0" broccoli-source "^3.0.0" camel-case "^4.1.1" ember-ast-helpers "0.3.5" + ember-auto-import "^2.3.0" ember-cli-babel "^7.26.6" ember-cli-htmlbars "^5.7.1" - ember-get-config "^1.0.0" + ember-get-config "^2.0.0" find-yarn-workspace-root "^2.0.0" glob "^7.1.2" - rollup-plugin-node-resolve "^5.2.0" - -"@fortawesome/fontawesome-common-types@^0.2.36": - version "0.2.36" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz#b44e52db3b6b20523e0c57ef8c42d315532cb903" - integrity sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg== -"@fortawesome/fontawesome-common-types@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.3.0.tgz#949995a05c0d8801be7e0a594f775f1dbaa0d893" - integrity sha512-CA3MAZBTxVsF6SkfkHXDerkhcQs0QPofy43eFdbWJJkZiq3SfiaH1msOkac59rQaqto5EqWnASboY1dBuKen5w== +"@fortawesome/fontawesome-common-types@6.4.2": + version "6.4.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz#1766039cad33f8ad87f9467b98e0d18fbc8f01c5" + integrity sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA== -"@fortawesome/fontawesome-svg-core@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.3.0.tgz#343fac91fa87daa630d26420bfedfba560f85885" - integrity sha512-UIL6crBWhjTNQcONt96ExjUnKt1D68foe3xjEensLDclqQ6YagwCRYVQdrp/hW0ALRp/5Fv/VKw+MqTUWYYvPg== +"@fortawesome/fontawesome-svg-core@^6.2.0": + version "6.4.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz#37f4507d5ec645c8b50df6db14eced32a6f9be09" + integrity sha512-gjYDSKv3TrM2sLTOKBc5rH9ckje8Wrwgx1CxAPbN5N3Fm4prfi7NsJVWd1jklp7i5uSCVwhZS5qlhMXqLrpAIg== dependencies: - "@fortawesome/fontawesome-common-types" "^0.3.0" + "@fortawesome/fontawesome-common-types" "6.4.2" -"@fortawesome/free-regular-svg-icons@^5.15.3": - version "5.15.4" - resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.4.tgz#b97edab436954333bbeac09cfc40c6a951081a02" - integrity sha512-9VNNnU3CXHy9XednJ3wzQp6SwNwT3XaM26oS4Rp391GsxVYA+0oDR2J194YCIWf7jNRCYKjUCOduxdceLrx+xw== +"@fortawesome/free-regular-svg-icons@^6.2.0": + version "6.4.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.2.tgz#aee79ed76ce5dd04931352f9d83700761b8b1b25" + integrity sha512-0+sIUWnkgTVVXVAPQmW4vxb9ZTHv0WstOa3rBx9iPxrrrDH6bNLsDYuwXF9b6fGm+iR7DKQvQshUH/FJm3ed9Q== dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.36" + "@fortawesome/fontawesome-common-types" "6.4.2" -"@fortawesome/free-solid-svg-icons@^5.15.3": - version "5.15.4" - resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz#2a68f3fc3ddda12e52645654142b9e4e8fbb6cc5" - integrity sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w== +"@fortawesome/free-solid-svg-icons@^6.2.0": + version "6.4.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz#33a02c4cb6aa28abea7bc082a9626b7922099df4" + integrity sha512-sYwXurXUEQS32fZz9hVCUUv/xu49PEJEyUOsA51l6PU/qVgfbTb2glsTEaJngVVT8VqBATRIdh7XVgV1JF1LkA== dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.36" + "@fortawesome/fontawesome-common-types" "6.4.2" + +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@glimmer/compiler@^0.27.0": version "0.27.0" @@ -1493,7 +1739,7 @@ "@glimmer/wire-format" "^0.27.0" simple-html-tokenizer "^0.3.0" -"@glimmer/component@^1.0.4": +"@glimmer/component@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@glimmer/component/-/component-1.1.2.tgz#892ec0c9f0b6b3e41c112be502fde073cf24d17c" integrity sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A== @@ -1523,20 +1769,13 @@ resolved "https://registry.yarnpkg.com/@glimmer/env/-/env-0.1.7.tgz#fd2d2b55a9029c6b37a6c935e8c8871ae70dfa07" integrity sha512-JKF/a9I9jw6fGoz8kA7LEQslrwJ5jms5CXhu/aqkBWk+PmZ6pTl8mlb/eJ/5ujBGTiQzBhy5AIWF712iA+4/mw== -"@glimmer/global-context@0.65.4": - version "0.65.4" - resolved "https://registry.yarnpkg.com/@glimmer/global-context/-/global-context-0.65.4.tgz#1da1d59dd4260ce912c40e474cd39c2e82de51b8" - integrity sha512-RSYCPG/uVR5XCDcPREBclncU7R0zkjACbADP+n3FWAH1TfWbXRMDIkvO/ZlwHkjHoCZf6tIM6p5S/MoFzfJEJA== +"@glimmer/global-context@0.84.3": + version "0.84.3" + resolved "https://registry.yarnpkg.com/@glimmer/global-context/-/global-context-0.84.3.tgz#f8bf2cda9562716f2ddf3f96837e7559600635c4" + integrity sha512-8Oy9Wg5IZxMEeAnVmzD2NkObf89BeHoFSzJgJROE/deutd3rxg83mvlOez4zBBGYwnTb+VGU2LYRpet92egJjA== dependencies: "@glimmer/env" "^0.1.7" -"@glimmer/interfaces@0.65.4": - version "0.65.4" - resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.65.4.tgz#d298cc2b12b8ebcf269f39246ca7ab92816f6680" - integrity sha512-R0kby79tGNKZOojVJa/7y0JH9Eq4SV+L1s6GcZy30QUZ1g1AAGS5XwCIXc9Sc09coGcv//q+6NLeSw7nlx1y4A== - dependencies: - "@simple-dom/interface" "^1.4.0" - "@glimmer/interfaces@0.84.3": version "0.84.3" resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.84.3.tgz#629777a4abe373b0785656f6c8d08989f5784805" @@ -1551,16 +1790,16 @@ dependencies: "@glimmer/wire-format" "^0.27.0" -"@glimmer/reference@^0.65.0": - version "0.65.4" - resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.65.4.tgz#bbc8becd6a1bf01fc189b6489e27446437194711" - integrity sha512-yuRVE4qyqrlCndDMrHKDWUbDmGDCjPzsFtlTmxxnhDMJAdQsnr2cRLITHvQRDm1tXfigVvyKnomeuYhRRbBqYQ== +"@glimmer/reference@^0.84.3": + version "0.84.3" + resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.84.3.tgz#6420ad9c102633ac83939fd1b2457269d21fb632" + integrity sha512-lV+p/aWPVC8vUjmlvYVU7WQJsLh319SdXuAWoX/SE3pq340BJlAJiEcAc6q52y9JNhT57gMwtjMX96W5Xcx/qw== dependencies: "@glimmer/env" "^0.1.7" - "@glimmer/global-context" "0.65.4" - "@glimmer/interfaces" "0.65.4" - "@glimmer/util" "0.65.4" - "@glimmer/validator" "0.65.4" + "@glimmer/global-context" "0.84.3" + "@glimmer/interfaces" "0.84.3" + "@glimmer/util" "0.84.3" + "@glimmer/validator" "0.84.3" "@glimmer/syntax@^0.27.0": version "0.27.0" @@ -1572,17 +1811,7 @@ handlebars "^4.0.6" simple-html-tokenizer "^0.3.0" -"@glimmer/syntax@^0.65.0": - version "0.65.4" - resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.65.4.tgz#49164de5dc9e8b67084ec009bdd865e379d8a971" - integrity sha512-y+/C3e8w96efk3a/Z5If9o4ztKJwrr8RtDpbhV2J8X+DUsn5ic2N3IIdlThbt/Zn6tkP1K3dY6uaFUx3pGTvVQ== - dependencies: - "@glimmer/interfaces" "0.65.4" - "@glimmer/util" "0.65.4" - "@handlebars/parser" "^1.1.0" - simple-html-tokenizer "^0.5.10" - -"@glimmer/syntax@^0.84.3": +"@glimmer/syntax@^0.84.2", "@glimmer/syntax@^0.84.3": version "0.84.3" resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.84.3.tgz#4045a1708cef7fd810cff42fe6deeba40c7286d0" integrity sha512-ioVbTic6ZisLxqTgRBL2PCjYZTFIwobifCustrozRU2xGDiYvVIL0vt25h2c1ioDsX59UgVlDkIK4YTAQQSd2A== @@ -1592,7 +1821,7 @@ "@handlebars/parser" "~2.0.0" simple-html-tokenizer "^0.5.11" -"@glimmer/tracking@^1.0.4": +"@glimmer/tracking@^1.0.4", "@glimmer/tracking@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@glimmer/tracking/-/tracking-1.1.2.tgz#74e71be07b0a7066518d24044d2665d0cf8281eb" integrity sha512-cyV32zsHh+CnftuRX84ALZpd2rpbDrhLhJnTXn9W//QpqdRZ5rdMsxSY9fOsj0CKEc706tmEU299oNnDc0d7tA== @@ -1600,15 +1829,6 @@ "@glimmer/env" "^0.1.7" "@glimmer/validator" "^0.44.0" -"@glimmer/util@0.65.4": - version "0.65.4" - resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.65.4.tgz#e464145078f3f40da9013ff2590a6016515455d2" - integrity sha512-aofe+rdBhkREKP2GZta6jy1UcbRRMfWx7M18zxGxspPoeD08NscD04Kx+WiOKXmC1TcrfITr8jvqMfrKrMzYWQ== - dependencies: - "@glimmer/env" "0.1.7" - "@glimmer/interfaces" "0.65.4" - "@simple-dom/interface" "^1.4.0" - "@glimmer/util@0.84.3": version "0.84.3" resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.84.3.tgz#9ae0166982c0b48aa94b02d6ba8c2c81976ade4b" @@ -1628,23 +1848,23 @@ resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.44.0.tgz#45df98d73812440206ae7bda87cfe04aaae21ed9" integrity sha512-duAsm30uVK9jSysElCbLyU6QQYO2X9iLDLBIBUcCqck9qN1o3tK2qWiHbGK5d6g8E2AJ4H88UrfElkyaJlGrwg== -"@glimmer/validator@0.65.4", "@glimmer/validator@^0.65.0": - version "0.65.4" - resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.65.4.tgz#12c27a9a63706c60e6499fd687940e9d1affb32c" - integrity sha512-0YUjAyo45DF5JkQxdv5kHn96nMNhvZiEwsAD4Jme0kk5Q9MQcPOUtN76pQAS4f+C6GdF9DeUr2yGXZLFMmb+LA== +"@glimmer/validator@0.84.3", "@glimmer/validator@^0.84.3": + version "0.84.3" + resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.84.3.tgz#cd83b7f9ab78953f23cc11a32d83d7f729c54df2" + integrity sha512-RTBV4TokUB0vI31UC7ikpV7lOYpWUlyqaKV//pRC4pexYMlmqnVhkFrdiimB/R1XyNdUOQUmnIAcdic39NkbhQ== dependencies: "@glimmer/env" "^0.1.7" - "@glimmer/global-context" "0.65.4" + "@glimmer/global-context" "0.84.3" "@glimmer/validator@^0.44.0": version "0.44.0" resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.44.0.tgz#03d127097dc9cb23052cdb7fcae59d0a9dca53e1" integrity sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw== -"@glimmer/vm-babel-plugins@0.80.3": - version "0.80.3" - resolved "https://registry.yarnpkg.com/@glimmer/vm-babel-plugins/-/vm-babel-plugins-0.80.3.tgz#434b62172318cac43830d3ac29818cf2c5f111c1" - integrity sha512-9ej6xlm5MzHBJ5am2l0dbbn8Z0wJoYoMpM8FcrGMlUP6SPMLWxvxpMsApgQo8u6dvZRCjR3/bw3fdf7GOy0AFw== +"@glimmer/vm-babel-plugins@0.84.2": + version "0.84.2" + resolved "https://registry.yarnpkg.com/@glimmer/vm-babel-plugins/-/vm-babel-plugins-0.84.2.tgz#653ce82a6656b4396d87a479d8699450d35a17f0" + integrity sha512-HS2dEbJ3CgXn56wk/5QdudM7rE3vtNMvPIoG7Rrg+GhkGMNxBCIRxOeEF2g520j9rwlA2LAZFpc7MCDMFbTjNA== dependencies: babel-plugin-debug-macros "^0.3.4" @@ -1655,30 +1875,42 @@ dependencies: "@glimmer/util" "^0.27.0" -"@handlebars/parser@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@handlebars/parser/-/parser-1.1.0.tgz#d6dbc7574774b238114582410e8fee0dc3532bdf" - integrity sha512-rR7tJoSwJ2eooOpYGxGGW95sLq6GXUaS1UtWvN7pei6n2/okYvCGld9vsUTvkl2migxbkszsycwtMf/GEc1k1A== - "@handlebars/parser@~2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@handlebars/parser/-/parser-2.0.0.tgz#5e8b7298f31ff8f7b260e6b7363c7e9ceed7d9c5" integrity sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA== -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== dependencies: - "@humanwhocodes/object-schema" "^1.2.0" + "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.0": +"@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" @@ -1706,7 +1938,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== @@ -1719,12 +1951,25 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@lint-todo/utils@^13.1.1": + version "13.1.1" + resolved "https://registry.yarnpkg.com/@lint-todo/utils/-/utils-13.1.1.tgz#5c054d61ee037b9e552add118264771122cc1166" + integrity sha512-F5z53uvRIF4dYfFfJP3a2Cqg+4P1dgJchJsFnsZE0eZp0LK8X7g2J0CsJHRgns+skpXOlM7n5vFGwkWCWj8qJg== + dependencies: + "@types/eslint" "^8.4.9" + find-up "^5.0.0" + fs-extra "^9.1.0" + proper-lockfile "^4.1.2" + slash "^3.0.0" + tslib "^2.4.1" + upath "^2.0.1" + "@mapbox/extent@0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@mapbox/extent/-/extent-0.4.0.tgz#3e591f32e1f0c3981c864239f7b0ac06e610f8a9" integrity sha512-MSoKw3qPceGuupn04sdaJrFeLKvcSETVLZCGS8JA9x6zXQL3FWiKaIXYIZEDXd5jpXpWlRxinCZIN49yRy0C9A== -"@mapbox/geojson-area@0.2.2", "@mapbox/geojson-area@^0.2.2": +"@mapbox/geojson-area@^0.2.2": version "0.2.2" resolved "https://registry.yarnpkg.com/@mapbox/geojson-area/-/geojson-area-0.2.2.tgz#18d7814aa36bf23fbbcc379f8e26a22927debf10" integrity sha512-bBqqFn1kIbLBfn7Yq1PzzwVkPYQr9lVUeT8Dhd0NL5n76PBuXzOcuLV7GOSbEB1ia8qWxH4COCvFpziEu/yReA== @@ -1754,16 +1999,6 @@ resolved "https://registry.yarnpkg.com/@mapbox/geojson-normalize/-/geojson-normalize-0.0.1.tgz#1da1e6b3a7add3ad29909b30f438f60581b7cd80" integrity sha512-82V7YHcle8lhgIGqEWwtXYN5cy0QM/OHq3ypGhQTbvHR57DF0vMHMjjVSQKFfVXBe/yWCBZTyOuzvK7DFFnx5Q== -"@mapbox/geojson-rewind@^0.4.0": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@mapbox/geojson-rewind/-/geojson-rewind-0.4.1.tgz#357d79300adb7fec7c1f091512988bca6458f068" - integrity sha512-mxo2MEr7izA1uOXcDsw99Kgg6xW3P4H2j4n1lmldsgviIelpssvP+jQDivFKOHrOVJDpTTi5oZJvRcHtU9Uufw== - dependencies: - "@mapbox/geojson-area" "0.2.2" - concat-stream "~1.6.0" - minimist "^1.2.5" - sharkdown "^0.1.0" - "@mapbox/geojson-rewind@^0.5.2": version "0.5.2" resolved "https://registry.yarnpkg.com/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz#591a5d71a9cd1da1a0bf3420b3bea31b0fc7946a" @@ -1795,41 +2030,26 @@ lodash.isequal "^4.5.0" xtend "^4.0.2" -"@mapbox/mapbox-gl-supported@^1.4.0": +"@mapbox/mapbox-gl-supported@^1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz#f60b6a55a5d8e5ee908347d2ce4250b15103dc8e" integrity sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg== -"@mapbox/mapbox-gl-supported@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz#c15367178d8bfe4765e6b47b542fe821ce259c7b" - integrity sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ== - "@mapbox/point-geometry@0.1.0", "@mapbox/point-geometry@^0.1.0", "@mapbox/point-geometry@~0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz#8a83f9335c7860effa2eeeca254332aa0aeed8f2" integrity sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ== -"@mapbox/tiny-sdf@^1.1.0": +"@mapbox/tiny-sdf@^1.1.1": version "1.2.5" resolved "https://registry.yarnpkg.com/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz#424c620a96442b20402552be70a7f62a8407cc59" integrity sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw== -"@mapbox/tiny-sdf@^2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz#9a1d33e5018093e88f6a4df2343e886056287282" - integrity sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA== - "@mapbox/unitbezier@^0.0.0": version "0.0.0" resolved "https://registry.yarnpkg.com/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz#15651bd553a67b8581fb398810c98ad86a34524e" integrity sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA== -"@mapbox/unitbezier@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz#d32deb66c7177e9e9dfc3bbd697083e2e657ff01" - integrity sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw== - "@mapbox/vector-tile@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz#d3a74c90402d06e89ec66de49ec817ff53409666" @@ -1867,7 +2087,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -1875,29 +2095,181 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@nycplanning/ember@^2.1.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@nycplanning/ember/-/ember-2.2.1.tgz#fdcf75e5968ef300c8baa8d8629b15d4fa58d6c6" - integrity sha512-vXY8P4B1lyJesy+y3skELoEEGYKikx/QB5fHMtCdVRr0LjPhqbB02pnTVNjQdnPJOcyrOy1Tqx0z3sQPsBb4Zg== +"@npmcli/fs@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/fs@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" + integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== + dependencies: + semver "^7.3.5" + +"@npmcli/git@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931" + integrity sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w== + dependencies: + "@npmcli/promise-spawn" "^3.0.0" + lru-cache "^7.4.4" + mkdirp "^1.0.4" + npm-pick-manifest "^7.0.0" + proc-log "^2.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^2.0.2" + +"@npmcli/installed-package-contents@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" + integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== + dependencies: + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@npmcli/node-gyp@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35" + integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A== + +"@npmcli/promise-spawn@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573" + integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g== + dependencies: + infer-owner "^1.0.4" + +"@npmcli/run-script@^4.1.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.2.1.tgz#c07c5c71bc1c70a5f2a06b0d4da976641609b946" + integrity sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg== + dependencies: + "@npmcli/node-gyp" "^2.0.0" + "@npmcli/promise-spawn" "^3.0.0" + node-gyp "^9.0.0" + read-package-json-fast "^2.0.3" + which "^2.0.2" + +"@nycplanning/ember-cli-foundation-6-sass@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@nycplanning/ember-cli-foundation-6-sass/-/ember-cli-foundation-6-sass-0.1.0.tgz#328c68513f4704c4fec651506ce4d3825d4fed64" + integrity sha512-XeyTYecAaUJQx6DgTgKL3tV/zX47xjlekx375A+ki7Vn8MEqIOd12YDEis/75Qc2YRCkzLmikCv9Dkuc69U56g== + dependencies: + "@ember/jquery" "^0.6.0" + babel-register "^6.18.0" + broccoli-babel-transpiler "^6.1.1" + broccoli-file-creator "^1.1.1" + broccoli-funnel "^1.2.0" + broccoli-merge-trees "^2.0.0" + broccoli-rollup "^1.3.0" + ember-cli-babel "^7.7.3" + ember-cli-htmlbars "^2.0.1" + ember-cli-htmlbars-inline-precompile "^1.0.0" + ember-cli-sass "^11.0.1" + ember-cli-version-checker "^3.1.3" + fastboot-transform "^0.1.2" + foundation-sites "^6.3.1" + rollup-plugin-legacy "^1.0.0" + rollup-plugin-node-resolve "^3.0.0" + +"@nycplanning/ember-cli-nouislider@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@nycplanning/ember-cli-nouislider/-/ember-cli-nouislider-1.3.0.tgz#772098aab85136259783c8a2e3096a04a84eeced" + integrity sha512-vcRseZookEorhX8bo0itXZK+oXhWtNOFImVsGesR5drPxoTVQ5/Yy06TmdJsUZ5QablQfqUbp0axUiwvB5CSVA== + dependencies: + broccoli-funnel "^3.0.2" + broccoli-merge-trees "^4.0.1" + ember-cli-babel "^7.7.3" + ember-cli-htmlbars "^4.2.3" + nouislider "^14.1.1" + +"@nycplanning/ember-mapbox-gl-draw@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@nycplanning/ember-mapbox-gl-draw/-/ember-mapbox-gl-draw-2.1.0.tgz#91a704881dcf99cdbd04e62b4952868e578e895b" + integrity sha512-HoJoyYzstFtR4MwNAZZOMkFvgRc0TP+kwX/oRehl71MMkDGBXDjwWevicVoLWeoYdux7lPIQkb9sPljdkLEqtQ== + dependencies: + "@mapbox/mapbox-gl-draw" "^1.0.0" + broccoli-funnel "^2.0.1" + broccoli-merge-trees "^3.0.1" + ember-auto-import "^2.2.4" + ember-cli-babel "^7.26.11" + ember-cli-htmlbars "^6.0.1" + +"@nycplanning/ember-parachute@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@nycplanning/ember-parachute/-/ember-parachute-1.1.1.tgz#f3d15d354d5226b752edfbd7e3db34f5853d8159" + integrity sha512-UCONCdbPk6I0lRbo2os4fg9fnqn5ojkys28opQqOnju8VmHEsJ1T0PN5u7aElONv4AbgtJ+rqErIr7/JfzJGrQ== + dependencies: + ember-cli-babel "^7.1.2" + +"@nycplanning/ember@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@nycplanning/ember/-/ember-3.0.0.tgz#8103d7ecae91218d0b91ac7eaf9350e3bf2cb4b6" + integrity sha512-qDRAWm3A+ubNjet9UTnEW6QzPDdG5OaTaZ0o8W3e9Oz8S0kvllCVEDNYml2U30DuUZ4zAGR1i7r9QSmfTAWTkA== dependencies: "@turf/union" "^6.0.0" - ember-auto-import "^1.11.3" + ember-auto-import "^2.6.3" ember-cli-babel "^7.26.11" - ember-cli-htmlbars "^5.7.1" + ember-cli-htmlbars "^6.2.0" ember-composable-helpers "3.2.0" ember-copy "^2.0.1" - ember-fetch "^8.1.2" - ember-power-select "^5.0.2" - ember-promise-helpers "1.0.9" + ember-power-select "^7.1.0" + ember-promise-helpers "^2.0.0" + ember-tooltips "^3.6.0" ember-truth-helpers "^3.1.1" - mapbox-gl ">=0.47.0" - nyc-planning-style-guide "^1.0.7" + mapbox-gl "^1.0.0" + nyc-planning-style-guide "^2.0.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@rollup/plugin-node-resolve@^15.1.0": + version "15.2.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.0.tgz#982053b237f81471aace570472e88a456d211621" + integrity sha512-mKur03xNGT8O9ODO6FtT43ITGqHWZbKPdVJHZb+iV9QYcdlhUUB0wgknvA4KCUmC5oHJF6O2W1EgmyOQyVUI4Q== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-builtin-module "^3.2.1" + is-module "^1.0.0" + resolve "^1.22.1" + +"@rollup/pluginutils@^5.0.1": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.3.tgz#183126d69aeb1cfa23401d5a71cb4b8c16c4a4e0" + integrity sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" "@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== +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + "@sinonjs/commons@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" @@ -1938,6 +2310,18 @@ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + "@turf/area@^6.0.1": version "6.5.0" resolved "https://registry.yarnpkg.com/@turf/area/-/area-6.5.0.tgz#1d0d7aee01d8a4a3d4c91663ed35cc615f36ad56" @@ -2048,13 +2432,6 @@ "@turf/invariant" "^6.5.0" polygon-clipping "^0.15.3" -"@types/acorn@^4.0.3": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" - integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== - dependencies: - "@types/estree" "*" - "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -2063,11 +2440,6 @@ "@types/connect" "*" "@types/node" "*" -"@types/broccoli-plugin@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@types/broccoli-plugin/-/broccoli-plugin-1.3.0.tgz#38f8462fecaebc4e09a32e4d4ed1b9808f75bbca" - integrity sha512-SLk4/hFc2kGvgwNFrpn2O1juxFOllcHAywvlo7VwxfExLzoz1GGJ0oIZCwj5fwSpvHw4AWpZjJ1fUvb62PDayQ== - "@types/broccoli-plugin@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/broccoli-plugin/-/broccoli-plugin-3.0.0.tgz#290fda2270c47a568edfd0cefab8bb840d8bb7b2" @@ -2114,7 +2486,7 @@ "@types/eslint" "*" "@types/estree" "*" -"@types/eslint@*": +"@types/eslint@*", "@types/eslint@^8.4.9": version "8.44.2" resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a" integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg== @@ -2122,14 +2494,6 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/eslint@^7.2.13": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" - integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - "@types/estree@*", "@types/estree@^1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" @@ -2220,15 +2584,20 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== +"@types/minimist@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + "@types/node@*", "@types/node@>=10.0.0": version "20.6.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.0.tgz#9d7daa855d33d4efec8aea88cd66db1c2f0ebe16" integrity sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg== -"@types/node@^9.6.0": - version "9.6.61" - resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.61.tgz#29f124eddd41c4c74281bd0b455d689109fc2a2d" - integrity sha512-/aKAdg5c8n468cYLy2eQrcR5k6chlbNwZNGUj3TboyPa2hcO2QAJcfymlqPzMiRj8B6nYKXjzQz36minFE0RwQ== +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== "@types/qs@*": version "6.9.8" @@ -2240,12 +2609,10 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/resolve@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== - dependencies: - "@types/node" "*" +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== "@types/rimraf@^2.0.2", "@types/rimraf@^2.0.3": version "2.0.5" @@ -2285,64 +2652,21 @@ "@webassemblyjs/helper-numbers" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@webassemblyjs/floating-point-hex-parser@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - "@webassemblyjs/helper-api-error@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - "@webassemblyjs/helper-buffer@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-numbers@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" @@ -2357,11 +2681,6 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - "@webassemblyjs/helper-wasm-section@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" @@ -2372,16 +2691,6 @@ "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/wasm-gen" "1.11.6" -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/ieee754@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" @@ -2389,13 +2698,6 @@ dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - "@webassemblyjs/leb128@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" @@ -2403,37 +2705,11 @@ dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - "@webassemblyjs/utf8@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - "@webassemblyjs/wasm-edit@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" @@ -2459,17 +2735,6 @@ "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - "@webassemblyjs/wasm-opt@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" @@ -2480,16 +2745,6 @@ "@webassemblyjs/wasm-gen" "1.11.6" "@webassemblyjs/wasm-parser" "1.11.6" -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" @@ -2502,30 +2757,6 @@ "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - "@webassemblyjs/wast-printer@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" @@ -2534,15 +2765,6 @@ "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - "@xmldom/xmldom@^0.8.0": version "0.8.10" resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" @@ -2566,21 +2788,11 @@ JSONStream@~1.3.1: jsonparse "^1.2.0" through ">=2.2.7 <3" -"JSV@>= 4.0.x": - version "4.0.2" - resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" - integrity sha512-ZJ6wx9xaKJ3yFUhq5/sk82PJMuUyLk277I8mQeyDgCTjGdjWJIvPfaU5LIXaMuaN2UO1X3kZH4+lgphublZUHw== - -abbrev@1, abbrev@~1.1.0: +abbrev@1, abbrev@^1.0.0, abbrev@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -abortcontroller-polyfill@^1.7.3: - version "1.7.5" - resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" - integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== - accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -2589,39 +2801,22 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-dynamic-import@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" - integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== - dependencies: - acorn "^5.0.0" - acorn-import-assertions@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -acorn-jsx@^5.3.1: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^5.0.0, acorn@^5.1.1, acorn@^5.5.3: +acorn@^5.1.1: version "5.7.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.1.0, acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.7.1, acorn@^8.8.2: +acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== @@ -2633,6 +2828,13 @@ agent-base@4, agent-base@^4.1.0, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + agentkeepalive@^3.3.0: version "3.5.2" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" @@ -2640,10 +2842,20 @@ agentkeepalive@^3.3.0: dependencies: humanize-ms "^1.2.1" -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== +agentkeepalive@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" ajv-formats@^2.1.1: version "2.1.1" @@ -2652,7 +2864,7 @@ ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== @@ -2672,7 +2884,7 @@ ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2692,13 +2904,6 @@ ajv@^8.0.0, ajv@^8.0.1, ajv@^8.9.0: require-from-string "^2.0.2" uri-js "^4.2.2" -amd-name-resolver@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/amd-name-resolver/-/amd-name-resolver-1.2.0.tgz#fc41b3848824b557313897d71f8d5a0184fbe679" - integrity sha512-hlSTWGS1t6/xq5YCed7YALg7tKZL3rkl7UwEZ/eCIkn8JxmM6fU6Qs/1hwtjQqfuYxlffuUcgYEm0f5xP4YKaA== - dependencies: - ensure-posix-path "^1.0.1" - amd-name-resolver@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/amd-name-resolver/-/amd-name-resolver-0.0.6.tgz#d3e4ba2dfcaab1d820c1be9de947c67828cfe595" @@ -2706,7 +2911,7 @@ amd-name-resolver@^0.0.6: dependencies: ensure-posix-path "^1.0.1" -amd-name-resolver@^1.2.0, amd-name-resolver@^1.3.1: +amd-name-resolver@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/amd-name-resolver/-/amd-name-resolver-1.3.1.tgz#ffe71c683c6e7191fc4ae1bb3aaed15abea135d9" integrity sha512-26qTEWqZQ+cxSYygZ4Cf8tsjDBLceJahhtewxtKZA3SRa4PluuqYCuheemDQD+7Mf5B7sr+zhTDWAHDh02a1Dw== @@ -2726,10 +2931,12 @@ ansi-align@^2.0.0: dependencies: string-width "^2.0.0" -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" ansi-escapes@^3.2.0: version "3.2.0" @@ -2804,12 +3011,7 @@ ansi-styles@^6.0.0, ansi-styles@^6.1.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== -ansi-styles@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" - integrity sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA== - -ansi-to-html@^0.6.15, ansi-to-html@^0.6.6: +ansi-to-html@^0.6.15: version "0.6.15" resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.15.tgz#ac6ad4798a00f6aa045535d7f6a9cb9294eebea7" integrity sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ== @@ -2839,7 +3041,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@~3.1.2: +anymatch@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -2902,6 +3104,13 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -3012,21 +3221,16 @@ arraybuffer.prototype.slice@^1.0.1: is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + asap@^2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - asn1@~0.2.3: version "0.2.6" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" @@ -3034,7 +3238,7 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" -assert-never@^1.1.0, assert-never@^1.2.1: +assert-never@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== @@ -3049,14 +3253,6 @@ assert-plus@^0.2.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" integrity sha512-u1L0ZLywRziOVjUhRxI0Qg9G+4RnFB9H/Rq40YWn0dieDgO7vAYeJz6jKAO6t/aruzlDFLAPkQTT87e+f8Imaw== -assert@^1.1.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.1.tgz#038ab248e4ff078e7bc2485ba6e6388466c78f76" - integrity sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A== - dependencies: - object.assign "^4.1.4" - util "^0.10.4" - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -3098,11 +3294,6 @@ async-disk-cache@^2.0.0: rsvp "^4.8.5" username-sync "^1.0.2" -async-each@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77" - integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== - async-promise-queue@^1.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" @@ -3172,7 +3363,7 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.26.0, babel-core@^6.26.3: +babel-core@^6.26.0: version "6.26.3" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== @@ -3197,18 +3388,6 @@ babel-core@^6.26.0, babel-core@^6.26.3: slash "^1.0.0" source-map "^0.5.7" -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== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - babel-generator@^6.26.0: version "6.26.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" @@ -3223,88 +3402,25 @@ babel-generator@^6.26.0: source-map "^0.5.7" trim-right "^1.0.1" -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: +babel-helper-function-name@^6.24.1: version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - integrity sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q== + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + integrity sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q== dependencies: - babel-helper-explode-assignable-expression "^6.24.1" + babel-helper-get-function-arity "^6.24.1" babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-helper-call-delegate@^6.24.1: +babel-helper-get-function-arity@^6.24.1: version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ== + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + integrity sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng== dependencies: - babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" - babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA== - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - integrity sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ== - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q== - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg== - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - babel-helper-remap-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" @@ -3316,18 +3432,6 @@ babel-helper-remap-async-to-generator@^6.24.1: babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw== - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - babel-helpers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" @@ -3336,7 +3440,12 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-import-util@^1.1.0: +babel-import-util@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-import-util/-/babel-import-util-0.2.0.tgz#b468bb679919601a3570f9e317536c54f2862e23" + integrity sha512-CtWYYHU/MgK88rxMrLfkD356dApswtR/kWZ/c6JifG1m10e7tBBrs/366dFzWMAoqYmG5/JSh+94tUSpIwh+ag== + +babel-import-util@^1.2.2, babel-import-util@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/babel-import-util/-/babel-import-util-1.4.1.tgz#1df6fd679845df45494bac9ca12461d49497fdd4" integrity sha512-TNdiTQdPhXlx02pzG//UyVPSKE7SNWjY0n4So/ZnjQpWwaM5LvWBLkWa1JKll5u06HNscHD91XZPuwrMg1kadQ== @@ -3363,28 +3472,14 @@ babel-messages@^6.23.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-debug-macros@^0.1.11: - version "0.1.11" - resolved "https://registry.yarnpkg.com/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.1.11.tgz#6c562bf561fccd406ce14ab04f42c218cf956605" - integrity sha512-hZw5qNNGAR02Y+yBUrtsnJHh8OXavkayPRqKGAXnIm4t5rWVpj3ArwsC7TWdpZsBguQvHAeyTxZ7s23yY60HHg== - dependencies: - semver "^5.3.0" - -babel-plugin-debug-macros@^0.2.0, babel-plugin-debug-macros@^0.2.0-beta.6: +babel-plugin-debug-macros@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.2.0.tgz#0120ac20ce06ccc57bf493b667cf24b85c28da7a" integrity sha512-Wpmw4TbhR3Eq2t3W51eBAQSdKlr+uAyF0GI4GtPfMCD12Y4cIdpKC9l0RjNTH/P9isFypSqqewMPm7//fnZlNA== dependencies: semver "^5.3.0" -babel-plugin-debug-macros@^0.3.3, babel-plugin-debug-macros@^0.3.4: +babel-plugin-debug-macros@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.3.4.tgz#22961d0cb851a80654cece807a8b4b73d85c6075" integrity sha512-wfel/vb3pXfwIDZUrkoDrn5FHmlWI96PCJ3UCDv2a86poJ3EQrnArNW5KfHSVJ9IOgxHbo748cQt7sDU+0KCEw== @@ -3398,13 +3493,6 @@ babel-plugin-ember-data-packages-polyfill@^0.1.2: dependencies: "@ember-data/rfc395-data" "^0.0.4" -babel-plugin-ember-modules-api-polyfill@^2.3.0, babel-plugin-ember-modules-api-polyfill@^2.6.0: - version "2.13.4" - resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-2.13.4.tgz#cf62bc9bfd808c48d810d5194f4329e9453bd603" - integrity sha512-uxQPkEQAzCYdwhZk16O9m1R4xtCRNy4oEUTBrccOPfzlIahRZJic/JeP/ZEL0BC6Mfq6r55eOg6gMF/zdFoCvA== - dependencies: - ember-rfc176-data "^0.3.13" - babel-plugin-ember-modules-api-polyfill@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-3.5.0.tgz#27b6087fac75661f779f32e60f94b14d0e9f6965" @@ -3515,17 +3603,7 @@ babel-plugin-syntax-dynamic-import@^6.18.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" integrity sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA== -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - integrity sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ== - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - integrity sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ== - -babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: +babel-plugin-transform-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" integrity sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw== @@ -3534,265 +3612,6 @@ babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async- babel-plugin-syntax-async-functions "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw== - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag== - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw== - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg== - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA== - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg== - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw== - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA== - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ== - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ== - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ== - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - integrity sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ== - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg== - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - integrity sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ== - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - babel-register@^6.18.0, babel-register@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" @@ -3806,7 +3625,7 @@ babel-register@^6.18.0, babel-register@^6.26.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== @@ -3840,7 +3659,7 @@ babel-traverse@^6.24.1, babel-traverse@^6.26.0: invariant "^2.2.2" lodash "^4.17.4" -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: +babel-types@^6.24.1, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== @@ -3872,12 +3691,12 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.2.tgz#024f0f72afa25b75f9c0ee73cd4f55ec1bed9784" - integrity sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ== +balanced-match@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" + integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -3907,11 +3726,6 @@ basic-auth@~2.0.1: dependencies: safe-buffer "5.1.2" -batch-processor@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" - integrity sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA== - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -3924,16 +3738,6 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - "binaryextensions@1 || 2", binaryextensions@^2.1.2: version "2.3.0" resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22" @@ -3968,10 +3772,10 @@ blank-object@^1.0.1: resolved "https://registry.yarnpkg.com/blank-object/-/blank-object-1.0.2.tgz#f990793fbe9a8c8dd013fb3219420bec81d5f4b9" integrity sha512-kXQ19Xhoghiyw66CUiGypnuRpWlbHAzY/+NyvqTEdTfhfQGH1/dbEMYiXju7fYKIFePpzp/y9dsu5Cu/PkmawQ== -blob-polyfill@^2.0.20171115: - version "2.0.20171115" - resolved "https://registry.yarnpkg.com/blob-polyfill/-/blob-polyfill-2.0.20171115.tgz#8e5c2659dda443365fafd6dd421517653f1d5ffd" - integrity sha512-qHpuIpWlDLdOzSI9n1+423JL8c60Tbyyu/w4+zQIPCazvKBjf0sqQWiUS2QtyHph3S1C8m17T/jKyhv/DnnQFA== +blob-polyfill@^7.0.20220408: + version "7.0.20220408" + resolved "https://registry.yarnpkg.com/blob-polyfill/-/blob-polyfill-7.0.20220408.tgz#38bf5e046c41a21bb13654d9d19f303233b8218c" + integrity sha512-oD8Ydw+5lNoqq+en24iuPt1QixdPpe/nUF8azTHnviCZYu9zUC+TwdzIp5orpblJosNlgNbVmmAb//c6d6ImUQ== block-stream@*: version "0.0.9" @@ -3980,7 +3784,7 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -3990,16 +3794,6 @@ bluebird@~3.5.0: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - body-parser@1.20.1: version "1.20.1" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" @@ -4046,6 +3840,28 @@ body@^5.1.0: raw-body "~1.1.0" safe-json-parse "~1.0.1" +boilerplate-update@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/boilerplate-update/-/boilerplate-update-2.1.0.tgz#0a23154d357f43d3002dd1dd08f46e0f2e797abe" + integrity sha512-aGhmFFJ132JmtlNp7Pd5En+lKnmC7JXdR9HA1f8/Gg/OSSZnFAJcOTjvtmGj3PiPNBvLmNcRGeDbLWh5WiXJyQ== + dependencies: + cpr "^3.0.1" + debug "^4.2.0" + execa "^5.0.0" + git-diff-apply "^3.0.0" + https-proxy-agent "^5.0.0" + inquirer "^8.0.0" + merge-package.json "^4.0.0" + npm-package-arg "^8.0.1" + npx "^10.2.0" + open "^8.0.0" + p-reduce "^3.0.0" + pacote "^13.5.0" + rimraf "^3.0.0" + semver "^7.3.2" + tmp "0.2.1" + which "^2.0.1" + boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" @@ -4053,14 +3869,6 @@ boom@2.x.x: dependencies: hoek "2.x.x" -bops@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/bops/-/bops-0.0.6.tgz#082d1d55fa01e60dbdc2ebc2dba37f659554cf3a" - integrity sha512-EWD8/Ei9o/h/wmR3w/YL/8dGKe4rSFHlaO8VNNcuXnjXjeTgxdcmhjPf9hRCYlqTrBPZbKaht+FxZKahcob5UQ== - dependencies: - base64-js "0.0.2" - to-utf8 "0.0.1" - bower-config@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/bower-config/-/bower-config-1.4.3.tgz#3454fecdc5f08e7aa9cc6d556e492be0669689ae" @@ -4091,6 +3899,20 @@ boxen@^1.0.0, boxen@^1.2.1: term-size "^1.2.0" widest-line "^2.0.0" +boxen@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -4099,7 +3921,14 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -4115,7 +3944,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.2, braces@~3.0.2: +braces@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -4149,7 +3978,7 @@ broccoli-asset-rewrite@^2.0.0: dependencies: broccoli-filter "^1.2.3" -broccoli-babel-transpiler@^6.1.1, broccoli-babel-transpiler@^6.4.2, broccoli-babel-transpiler@^6.5.0: +broccoli-babel-transpiler@^6.1.1: version "6.5.1" resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-6.5.1.tgz#a4afc8d3b59b441518eb9a07bd44149476e30738" integrity sha512-w6GcnkxvHcNCte5FcLGEG1hUdQvlfvSN/6PtGWU/otg69Ugk8rUk51h41R0Ugoc+TNxyeFG1opRt2RlA87XzNw== @@ -4165,7 +3994,7 @@ broccoli-babel-transpiler@^6.1.1, broccoli-babel-transpiler@^6.4.2, broccoli-bab rsvp "^4.8.2" workerpool "^2.3.0" -broccoli-babel-transpiler@^7.8.0: +broccoli-babel-transpiler@^7.8.0, broccoli-babel-transpiler@^7.8.1: version "7.8.1" resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-7.8.1.tgz#a5dc04cf4f59de98124fc128683ab2b83e5d28c1" integrity sha512-6IXBgfRt7HZ61g67ssBc6lBb3Smw3DPZ9dEYirgtvXWpRZ2A9M22nxy6opEwJDgDJzlu/bB7ToppW33OFkA1gA== @@ -4272,7 +4101,7 @@ broccoli-concat@^3.2.2: lodash.uniq "^4.2.0" walk-sync "^0.3.2" -broccoli-concat@^4.2.4, broccoli-concat@^4.2.5: +broccoli-concat@^4.2.5: version "4.2.5" resolved "https://registry.yarnpkg.com/broccoli-concat/-/broccoli-concat-4.2.5.tgz#d578f00094048b5fc87195e82fbdbde20d838d29" integrity sha512-dFB5ATPwOyV8S2I7a07HxCoutoq23oY//LhM6Mou86cWUTB174rND5aQLR7Fu8FjFFLxoTbkk7y0VPITJ1IQrw== @@ -4373,7 +4202,7 @@ broccoli-funnel@2.0.1: symlink-or-copy "^1.0.0" walk-sync "^0.3.1" -broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.2, broccoli-funnel@^1.1.0, broccoli-funnel@^1.2.0: +broccoli-funnel@^1.0.0, broccoli-funnel@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296" integrity sha512-0pbFNUA5Ml+gPPd58Rj/M26OS21+bMiV0F+m6+9OVzAhAdppVLxylSsXfWAt2WOD3kS+D8UsDv6GSmnZhbw/dw== @@ -4441,7 +4270,7 @@ broccoli-kitchen-sink-helpers@^0.3.1: glob "^5.0.10" mkdirp "^0.5.1" -broccoli-merge-trees@^1.0.0, broccoli-merge-trees@^1.1.1: +broccoli-merge-trees@^1.0.0: version "1.2.4" resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-1.2.4.tgz#a001519bb5067f06589d91afa2942445a2d0fdb5" integrity sha512-RXJAleytlED0dxXGEo2EXwrg5cCesY8LQzzGRogwGQmluoz+ijzxajpyWAW6wu/AyuQZj1vgnIqnld8jvuuXtQ== @@ -4463,7 +4292,7 @@ broccoli-merge-trees@^2.0.0: broccoli-plugin "^1.3.0" merge-trees "^1.0.1" -broccoli-merge-trees@^3.0.0, broccoli-merge-trees@^3.0.1, broccoli-merge-trees@^3.0.2: +broccoli-merge-trees@^3.0.1, broccoli-merge-trees@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-3.0.2.tgz#f33b451994225522b5c9bcf27d59decfd8ba537d" integrity sha512-ZyPAwrOdlCddduFbsMyyFzJUrvW6b04pMvDiAQZrCwghlvgowJDY+EfoXn+eR1RRA5nmGHJ+B68T63VnpRiT1A== @@ -4471,7 +4300,7 @@ broccoli-merge-trees@^3.0.0, broccoli-merge-trees@^3.0.1, broccoli-merge-trees@^ broccoli-plugin "^1.3.0" merge-trees "^2.0.0" -broccoli-merge-trees@^4.2.0: +broccoli-merge-trees@^4.0.1, broccoli-merge-trees@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-4.2.0.tgz#692d3c163ecea08c5714a9434d664e628919f47c" integrity sha512-nTrQe5AQtCrW4enLRvbD/vTLHqyW2tz+vsLXQe4IEaUhepuMGVKJJr+I8n34Vu6fPjmPLwTjzNC8izMIDMtHPw== @@ -4599,7 +4428,7 @@ broccoli-plugin@1.1.0: rimraf "^2.3.4" symlink-or-copy "^1.0.1" -broccoli-plugin@^1.0.0, broccoli-plugin@^1.1.0, broccoli-plugin@^1.2.0, broccoli-plugin@^1.2.1, broccoli-plugin@^1.3.0, broccoli-plugin@^1.3.1: +broccoli-plugin@^1.0.0, broccoli-plugin@^1.1.0, broccoli-plugin@^1.2.0, broccoli-plugin@^1.2.1, broccoli-plugin@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.3.1.tgz#a26315732fb99ed2d9fb58f12a1e14e986b4fabd" integrity sha512-DW8XASZkmorp+q7J4EeDEZz+LoyKLAd2XZULXyD9l4m9/hAKV3vjHmB1kiUshcWAYMgTP1m2i4NnqCE/23h6AQ== @@ -4609,7 +4438,7 @@ broccoli-plugin@^1.0.0, broccoli-plugin@^1.1.0, broccoli-plugin@^1.2.0, broccoli rimraf "^2.3.4" symlink-or-copy "^1.1.8" -broccoli-plugin@^2.0.0, broccoli-plugin@^2.1.0: +broccoli-plugin@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-2.1.0.tgz#2fab6c578219cfcc64f773e9616073313fc8b334" integrity sha512-ElE4caljW4slapyEhSD9jU9Uayc8SoSABWdmY9SqbV8DHNxU6xg1jJsPcMm+cXOvggR3+G+OXAYQeFjWVnznaw== @@ -4649,38 +4478,6 @@ broccoli-rollup@^1.3.0: symlink-or-copy "^1.1.8" walk-sync "^0.3.1" -broccoli-rollup@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/broccoli-rollup/-/broccoli-rollup-2.1.1.tgz#0b77dc4b7560a53e998ea85f3b56772612d4988d" - integrity sha512-aky/Ovg5DbsrsJEx2QCXxHLA6ZR+9u1TNVTf85soP4gL8CjGGKQ/JU8R3BZ2ntkWzo6/83RCKzX6O+nlNKR5MQ== - dependencies: - "@types/node" "^9.6.0" - amd-name-resolver "^1.2.0" - broccoli-plugin "^1.2.1" - fs-tree-diff "^0.5.2" - heimdalljs "^0.2.1" - heimdalljs-logger "^0.1.7" - magic-string "^0.24.0" - node-modules-path "^1.0.1" - rollup "^0.57.1" - symlink-or-copy "^1.1.8" - walk-sync "^0.3.1" - -broccoli-rollup@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/broccoli-rollup/-/broccoli-rollup-4.1.1.tgz#7531a24d88ddab9f1bace1c6ee6e6ca74a38d36f" - integrity sha512-hkp0dB5chiemi32t6hLe5bJvxuTOm1TU+SryFlZIs95KT9+94uj0C8w6k6CsZ2HuIdIZg6D252t4gwOlcTXrpA== - dependencies: - "@types/broccoli-plugin" "^1.3.0" - broccoli-plugin "^2.0.0" - fs-tree-diff "^2.0.1" - heimdalljs "^0.2.6" - node-modules-path "^1.0.1" - rollup "^1.12.0" - rollup-pluginutils "^2.8.1" - symlink-or-copy "^1.2.0" - walk-sync "^1.1.3" - broccoli-rollup@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/broccoli-rollup/-/broccoli-rollup-5.0.0.tgz#a77b53bcef1b70e988913fee82265c0a4ca530da" @@ -4712,17 +4509,12 @@ broccoli-slow-trees@^3.0.1, broccoli-slow-trees@^3.1.0: dependencies: heimdalljs "^0.2.1" -broccoli-source@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/broccoli-source/-/broccoli-source-1.1.0.tgz#54f0e82c8b73f46580cbbc4f578f0b32fca8f809" - integrity sha512-ahvqmwF6Yvh6l+sTJJdey4o4ynwSH8swSSBSGmUXGSPPCqBWvquWB/4rWN65ZArKilBFq/29O0yQnZNIf//sTg== - broccoli-source@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/broccoli-source/-/broccoli-source-2.1.2.tgz#e9ae834f143b607e9ec114ade66731500c38b90b" integrity sha512-1lLayO4wfS0c0Sj50VfHJXNWf94FYY0WUhxj0R77thbs6uWI7USiOWFqQV5dRmhAJnoKaGN4WyLGQbgjgiYFwQ== -broccoli-source@^3.0.0: +broccoli-source@^3.0.0, broccoli-source@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/broccoli-source/-/broccoli-source-3.0.1.tgz#fd581b2f3877ca1338f724f6ef70acec8c7e1444" integrity sha512-ZbGVQjivWi0k220fEeIUioN6Y68xjMy0xiLAc0LdieHI99gw+tafU8w0CggBDYVNsJMKUr006AZaM7gNEwCxEg== @@ -4780,17 +4572,6 @@ broccoli-stew@^3.0.0: symlink-or-copy "^1.2.0" walk-sync "^1.1.3" -broccoli-templater@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/broccoli-templater/-/broccoli-templater-2.0.2.tgz#285a892071c0b3ad5ebc275d9e8b3465e2d120d6" - integrity sha512-71KpNkc7WmbEokTQpGcbGzZjUIY1NSVa3GB++KFKAfx5SZPUozCOsBlSTwxcv8TLoCAqbBnsX5AQPgg6vJ2l9g== - dependencies: - broccoli-plugin "^1.3.1" - fs-tree-diff "^0.5.9" - lodash.template "^4.4.0" - rimraf "^2.6.2" - walk-sync "^0.3.3" - broccoli-terser-sourcemap@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/broccoli-terser-sourcemap/-/broccoli-terser-sourcemap-4.1.0.tgz#5f37441b64a3b6bfb0c67e9af232259c9576f115" @@ -4807,7 +4588,7 @@ broccoli-terser-sourcemap@^4.1.0: walk-sync "^2.2.0" workerpool "^6.0.0" -broccoli@^3.5.1: +broccoli@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/broccoli/-/broccoli-3.5.2.tgz#60921167d57b43fb5bad527420d62fe532595ef4" integrity sha512-sWi3b3fTUSVPDsz5KsQ5eCQNVAtLgkIE/HYFkEZXR/07clqmd4E/gFiuwSaqa9b+QTXc1Uemfb7TVWbEIURWDg== @@ -4837,81 +4618,7 @@ broccoli@^3.5.1: underscore.string "^3.2.2" watch-detector "^1.0.0" -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.9: +browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.9: version "4.21.10" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== @@ -4956,20 +4663,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -4988,21 +4681,23 @@ builtin-modules@^2.0.0: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e" integrity sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg== -builtin-modules@^3.1.0: +builtin-modules@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== +builtins@^5.0.0, builtins@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + bytes@1: version "1.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" @@ -5037,26 +4732,47 @@ cacache@^10.0.0: unique-filename "^1.1.0" y18n "^4.0.0" -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" +cacache@^16.0.0, cacache@^16.1.0: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" + +cacache@^17.0.0: + version "17.1.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35" + integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== + dependencies: + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^7.7.1" + minipass "^7.0.3" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^4.0.0" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" cacache@^9.2.9: version "9.3.0" @@ -5111,12 +4827,18 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -calculate-cache-key-for-tree@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/calculate-cache-key-for-tree/-/calculate-cache-key-for-tree-1.2.3.tgz#5a5e4fcfa2d374a63e47fe967593f179e8282825" - integrity sha512-PPQorvdNw8K8k7UftCeradwOmKDSDJs8wcqYTtJPEt3fHbZyK8QsorybJA+lOmk0dgE61vX6R+5Kd3W9h4EMGg== +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== dependencies: - json-stable-stringify "^1.0.1" + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" calculate-cache-key-for-tree@^2.0.0: version "2.0.0" @@ -5151,6 +4873,16 @@ camel-case@^4.1.1: pascal-case "^3.1.2" tslib "^2.0.3" +camelcase-keys@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" + integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== + dependencies: + camelcase "^6.3.0" + map-obj "^4.1.0" + quick-lru "^5.1.1" + type-fest "^1.2.1" + camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" @@ -5161,6 +4893,11 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.2.0, camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + can-symlink@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/can-symlink/-/can-symlink-1.0.0.tgz#97b607d8a84bb6c6e228b902d864ecb594b9d219" @@ -5168,17 +4905,7 @@ can-symlink@^1.0.0: dependencies: tmp "0.0.28" -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001517: +caniuse-lite@^1.0.30001517: version "1.0.30001534" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz#f24a9b2a6d39630bac5c132b5dff89b39a12e7dd" integrity sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q== @@ -5210,25 +4937,17 @@ cardinal@^1.0.0: ansicolors "~0.2.1" redeyed "~1.0.0" -cardinal@~0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-0.4.4.tgz#ca5bb68a5b511b90fe93b9acea49bdee5c32bfe2" - integrity sha512-3MxV0o9wOpQcobrcSrRpaSxlYkohCcZu0ytOjJUww/Yo/223q4Ecloo7odT+M0SI5kPgb1JhvSaF4EEuVXOLAQ== - dependencies: - ansicolors "~0.2.1" - redeyed "~0.4.0" - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chalk@5.3.0: +chalk@5.3.0, chalk@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== @@ -5248,7 +4967,7 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -5256,15 +4975,6 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" - integrity sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ== - dependencies: - ansi-styles "~1.0.0" - has-color "~0.1.0" - strip-ansi "~0.1.0" - chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -5277,45 +4987,16 @@ charm@^1.0.0: dependencies: inherits "^2.0.1" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.0.1, chownr@^1.1.1: +chownr@^1.0.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chownr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" @@ -5336,19 +5017,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.3.0: +ci-info@^3.7.0, ci-info@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -5395,7 +5068,7 @@ clean-css@^4.1.9: dependencies: source-map "~0.6.0" -clean-stack@^2.2.0: +clean-stack@^2.0.0, clean-stack@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== @@ -5410,6 +5083,11 @@ cli-boxes@^1.0.0: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" integrity sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg== +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + cli-cursor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" @@ -5500,6 +5178,22 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -5565,6 +5259,11 @@ color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +colord@^2.9.3: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + colorette@^2.0.20: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" @@ -5575,12 +5274,7 @@ colors@1.0.3: resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== -colors@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.0.tgz#5f20c9fef6945cb1134260aab33bfbdc8295e04e" - integrity sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw== - -colors@^1.1.2, colors@^1.4.0: +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== @@ -5627,10 +5321,10 @@ commander@^4.1.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== common-tags@^1.8.0: version "1.8.2" @@ -5677,7 +5371,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@~1.6.0: +concat-stream@^1.5.0, concat-stream@^1.5.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -5687,21 +5381,20 @@ concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@~1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.2.1.tgz#f35100b6c46378bfba8b6b80f9f0d0ccdf13dc60" - integrity sha512-njwWXQsxCFDRlKE79ALQF6+t4MNSAYVD8PVZJg90GKIt4UGu4H9G6qkZfnq/m0SvGj3wkO8gGgKEdnNodJElow== - dependencies: - bops "0.0.6" - -concat-stream@~1.5.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" - integrity sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ== +concurrently@^8.0.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-8.2.0.tgz#cdc9f621a4d913366600355d68254df2c5e782f3" + integrity sha512-nnLMxO2LU492mTUj9qX/az/lESonSZu81UznYDoXtz1IQf996ixVqPAgHXwvHiHCAef/7S8HIK+fTFK7Ifk8YA== dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" + chalk "^4.1.2" + date-fns "^2.30.0" + lodash "^4.17.21" + rxjs "^7.8.1" + shell-quote "^1.8.1" + spawn-command "0.0.2" + supports-color "^8.1.1" + tree-kill "^1.2.2" + yargs "^17.7.2" config-chain@~1.1.11: version "1.1.13" @@ -5735,7 +5428,7 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -confusing-browser-globals@^1.0.5: +confusing-browser-globals@^1.0.10: version "1.0.11" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== @@ -5750,11 +5443,6 @@ connect@^3.6.6: parseurl "~1.3.3" utils-merge "1.0.1" -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -5778,11 +5466,6 @@ consolidate@^0.16.0: dependencies: bluebird "^3.7.2" -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== - content-disposition@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -5805,6 +5488,11 @@ convert-source-map@^1.5.1, convert-source-map@^1.7.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -5879,13 +5567,25 @@ cors@~2.8.5: object-assign "^4" vary "^1" -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== +cosmiconfig@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" + integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + +cpr@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cpr/-/cpr-3.0.1.tgz#b9a55038b7cd81a35c17b9761895bd8496aef1e5" + integrity sha512-Xch4PXQ/KC8lJ+KfJ9JI6eG/nmppLrPPWg5Q+vh65Qr9EjuJEubxh/H/Le1TmCZ7+Xv7iJuNRqapyOFZB+wsxA== dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" + graceful-fs "^4.1.5" + minimist "^1.2.0" + mkdirp "~0.5.1" + rimraf "^2.5.4" create-error-class@^3.0.0: version "3.0.2" @@ -5894,29 +5594,6 @@ create-error-class@^3.0.0: dependencies: capture-stack-trace "^1.0.0" -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -5926,7 +5603,7 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -5953,23 +5630,6 @@ cryptiles@2.x.x: dependencies: boom "2.x.x" -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" @@ -5980,6 +5640,11 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== +css-functions-list@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.0.tgz#8290b7d064bf483f48d6559c10e98dc4d1ad19ee" + integrity sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg== + css-loader@^5.2.0: version "5.2.7" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" @@ -5996,7 +5661,7 @@ css-loader@^5.2.0: schema-utils "^3.0.0" semver "^7.3.5" -css-tree@^2.0.4: +css-tree@^2.0.4, css-tree@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== @@ -6004,7 +5669,7 @@ css-tree@^2.0.4: mdn-data "2.0.30" source-map-js "^1.0.1" -csscolorparser@~1.0.2, csscolorparser@~1.0.3: +csscolorparser@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/csscolorparser/-/csscolorparser-1.0.3.tgz#b34f391eea4da8f3e98231e2ccd8df9c041f171b" integrity sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w== @@ -6039,20 +5704,13 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-fns@^2.28.0: +date-fns@^2.30.0: version "2.30.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== dependencies: "@babel/runtime" "^7.21.0" -date-time@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/date-time/-/date-time-2.1.0.tgz#0286d1b4c769633b3ca13e1e62558d2dbdc2eba2" - integrity sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g== - dependencies: - time-zone "^1.0.0" - "dcp-ember-metrics@https://github.com/dhochbaum-dcp/dcp-ember-metrics": version "1.0.0" resolved "https://github.com/dhochbaum-dcp/dcp-ember-metrics#32c076eab242c34fc87245b6ad039e06c3dd7585" @@ -6075,14 +5733,14 @@ debug@3.1.0: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^3.0.0, debug@^3.0.1, debug@^3.1.0, debug@^3.2.7: +debug@^3.0.1, debug@^3.1.0, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -6094,16 +5752,36 @@ debuglog@^1.0.1: resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== -decamelize@^1.1.1, decamelize@^1.2.0: +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== +decamelize@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" + integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== + decode-uri-component@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -6114,6 +5792,11 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + default-require-extensions@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" @@ -6128,6 +5811,11 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + define-data-property@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" @@ -6137,6 +5825,11 @@ define-data-property@^1.0.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" @@ -6178,11 +5871,6 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -denodeify@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" - integrity sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg== - depd@2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -6193,13 +5881,10 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -des.js@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" - integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== destroy@1.2.0: version "1.2.0" @@ -6241,20 +5926,11 @@ dezalgo@^1.0.0, dezalgo@~1.0.3: asap "^2.0.0" wrappy "1" -diff@^5.0.0, diff@^5.1.0: +diff@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -6285,11 +5961,6 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" @@ -6360,7 +6031,7 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -earcut@^2.1.5, earcut@^2.2.4: +earcut@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== @@ -6401,31 +6072,11 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.477: +electron-to-chromium@^1.4.477: version "1.4.520" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.520.tgz#c19c25a10d87bd88a9aae2b76cae9235a50c2994" integrity sha512-Frfus2VpYADsrh1lB3v/ft/WVFlVzOIm+Q0p7U7VqHI6qr7NWHYKe+Wif3W50n7JAFoBsWVsoU0+qDks6WQ60g== -element-resize-detector@^1.1.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.2.4.tgz#3e6c5982dd77508b5fa7e6d5c02170e26325c9b1" - integrity sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg== - dependencies: - batch-processor "1.0.0" - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - ember-assign-helper@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/ember-assign-helper/-/ember-assign-helper-0.4.0.tgz#f0a313033656c0d2cbbcb29d55b9cd13f04bc7c1" @@ -6442,50 +6093,15 @@ ember-ast-helpers@0.3.5: "@glimmer/compiler" "^0.27.0" "@glimmer/syntax" "^0.27.0" -ember-async-await-helper@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ember-async-await-helper/-/ember-async-await-helper-0.1.0.tgz#30a0b0a215c1337be78b7a56017646bd917f2b97" - integrity sha512-ik09rbbVXU+Ply7k3hC4ItUR1rUdGViL2JlMGWMfzZmnWdv7gQngLp3WWMIsjG3PqEs9ReBU0X2w3y3VTDzd0Q== - dependencies: - ember-cli-babel "^6.16.0" - ember-cli-htmlbars "^3.0.0" - -ember-auto-import@^1.11.3, ember-auto-import@^1.12.0, ember-auto-import@^1.6.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/ember-auto-import/-/ember-auto-import-1.12.2.tgz#cc7298ee5c0654b0249267de68fb27a2861c3579" - integrity sha512-gLqML2k77AuUiXxWNon1FSzuG1DV7PEPpCLCU5aJvf6fdL6rmFfElsZRh+8ELEB/qP9dT+LHjNEunVzd2dYc8A== - dependencies: - "@babel/core" "^7.1.6" - "@babel/preset-env" "^7.10.2" - "@babel/traverse" "^7.1.6" - "@babel/types" "^7.1.6" - "@embroider/shared-internals" "^1.0.0" - babel-core "^6.26.3" - babel-loader "^8.0.6" - babel-plugin-syntax-dynamic-import "^6.18.0" - babylon "^6.18.0" - broccoli-debug "^0.6.4" - broccoli-node-api "^1.7.0" - broccoli-plugin "^4.0.0" - broccoli-source "^3.0.0" - debug "^3.1.0" - ember-cli-babel "^7.0.0" - enhanced-resolve "^4.0.0" - fs-extra "^6.0.1" - fs-tree-diff "^2.0.0" - handlebars "^4.3.1" - js-string-escape "^1.0.1" - lodash "^4.17.19" - mkdirp "^0.5.1" - resolve-package-path "^3.1.0" - rimraf "^2.6.2" - semver "^7.3.4" - symlink-or-copy "^1.2.0" - typescript-memoize "^1.0.0-alpha.3" - walk-sync "^0.3.3" - webpack "^4.43.0" +ember-async-await-helper@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ember-async-await-helper/-/ember-async-await-helper-1.0.0.tgz#1206ff20e6adf71d385a597e14ab3a961e7dc566" + integrity sha512-RT2tHbziFpTJYRMwh16JOdgWS42m/OaJqLVA6xieDYjNPnv98zfss4H/ZZBWYOxZSJH4aaU5zH7eBECRsRxvqw== + dependencies: + ember-cli-babel "^7.26.3" + ember-cli-htmlbars "^5.7.1" -ember-auto-import@^2.2.4, ember-auto-import@^2.6.0: +ember-auto-import@^1.11.3, ember-auto-import@^2.2.4, ember-auto-import@^2.3.0, ember-auto-import@^2.4.3, ember-auto-import@^2.5.0, ember-auto-import@^2.6.0, ember-auto-import@^2.6.1, ember-auto-import@^2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/ember-auto-import/-/ember-auto-import-2.6.3.tgz#f18d1b93dd10b08ba5496518436f9d56dd4e000a" integrity sha512-uLhrRDJYWCRvQ4JQ1e64XlSrqAKSd6PXaJ9ZsZI6Tlms9T4DtQFxNXasqji2ZRJBVrxEoLCRYX3RTldsQ0vNGQ== @@ -6522,23 +6138,25 @@ ember-auto-import@^2.2.4, ember-auto-import@^2.6.0: typescript-memoize "^1.0.0-alpha.3" walk-sync "^3.0.0" -"ember-basic-dropdown@^3.1.0 || ^4.0.2": - version "4.0.5" - resolved "https://registry.yarnpkg.com/ember-basic-dropdown/-/ember-basic-dropdown-4.0.5.tgz#7369fc3d3cd774223510b89ba2ace44b62da5112" - integrity sha512-cD0cnL4gjoNNGJ+kMNtGlsikan5v5aVWp5Mkv8fgnLS96EGhmAMlTiRBexmyzK+4Zbe+xOlZKNQva4bZ7FrQGQ== - dependencies: - "@ember/render-modifiers" "^2.0.4" - "@embroider/macros" "^1.2.0" - "@embroider/util" "^1.2.0" - "@glimmer/component" "^1.0.4" - "@glimmer/tracking" "^1.0.4" +ember-basic-dropdown@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/ember-basic-dropdown/-/ember-basic-dropdown-7.2.1.tgz#897d1f6f04090233fa0b978f07293d20f3167592" + integrity sha512-9LS+OHNlLu/dr5QutpL+q9YKT97SBqCfDm6PzFuw9DKqs80/auil2JWe0bSRVL6BuQpBUhXDK6DtyA4a4JNK7A== + dependencies: + "@ember/render-modifiers" "^2.0.5" + "@embroider/macros" "^1.12.0" + "@embroider/util" "^1.11.0" + "@glimmer/component" "^1.1.2" + "@glimmer/tracking" "^1.1.2" + ember-auto-import "^2.6.3" ember-cli-babel "^7.26.11" - ember-cli-htmlbars "^6.0.1" - ember-cli-typescript "^4.2.1" - ember-element-helper "^0.6.0" - ember-get-config "^1.0.2" - ember-maybe-in-element "^2.0.3" - ember-style-modifier "^0.7.0" + ember-cli-htmlbars "^6.2.0" + ember-cli-typescript "^5.2.1" + ember-element-helper "^0.6.1" + ember-get-config "^2.1.1" + ember-maybe-in-element "^2.1.0" + ember-modifier "^3.2.7 || ^4.0.0" + ember-style-modifier "^0.8.0 || ^1.0.0 || ^2.0.0 || ^3.0.0" ember-truth-helpers "^2.1.0 || ^3.0.0" ember-cache-primitive-polyfill@^1.0.1: @@ -6551,77 +6169,32 @@ ember-cache-primitive-polyfill@^1.0.1: ember-compatibility-helpers "^1.2.1" silent-error "^1.1.1" -ember-cached-decorator-polyfill@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/ember-cached-decorator-polyfill/-/ember-cached-decorator-polyfill-0.1.4.tgz#f1e2c65cc78d0d9c4ac0e047e643af477eb85ace" - integrity sha512-JOK7kBCWsTVCzmCefK4nr9BACDJk0owt9oIUaVt6Q0UtQ4XeAHmoK5kQ/YtDcxQF1ZevHQFdGhsTR3JLaHNJgA== +ember-cached-decorator-polyfill@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ember-cached-decorator-polyfill/-/ember-cached-decorator-polyfill-1.0.2.tgz#26445056ebee3776c340e28652ce59be73dd3958" + integrity sha512-hUX6OYTKltAPAu8vsVZK02BfMTV0OUXrPqvRahYPhgS7D0I6joLjlskd7mhqJMcaXLywqceIy8/s+x8bxF8bpQ== dependencies: - "@glimmer/tracking" "^1.0.4" + "@embroider/macros" "^1.8.3" + "@glimmer/tracking" "^1.1.2" + babel-import-util "^1.2.2" ember-cache-primitive-polyfill "^1.0.1" - ember-cli-babel "^7.21.0" + ember-cli-babel "^7.26.11" ember-cli-babel-plugin-helpers "^1.1.1" -ember-clean-project@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ember-clean-project/-/ember-clean-project-1.0.1.tgz#40feb8f456652c52e2a00859fda368c125c1d7dc" - integrity sha512-f70aroBnE3+tvihLbU0P6P6oG3B9TpDxEi2nQ1AlBAiPxMZsAEFzfLocdD5f858K3U3uGh8wIZ+sobUca3wFBA== - dependencies: - colors "^1.1.2" - ember-cli-babel "^6.3.0" - fs-extra "^4.0.2" - -ember-cli-app-version@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-5.0.0.tgz#adad17c6f706f419b223707eec66dd1cd28530c3" - integrity sha512-afhx/CXDOMNXzoe4NDPy5WUfxWmYYHUzMCiTyvPBxCDBXYcMrtxNWxvgaSaeqcoHVEmqzeyBj8V82tzmT1dcyw== +ember-cli-app-version@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-6.0.1.tgz#401cdd440c7fef2059aa54bbadae9ca581d4faa0" + integrity sha512-XA1FwkWA5QytmWF0jcJqEr3jcZoiCl9Fb33TZgOVfClL7Voxe+/RwzISEprBRQgbf7j8z1xf8/RJCKfclUy3rQ== dependencies: - ember-cli-babel "^7.23.1" + ember-cli-babel "^7.26.11" git-repo-info "^2.1.1" -ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, ember-cli-babel-plugin-helpers@^1.1.1: +ember-cli-babel-plugin-helpers@^1.1.0, ember-cli-babel-plugin-helpers@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879" integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw== -ember-cli-babel@6.14.1: - version "6.14.1" - resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.14.1.tgz#796339229035910b625593caffbc2683792ada68" - integrity sha512-dnbc3fwwQphjRoQCflS0zpJHjJ54HDzcCv0FFDxUfMSxLFU/ccC/DRRtuB50WUY/n1Y6zgd66ezTXB+G82KBnw== - dependencies: - amd-name-resolver "1.2.0" - babel-plugin-debug-macros "^0.1.11" - babel-plugin-ember-modules-api-polyfill "^2.3.0" - babel-plugin-transform-es2015-modules-amd "^6.24.0" - babel-polyfill "^6.26.0" - babel-preset-env "^1.7.0" - broccoli-babel-transpiler "^6.4.2" - broccoli-debug "^0.6.4" - broccoli-funnel "^2.0.0" - broccoli-source "^1.1.0" - clone "^2.0.0" - ember-cli-version-checker "^2.1.2" - semver "^5.5.0" - -ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.10.0, ember-cli-babel@^6.16.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.2: - version "6.18.0" - resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.18.0.tgz#3f6435fd275172edeff2b634ee7b29ce74318957" - integrity sha512-7ceC8joNYxY2wES16iIBlbPSxwKDBhYwC8drU3ZEvuPDMwVv1KzxCNu1fvxyFEBWhwaRNTUxSCsEVoTd9nosGA== - dependencies: - amd-name-resolver "1.2.0" - babel-plugin-debug-macros "^0.2.0-beta.6" - babel-plugin-ember-modules-api-polyfill "^2.6.0" - babel-plugin-transform-es2015-modules-amd "^6.24.0" - babel-polyfill "^6.26.0" - babel-preset-env "^1.7.0" - broccoli-babel-transpiler "^6.5.0" - broccoli-debug "^0.6.4" - broccoli-funnel "^2.0.0" - broccoli-source "^1.1.0" - clone "^2.0.0" - ember-cli-version-checker "^2.1.2" - semver "^5.5.0" - -ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.1.3, ember-cli-babel@^7.10.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.26.0, ember-cli-babel@^7.26.11, ember-cli-babel@^7.26.3, ember-cli-babel@^7.26.5, ember-cli-babel@^7.26.6, ember-cli-babel@^7.7.3, ember-cli-babel@^7.8.0: +ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.1.3, ember-cli-babel@^7.10.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.26.0, ember-cli-babel@^7.26.10, ember-cli-babel@^7.26.11, ember-cli-babel@^7.26.3, ember-cli-babel@^7.26.4, ember-cli-babel@^7.26.5, ember-cli-babel@^7.26.6, ember-cli-babel@^7.26.8, ember-cli-babel@^7.7.3: version "7.26.11" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.26.11.tgz#50da0fe4dcd99aada499843940fec75076249a9f" integrity sha512-JJYeYjiz/JTn34q7F5DSOjkkZqy8qwFOOxXfE6pe9yEJqWGu4qErKxlz8I22JoVEQ/aBUO+OcKTpmctvykM9YA== @@ -6692,7 +6265,7 @@ ember-cli-code-coverage@1.0.0-beta.7: rsvp "^4.8.3" walk-sync "^0.3.3" -ember-cli-dependency-checker@^3.2.0: +ember-cli-dependency-checker@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/ember-cli-dependency-checker/-/ember-cli-dependency-checker-3.3.2.tgz#94ed7e8e3d47e494082eb9ccfaa489d603ab6017" integrity sha512-PwkrW5oYsdPWwt+0Tojufmv/hxVETTjkrEdK7ANQB2VSnqpA5UcYubwpQM9ONuR2J8wyNDMwEHlqIrk/FYtBsQ== @@ -6723,28 +6296,6 @@ ember-cli-dependency-lint@^2.0.1: chalk "^2.3.0" semver "^5.5.0" -ember-cli-foundation-6-sass@^0.0.27: - version "0.0.27" - resolved "https://registry.yarnpkg.com/ember-cli-foundation-6-sass/-/ember-cli-foundation-6-sass-0.0.27.tgz#ccbada1e5f6f5d23da47ed34dbb25a68a47baaca" - integrity sha512-9CAwZN+5wUGANTAV/m950GvCKF+BOMiSaRYZgzdTfeCV7w6zSTvf10VbvYVhkDCQ+QiGdTUmK/i9heE9p9wd0w== - dependencies: - "@ember/jquery" "^0.6.0" - babel-register "^6.18.0" - broccoli-babel-transpiler "^6.1.1" - broccoli-file-creator "^1.1.1" - broccoli-funnel "^1.2.0" - broccoli-merge-trees "^2.0.0" - broccoli-rollup "^1.3.0" - ember-cli-babel "^7.7.3" - ember-cli-htmlbars "^2.0.1" - ember-cli-htmlbars-inline-precompile "^1.0.0" - ember-cli-sass "^7.1.7" - ember-cli-version-checker "^3.1.3" - fastboot-transform "^0.1.2" - foundation-sites "^6.3.1" - rollup-plugin-legacy "^1.0.0" - rollup-plugin-node-resolve "^3.0.0" - ember-cli-get-component-path-option@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ember-cli-get-component-path-option/-/ember-cli-get-component-path-option-1.0.0.tgz#0d7b595559e2f9050abed804f1d8eff1b08bc771" @@ -6771,17 +6322,7 @@ ember-cli-htmlbars@^2.0.1: json-stable-stringify "^1.0.0" strip-bom "^3.0.0" -ember-cli-htmlbars@^3.0.0, ember-cli-htmlbars@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-3.1.0.tgz#87806c2a0bca2ab52d4fb8af8e2215c1ca718a99" - integrity sha512-cgvRJM73IT0aePUG7oQ/afB7vSRBV3N0wu9BrWhHX2zkR7A7cUBI7KC9VPk6tbctCXoM7BRGsCC4aIjF7yrfXA== - dependencies: - broccoli-persistent-filter "^2.3.1" - hash-for-dep "^1.5.1" - json-stable-stringify "^1.0.1" - strip-bom "^3.0.0" - -ember-cli-htmlbars@^4.2.0, ember-cli-htmlbars@^4.3.1: +ember-cli-htmlbars@^4.2.0, ember-cli-htmlbars@^4.2.3, ember-cli-htmlbars@^4.3.1: version "4.5.0" resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-4.5.0.tgz#d299e4f7eba6f30dc723ee086906cc550beb252e" integrity sha512-bYJpK1pqFu9AadDAGTw05g2LMNzY8xTCIqQm7dMJmKEoUpLRFbPf4SfHXrktzDh7Q5iggl6Skzf1M0bPlIxARw== @@ -6823,7 +6364,7 @@ ember-cli-htmlbars@^5.3.1, ember-cli-htmlbars@^5.7.1: strip-bom "^4.0.0" walk-sync "^2.2.0" -ember-cli-htmlbars@^6.0.0, ember-cli-htmlbars@^6.0.1, ember-cli-htmlbars@^6.1.1: +ember-cli-htmlbars@^6.0.0, ember-cli-htmlbars@^6.0.1, ember-cli-htmlbars@^6.1.1, ember-cli-htmlbars@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz#ac85f2bbd09788992ab7f9ca832cd044fb8e5798" integrity sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag== @@ -6866,19 +6407,19 @@ ember-cli-lodash-subset@^2.0.1: resolved "https://registry.yarnpkg.com/ember-cli-lodash-subset/-/ember-cli-lodash-subset-2.0.1.tgz#20cb68a790fe0fde2488ddfd8efbb7df6fe766f2" integrity sha512-QkLGcYv1WRK35g4MWu/uIeJ5Suk2eJXKtZ+8s+qE7C9INmpCPyPxzaqZABquYzcWNzIdw6kYwz3NWAFdKYFxwg== -ember-cli-mirage@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/ember-cli-mirage/-/ember-cli-mirage-2.4.0.tgz#7414573c3f9c5d40cefa44835858103691af95f6" - integrity sha512-cy8B+IZV07V6xgnFzktKUsntTQvIqPSS3u4+XaLdNW91yOowLsN2BsuQldN3eCnwswgE3a9eGNGS4I0BD4llNA== +ember-cli-mirage@3.0.0-alpha.3: + version "3.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/ember-cli-mirage/-/ember-cli-mirage-3.0.0-alpha.3.tgz#57fc4a9b55770d20c13db11a278aa8f723a38307" + integrity sha512-u40mt6ZsprSATZm+RXpxhlh829cU/ONwdqg2A4p6JcmG5iF5m00YzxOX7RtPCpj3sTAtRokc6+NlbXHXF5RbjA== dependencies: - "@embroider/macros" "^0.41.0" + "@embroider/macros" "^1.0.0" broccoli-file-creator "^2.1.1" broccoli-funnel "^3.0.3" broccoli-merge-trees "^4.2.0" - ember-auto-import "^1.12.0" - ember-cli-babel "^7.26.6" + ember-auto-import "^2.3.0" + ember-cli-babel "^7.26.11" ember-destroyable-polyfill "^2.0.3" - ember-get-config "0.2.4 - 0.5.0" + ember-get-config "0.2.4 - 0.5.0 || ^1.0.0" ember-inflector "^2.0.0 || ^3.0.0 || ^4.0.2" lodash-es "^4.17.11" miragejs "^0.1.43" @@ -6897,17 +6438,6 @@ ember-cli-normalize-entity-name@^1.0.0: dependencies: silent-error "^1.0.0" -ember-cli-nouislider@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ember-cli-nouislider/-/ember-cli-nouislider-1.0.0.tgz#193d4293ad0603fbd83854e87d6b8a3bd65e16f1" - integrity sha512-daz9lHVtj6gonDXs6+OvhUF31NZZPqdQu7bHHw3P3ij0P/94TihmkTN7ZKSeR/87gj2gyW+cLr2e8qeNopAEUA== - dependencies: - broccoli-funnel "^2.0.1" - broccoli-merge-trees "^2.0.0" - ember-cli-babel "^6.6.0" - ember-cli-htmlbars "^2.0.1" - nouislider "^11.0.3" - ember-cli-path-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ember-cli-path-utils/-/ember-cli-path-utils-1.0.0.tgz#4e39af8b55301cddc5017739b77a804fba2071ed" @@ -6936,7 +6466,7 @@ ember-cli-preprocess-registry@^3.3.0: debug "^3.0.1" process-relative-require "^1.0.0" -ember-cli-sass@11.0.1, ember-cli-sass@^11.0.1, ember-cli-sass@^7.1.7: +ember-cli-sass@^11.0.1: version "11.0.1" resolved "https://registry.yarnpkg.com/ember-cli-sass/-/ember-cli-sass-11.0.1.tgz#dc565764213a76973a83c0db9583cb79ba187dc5" integrity sha512-RMlFPMK4kaB+67seF/IIoY3EC4rRd+L58q+lyElrxB3FcQTgph/qmGwtqf9Up7m3SDbPiA7cccCOSmgReMgCXA== @@ -6990,78 +6520,15 @@ ember-cli-tree-shaker@0.2.0: broccoli-merge-trees "^2.0.0" ember-cli-dependency-graph "^0.1.2" -ember-cli-typescript@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ember-cli-typescript/-/ember-cli-typescript-3.0.0.tgz#3b838d1ce9e4d22a98e68da22ceac6dc0cfd9bfc" - integrity sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA== +ember-cli-typescript-blueprint-polyfill@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ember-cli-typescript-blueprint-polyfill/-/ember-cli-typescript-blueprint-polyfill-0.1.0.tgz#5917646a996b452a3a6b3f306ab2a27e93ea2cc2" + integrity sha512-g0weUTOnHmPGqVZzkQTl3Nbk9fzEdFkEXydCs5mT1qBjXh8eQ6VlmjjGD5/998UXKuA0pLSCVVMbSp/linLzGA== dependencies: - "@babel/plugin-transform-typescript" "~7.5.0" - ansi-to-html "^0.6.6" - debug "^4.0.0" - ember-cli-babel-plugin-helpers "^1.0.0" - execa "^2.0.0" - fs-extra "^8.0.0" - resolve "^1.5.0" - rsvp "^4.8.1" - semver "^6.0.0" - stagehand "^1.0.0" - walk-sync "^2.0.0" - -ember-cli-typescript@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ember-cli-typescript/-/ember-cli-typescript-2.0.2.tgz#464984131fbdc05655eb61d1c3cdd911d3137f0d" - integrity sha512-7I5azCTxOgRDN8aSSnJZIKSqr+MGnT+jLTUbBYqF8wu6ojs2DUnTePxUcQMcvNh3Q3B1ySv7Q/uZFSjdU9gSjA== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.1.0" - "@babel/plugin-transform-typescript" "~7.4.0" - ansi-to-html "^0.6.6" - debug "^4.0.0" - ember-cli-babel-plugin-helpers "^1.0.0" - execa "^1.0.0" - fs-extra "^7.0.0" - resolve "^1.5.0" - rsvp "^4.8.1" - semver "^6.0.0" - stagehand "^1.0.0" - walk-sync "^1.0.0" - -ember-cli-typescript@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/ember-cli-typescript/-/ember-cli-typescript-3.1.4.tgz#21d6ccd670d1f2e34c9cce68c6e32c442f46806b" - integrity sha512-HJ73kL45OGRmIkPhBNFt31I1SGUvdZND+LCH21+qpq3pPlFpJG8GORyXpP+2ze8PbnITNLzwe5AwUrpyuRswdQ== - dependencies: - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.4.4" - "@babel/plugin-proposal-optional-chaining" "^7.6.0" - "@babel/plugin-transform-typescript" "~7.8.0" - ansi-to-html "^0.6.6" - broccoli-stew "^3.0.0" - debug "^4.0.0" - ember-cli-babel-plugin-helpers "^1.0.0" - execa "^3.0.0" - fs-extra "^8.0.0" - resolve "^1.5.0" - rsvp "^4.8.1" - semver "^6.3.0" - stagehand "^1.0.0" - walk-sync "^2.0.0" - -ember-cli-typescript@^4.1.0, ember-cli-typescript@^4.2.0, ember-cli-typescript@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ember-cli-typescript/-/ember-cli-typescript-4.2.1.tgz#54d08fc90318cc986f3ea562f93ce58a6cc4c24d" - integrity sha512-0iKTZ+/wH6UB/VTWKvGuXlmwiE8HSIGcxHamwNhEC5x1mN3z8RfvsFZdQWYUzIWFN2Tek0gmepGRPTwWdBYl/A== - dependencies: - ansi-to-html "^0.6.15" - broccoli-stew "^3.0.0" - debug "^4.0.0" - execa "^4.0.0" - fs-extra "^9.0.1" - resolve "^1.5.0" - rsvp "^4.8.1" - semver "^7.3.2" - stagehand "^1.0.0" - walk-sync "^2.2.0" + chalk "^4.0.0" + remove-types "^1.0.0" -ember-cli-typescript@^5.0.0, ember-cli-typescript@^5.1.1: +ember-cli-typescript@3.0.0, ember-cli-typescript@5.2.1, ember-cli-typescript@^2.0.2, ember-cli-typescript@^5.0.0, ember-cli-typescript@^5.1.0, ember-cli-typescript@^5.1.1, ember-cli-typescript@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/ember-cli-typescript/-/ember-cli-typescript-5.2.1.tgz#553030f1ce3e8958b8e4fc34909acd1218cb35f2" integrity sha512-qqp5TAIuPHxHiGXJKL+78Euyhy0zSKQMovPh8sJpN/ZBYx0H90pONufHR3anaMcp1snVfx4B+mb9+7ijOik8ZA== @@ -7077,22 +6544,24 @@ ember-cli-typescript@^5.0.0, ember-cli-typescript@^5.1.1: stagehand "^1.0.0" walk-sync "^2.2.0" -ember-cli-update@0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/ember-cli-update/-/ember-cli-update-0.22.0.tgz#6c517f9b59bbb4e68f0155ca49962765e3d99367" - integrity sha512-4JmeO7LRtz86KZQntFUl8iRd23QWh7tI7h26ZBSoIL78GgOSeoKHFbEhYDJFJRAn21i0F0zuh+qte09zUhzRzg== - dependencies: - debug "^3.0.0" - execa "^0.10.0" - git-diff-apply "^0.9.3" - merge-package.json "^2.0.0" - npx "^10.0.1" - opn "^5.3.0" - semver "^5.4.1" - update-notifier "^2.5.0" - yargs "^12.0.0" +ember-cli-update@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ember-cli-update/-/ember-cli-update-1.0.1.tgz#c8b7fd3d83490641d9ec5bacc60bd8826ddc32b6" + integrity sha512-YEHXnZYaGEjOdQzuGJQ3W4uZyV4CndkHEyeuMEsLMdcgJ76g//fUC3u+awnvz+Z6lq58WbqV+8mty3BhqgrteQ== + dependencies: + boilerplate-update "^2.0.0" + debug "^4.2.0" + execa "^5.0.0" + fs-extra "^10.0.0" + inquirer "^8.0.0" + npm-package-arg "^8.0.1" + resolve "^1.10.0" + semver "^7.3.2" + tmp "0.2.1" + update-notifier "^5.0.0" + yargs "^17.0.0" -ember-cli-version-checker@^2.0.0, ember-cli-version-checker@^2.1.0, ember-cli-version-checker@^2.1.2: +ember-cli-version-checker@^2.1.0, ember-cli-version-checker@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-2.2.0.tgz#47771b731fe0962705e27c8199a9e3825709f3b3" integrity sha512-G+KtYIVlSOWGcNaTFHk76xR4GdzDLzAS4uxZUKdASuFX0KJE43C6DaqL+y3VTpUFLI2FIkAS6HZ4I1YBi+S3hg== @@ -7126,104 +6595,106 @@ ember-cli-version-checker@^5.1.1, ember-cli-version-checker@^5.1.2: semver "^7.3.4" silent-error "^1.1.1" -ember-cli@~3.28.6: - version "3.28.6" - resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.28.6.tgz#477a6a134501639d6cb03da6746158501c41efce" - integrity sha512-aGHIDXM5KujhU+tHyfp1X5bUp3yj47sIWI0zgybyIw6vv6ErAu/eKWWMSib5PF8cQDdXG9vttBcXnvQ4QBNIPQ== +ember-cli@~4.12.1: + version "4.12.2" + resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-4.12.2.tgz#a9d2dd191093fcf18122732fae8999c9ca873447" + integrity sha512-990UglceEsB3nd/pTI08wL+hbApICrd6P4BO88486rSf9r3XjZ7LBcD318N8I1AGe5IUDkbccMrOQxoHge6zNg== dependencies: - "@babel/core" "^7.13.8" - "@babel/plugin-transform-modules-amd" "^7.12.1" + "@babel/core" "^7.21.0" + "@babel/plugin-transform-modules-amd" "^7.20.11" amd-name-resolver "^1.3.1" babel-plugin-module-resolver "^4.1.0" bower-config "^1.4.3" bower-endpoint-parser "0.2.2" - broccoli "^3.5.1" + broccoli "^3.5.2" broccoli-amd-funnel "^2.0.1" - broccoli-babel-transpiler "^7.8.0" + broccoli-babel-transpiler "^7.8.1" broccoli-builder "^0.18.14" broccoli-concat "^4.2.5" broccoli-config-loader "^1.0.1" broccoli-config-replace "^1.1.2" broccoli-debug "^0.6.5" - broccoli-funnel "^3.0.5" + broccoli-funnel "^3.0.8" broccoli-funnel-reducer "^1.0.0" - broccoli-merge-trees "^3.0.2" + broccoli-merge-trees "^4.2.0" broccoli-middleware "^2.1.1" broccoli-slow-trees "^3.1.0" - broccoli-source "^3.0.0" + broccoli-source "^3.0.1" broccoli-stew "^3.0.0" calculate-cache-key-for-tree "^2.0.0" capture-exit "^2.0.0" - chalk "^4.1.0" - ci-info "^2.0.0" + chalk "^4.1.2" + ci-info "^3.7.0" clean-base-url "^1.0.0" compression "^1.7.4" configstore "^5.0.1" console-ui "^3.1.2" core-object "^3.1.5" dag-map "^2.0.2" - diff "^5.0.0" + diff "^5.1.0" ember-cli-is-package-missing "^1.0.0" ember-cli-lodash-subset "^2.0.1" ember-cli-normalize-entity-name "^1.0.0" ember-cli-preprocess-registry "^3.3.0" ember-cli-string-utils "^1.1.0" - ember-source-channel-url "^3.0.0" ensure-posix-path "^1.1.1" - execa "^5.0.0" + execa "^5.1.1" exit "^0.1.2" - express "^4.17.1" - filesize "^6.1.0" + express "^4.18.1" + filesize "^10.0.5" find-up "^5.0.0" find-yarn-workspace-root "^2.0.0" fixturify-project "^2.1.1" - fs-extra "^9.1.0" + fs-extra "^11.1.0" fs-tree-diff "^2.0.1" get-caller-file "^2.0.5" git-repo-info "^2.1.1" - glob "^7.1.6" + glob "^8.1.0" heimdalljs "^0.2.6" - heimdalljs-fs-monitor "^1.1.0" + heimdalljs-fs-monitor "^1.1.1" heimdalljs-graph "^1.0.0" heimdalljs-logger "^0.1.10" http-proxy "^1.18.1" - inflection "^1.12.0" + inflection "^2.0.1" + inquirer "^8.2.1" is-git-url "^1.0.0" - is-language-code "^2.0.0" - isbinaryfile "^4.0.6" - js-yaml "^3.14.0" - json-stable-stringify "^1.0.1" + is-language-code "^3.1.0" + isbinaryfile "^5.0.0" + js-yaml "^4.1.0" leek "0.0.24" lodash.template "^4.5.0" - markdown-it "^12.0.4" - markdown-it-terminal "0.2.1" - minimatch "^3.0.4" + markdown-it "^13.0.1" + markdown-it-terminal "^0.4.0" + minimatch "^7.4.1" morgan "^1.10.0" nopt "^3.0.6" - npm-package-arg "^8.1.1" + npm-package-arg "^10.1.0" + os-locale "^5.0.0" p-defer "^3.0.0" - portfinder "^1.0.28" + portfinder "^1.0.32" promise-map-series "^0.3.0" - promise.hash.helper "^1.0.7" + promise.hash.helper "^1.0.8" quick-temp "^0.1.8" - resolve "^1.20.0" - resolve-package-path "^3.1.0" - sane "^4.1.0" - semver "^7.3.4" + remove-types "^1.0.0" + resolve "^1.22.1" + resolve-package-path "^4.0.3" + safe-stable-stringify "^2.4.2" + sane "^5.0.1" + semver "^7.3.5" silent-error "^1.1.1" - sort-package-json "^1.49.0" + sort-package-json "^1.57.0" symlink-or-copy "^1.3.1" temp "0.9.4" - testem "^3.2.0" + testem "^3.10.1" tiny-lr "^2.0.0" tree-sync "^2.1.0" - uuid "^8.3.2" - walk-sync "^2.2.0" - watch-detector "^1.0.0" - workerpool "^6.1.4" + uuid "^9.0.0" + walk-sync "^3.0.0" + watch-detector "^1.0.2" + workerpool "^6.4.0" yam "^1.0.0" -ember-compatibility-helpers@^1.1.2, ember-compatibility-helpers@^1.2.0, ember-compatibility-helpers@^1.2.1, ember-compatibility-helpers@^1.2.5: +ember-compatibility-helpers@^1.1.2, ember-compatibility-helpers@^1.2.0, ember-compatibility-helpers@^1.2.1, ember-compatibility-helpers@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/ember-compatibility-helpers/-/ember-compatibility-helpers-1.2.6.tgz#603579ab2fb14be567ef944da3fc2d355f779cd8" integrity sha512-2UBUa5SAuPg8/kRVaiOfTwlXdeVweal1zdNPibwItrhR0IvPrXpaqwJDlEZnWKEoB+h33V0JIfiWleSG6hGkkA== @@ -7234,15 +6705,6 @@ ember-compatibility-helpers@^1.1.2, ember-compatibility-helpers@^1.2.0, ember-co fs-extra "^9.1.0" semver "^5.4.1" -ember-composability-tools@^0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/ember-composability-tools/-/ember-composability-tools-0.0.12.tgz#ac7954d4220468af2f431fefd8141d999daa1110" - integrity sha512-twb7I60OSSzHyJnCcl9OFw8OwfHvscHSQrgTFa4u6YNftKgNqXqc/Ejez1HqbG6I/CwGAcCrXquvTNDVSZdxvA== - dependencies: - ember-cli-babel "^7.8.0" - ember-cli-htmlbars "^3.1.0" - ember-in-element-polyfill "^0.2.0" - ember-composable-helpers@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ember-composable-helpers/-/ember-composable-helpers-3.2.0.tgz#6eb03626cf21d7cdcec4b949ac202c0cef43f4c3" @@ -7253,16 +6715,6 @@ ember-composable-helpers@3.2.0: ember-cli-babel "^7.1.0" resolve "^1.10.0" -ember-concurrency-decorators@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/ember-concurrency-decorators/-/ember-concurrency-decorators-2.0.3.tgz#2816c9a0283b90ba5340fc5b4e0b92ea91f7d6e3" - integrity sha512-r6O34YKI/slyYapVsuOPnmaKC4AsmBSwvgcadbdy+jHNj+mnryXPkm+3hhhRnFdlsKUKdEuXvl43lhjhYRLhhA== - dependencies: - "@ember-decorators/utils" "^6.1.0" - ember-cli-babel "^7.19.0" - ember-cli-htmlbars "^4.3.1" - ember-cli-typescript "^3.1.4" - ember-concurrency-retryable@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ember-concurrency-retryable/-/ember-concurrency-retryable-1.0.0.tgz#0edb7a954a02777f1335963e123917daff5eff96" @@ -7271,7 +6723,20 @@ ember-concurrency-retryable@1.0.0: ember-cli-babel "^7.26.3" ember-concurrency "^2.2.0" -"ember-concurrency@>=1.0.0 <3", ember-concurrency@^2.2.0, ember-concurrency@^2.3.7: +ember-concurrency@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/ember-concurrency/-/ember-concurrency-3.1.1.tgz#7f55ba4bfa4f42cfb23f8cb70aa3c6ef224e9500" + integrity sha512-doXFYYfy1C7jez+jDDlfahTp03QdjXeSY/W3Zbnx/q3UNJ9g10Shf2d7M/HvWo/TC22eU+6dPLIpqd/6q4pR+Q== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/types" "^7.12.13" + "@glimmer/tracking" "^1.1.2" + ember-cli-babel "^7.26.11" + ember-cli-babel-plugin-helpers "^1.1.1" + ember-cli-htmlbars "^6.2.0" + ember-compatibility-helpers "^1.2.0" + +"ember-concurrency@^2.0.0 || ^3.0.0", ember-concurrency@^2.2.0: version "2.3.7" resolved "https://registry.yarnpkg.com/ember-concurrency/-/ember-concurrency-2.3.7.tgz#52d786e37704b9054da1952638797e23714ec0e1" integrity sha512-sz6sTIXN/CuLb5wdpauFa+rWXuvXXSnSHS4kuNzU5GSMDX1pLBWSuovoUk61FUe6CYRqBmT1/UushObwBGickQ== @@ -7285,54 +6750,33 @@ ember-concurrency-retryable@1.0.0: ember-compatibility-helpers "^1.2.0" ember-destroyable-polyfill "^2.0.2" -ember-content-placeholders@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ember-content-placeholders/-/ember-content-placeholders-1.0.0.tgz#21c3ce60b1d7b4c9e8d80303124d3300cca03bc7" - integrity sha512-AbCTrADdxvbgtYSJzym+FsyJF3a8HnfIIKeafI1+LYBaT7+OO9ccd3y7PnqEmXqzvKQzWRd69Dt4cfCkZJRpfQ== - dependencies: - ember-cli-babel "^6.6.0" - ember-cli-htmlbars "^2.0.1" - -ember-copy@2.0.1, ember-copy@^2.0.1: +ember-copy@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ember-copy/-/ember-copy-2.0.1.tgz#13192b12a250324bb4a8b4547a680b113f4e3041" integrity sha512-N/XFvZszrzyyX4IcNoeK4mJvIItNuONumhPLqi64T8NDjJkxBj4Pq61rvMkJx/9eZ8alzE4I8vYKOLxT0FvRuQ== dependencies: ember-cli-babel "^7.22.1" -ember-data-model-fragments@5.0.0-beta.8: - version "5.0.0-beta.8" - resolved "https://registry.yarnpkg.com/ember-data-model-fragments/-/ember-data-model-fragments-5.0.0-beta.8.tgz#d29e0f59a8ba0157fd9d616d50b3faec731bbeac" - integrity sha512-vOt2UXyhsWoZXCB9XAUqAobdRLr3ydUG6L36Rd7Qsg/1kj0jApQIEJS4qfA+xlBgirKEJ322PZqlBOv8zQSS8w== - dependencies: - broccoli-file-creator "^2.1.1" - broccoli-merge-trees "^3.0.0" - calculate-cache-key-for-tree "^1.1.0" - ember-cli-babel "^7.23.0" - ember-compatibility-helpers "^1.2.1" - ember-copy "2.0.1" - git-repo-info "^2.1.1" - npm-git-info "^1.0.3" - -ember-data@~3.28.0: - version "3.28.13" - resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.28.13.tgz#68668d84924453c2baeeb0cf7d25f75b2c07e8b9" - integrity sha512-j1YjPl2JNHxQwQW6Bgfis44XSr4WCtdwMXr/SPpLsF1oVeTWIn3kwefcDnbuCI8Spmt1B9ab3ZLKzf2KkGN/7g== - dependencies: - "@ember-data/adapter" "3.28.13" - "@ember-data/debug" "3.28.13" - "@ember-data/model" "3.28.13" - "@ember-data/private-build-infra" "3.28.13" - "@ember-data/record-data" "3.28.13" - "@ember-data/serializer" "3.28.13" - "@ember-data/store" "3.28.13" +ember-data@~4.11.3: + version "4.11.3" + resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-4.11.3.tgz#e7dedf9427dfd7fc5e3ba0ac83c52cb14822f773" + integrity sha512-7vir6Re3M3M6yJoCHy6UxEg3oSY1JEnsuTByY3lJquWPaUamn7qbPQvNr16Tqh8EKrt+e/+X26czFm4kRGhpVg== + dependencies: + "@ember-data/adapter" "4.11.3" + "@ember-data/debug" "4.11.3" + "@ember-data/model" "4.11.3" + "@ember-data/private-build-infra" "4.11.3" + "@ember-data/record-data" "4.11.3" + "@ember-data/serializer" "4.11.3" + "@ember-data/store" "4.11.3" + "@ember-data/tracking" "4.11.3" "@ember/edition-utils" "^1.2.0" - "@ember/string" "^3.0.0" + "@embroider/macros" "^1.10.0" "@glimmer/env" "^0.1.7" broccoli-merge-trees "^4.2.0" - ember-cli-babel "^7.26.6" - ember-cli-typescript "^4.1.0" - ember-inflector "^4.0.1" + ember-auto-import "^2.4.3" + ember-cli-babel "^7.26.11" + ember-inflector "^4.0.2" ember-decorators-polyfill@1.0.5: version "1.0.5" @@ -7361,7 +6805,7 @@ ember-destroyable-polyfill@^2.0.2, ember-destroyable-polyfill@^2.0.3: ember-cli-version-checker "^5.1.1" ember-compatibility-helpers "^1.2.1" -ember-element-helper@^0.6.0: +ember-element-helper@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/ember-element-helper/-/ember-element-helper-0.6.1.tgz#a6fbc5be5f875b5c864ae61bf5c5f81d6de6d936" integrity sha512-YiOdAMlzYul4ulkIoNp8z7iHDfbT1fbut/9xGFRfxDwU/FmF8HtAUB2f1veu/w50HTeZNopa1OV2PCloZ76XlQ== @@ -7370,42 +6814,6 @@ ember-element-helper@^0.6.0: ember-cli-babel "^7.26.11" ember-cli-htmlbars "^6.0.1" -ember-element-resize-detector@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ember-element-resize-detector/-/ember-element-resize-detector-0.2.1.tgz#95924b9711c7d5b4510cb354749fe4fad81bf408" - integrity sha512-+X7vzrOsg7S+2qlXqs7fqho6hlI9cZotoRzRQTfr/6tKjVAEI+gSBZcYngXBalaDdH/DDa/fcxVXj1N5yp9CJQ== - dependencies: - broccoli-funnel "^1.0.2" - broccoli-merge-trees "^1.1.1" - element-resize-detector "^1.1.4" - ember-cli-babel "^6.6.0" - ember-cli-htmlbars "^2.0.1" - -ember-export-application-global@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ember-export-application-global/-/ember-export-application-global-2.0.1.tgz#b120a70e322ab208defc9e2daebe8d0dfc2dcd46" - integrity sha512-B7wiurPgsxsSGzJuPFkpBWnaeuCu2PGpG2BjyrfA1VcL7//o+5RSnZqiCEY326y7qmxb2GoCgo0ft03KBU0rRw== - -ember-fetch@^8.1.1, ember-fetch@^8.1.2: - version "8.1.2" - resolved "https://registry.yarnpkg.com/ember-fetch/-/ember-fetch-8.1.2.tgz#651839780519319309127054786bf35cd4b84543" - integrity sha512-TVx24/jrvDIuPL296DV0hBwp7BWLcSMf0I8464KGz01sPytAB+ZAePbc9ooBTJDkKZEGFgatJa4nj3yF1S9Bpw== - dependencies: - abortcontroller-polyfill "^1.7.3" - broccoli-concat "^4.2.5" - broccoli-debug "^0.6.5" - broccoli-merge-trees "^4.2.0" - broccoli-rollup "^2.1.1" - broccoli-stew "^3.0.0" - broccoli-templater "^2.0.1" - calculate-cache-key-for-tree "^2.0.0" - caniuse-api "^3.0.0" - ember-cli-babel "^7.23.1" - ember-cli-typescript "^4.1.0" - ember-cli-version-checker "^5.1.2" - node-fetch "^2.6.1" - whatwg-fetch "^3.6.2" - ember-g-recaptcha@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/ember-g-recaptcha/-/ember-g-recaptcha-1.3.0.tgz#6695a7e993a38a04fd11a1d65f61b3aa128c969d" @@ -7414,16 +6822,7 @@ ember-g-recaptcha@^1.3.0: ember-cli-babel "^7.13.0" ember-cli-htmlbars "^4.2.0" -"ember-get-config@0.2.4 - 0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/ember-get-config/-/ember-get-config-0.5.0.tgz#8195f3e4c0ff0742182c81ae54aad78d07a24bcf" - integrity sha512-y1osD6g8wV/BlDjuaN6OG5MT0iHY2X/yE38gUj/05uUIMIRfpcwOdWnFQHBiXIhDojvAJQTEF1VOYFIETQMkeQ== - dependencies: - broccoli-file-creator "^1.1.1" - ember-cli-babel "^7.26.6" - ember-cli-htmlbars "^5.7.1" - -ember-get-config@1.1.0, ember-get-config@^1.0.0, ember-get-config@^1.0.2: +"ember-get-config@0.2.4 - 0.5.0 || ^1.0.0", ember-get-config@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ember-get-config/-/ember-get-config-1.1.0.tgz#731e192f1fe8022e06c0dbcbe5622fb8c4c78b87" integrity sha512-diD+HwwY8QqpEk5DnDYfH7onYwl6NOgr1qv1ENbXih+/iiWYUVS/e0S/PlM7A4gdorD9spn1bnisnTLTf49Wpw== @@ -7431,17 +6830,15 @@ ember-get-config@1.1.0, ember-get-config@^1.0.0, ember-get-config@^1.0.2: "@embroider/macros" "^0.50.0 || ^1.0.0" ember-cli-babel "^7.26.6" -ember-in-element-polyfill@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/ember-in-element-polyfill/-/ember-in-element-polyfill-0.2.2.tgz#d1e7c9cdea7903b668bc4622c106add8d9558df7" - integrity sha512-aWFWTpDU+6mHqQd3Gr0UyrwMXGiGuLBJXYczExNGJsc2zUv/9rDot9HIpMr0sgXtWddzM0Z9Ly1H0sbYZ1ExCA== +ember-get-config@^2.0.0, ember-get-config@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ember-get-config/-/ember-get-config-2.1.1.tgz#bede76c25d95dbefab8d30064abf7aa00bc19235" + integrity sha512-uNmv1cPG/4qsac8oIf5txJ2FZ8p88LEpG4P3dNcjsJS98Y8hd0GPMFwVqpnzI78Lz7VYRGQWY4jnE4qm5R3j4g== dependencies: - debug "^3.1.0" - ember-cli-babel "^7.13.0" - ember-cli-htmlbars "^4.2.0" - ember-cli-version-checker "^2.1.0" + "@embroider/macros" "^0.50.0 || ^1.0.0" + ember-cli-babel "^7.26.6" -ember-in-element-polyfill@^1.0.0, ember-in-element-polyfill@^1.0.1: +ember-in-element-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ember-in-element-polyfill/-/ember-in-element-polyfill-1.0.1.tgz#143504445bb4301656a2eaad42644d684f5164dd" integrity sha512-eHs+7D7PuQr8a1DPqsJTsEyo3FZ1XuH6WEZaEBPDa9s0xLlwByCNKl8hi1EbXOgvgEZNHHi9Rh0vjxyfakrlgg== @@ -7451,7 +6848,7 @@ ember-in-element-polyfill@^1.0.0, ember-in-element-polyfill@^1.0.1: ember-cli-htmlbars "^5.3.1" ember-cli-version-checker "^5.1.2" -"ember-inflector@^2.0.0 || ^3.0.0 || ^4.0.2", ember-inflector@^4.0.1: +"ember-inflector@^2.0.0 || ^3.0.0 || ^4.0.2", ember-inflector@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/ember-inflector/-/ember-inflector-4.0.2.tgz#4494f1a5f61c1aca7702d59d54024cc92211d8ec" integrity sha512-+oRstEa52mm0jAFzhr51/xtEWpCEykB3SEBr7vUg8YnXUZJ5hKNBppP938q8Zzr9XfJEbzrtDSGjhKwJCJv6FQ== @@ -7466,19 +6863,18 @@ ember-load-initializers@^2.1.2: ember-cli-babel "^7.13.0" ember-cli-typescript "^2.0.2" -ember-local-storage@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ember-local-storage/-/ember-local-storage-2.0.2.tgz#a35e8c9d93b6c01685ca096ec60a7dbcd87756d7" - integrity sha512-KQUr6dv5DTjznAXXJC9m2XUgNAri4OVmwFUXoKuG/0iKdOby6bLPiHbzazcJCk9CK82I7TdJpv0eO0k+yLsufw== +ember-local-storage@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/ember-local-storage/-/ember-local-storage-2.0.6.tgz#5d0b984b28b993ba8648ccbf32bffd1c74d4ddb3" + integrity sha512-SrC147cA726m1ho00PVtYqEz7xib4+0JJQbN6A2E3Dvrv2JnmwBK7Oexslu3GkHLvTGwry2bzQ0ySFSz2RObBw== dependencies: - blob-polyfill "^2.0.20171115" - broccoli-funnel "^2.0.1" - broccoli-merge-trees "^2.0.0" - broccoli-stew "^1.5.0" - chalk "^2.3.0" - ember-cli-babel "^7.26.6" + blob-polyfill "^7.0.20220408" + broccoli-funnel "^3.0.8" + broccoli-merge-trees "^4.2.0" + broccoli-stew "^3.0.0" + ember-cli-babel "^7.26.11" ember-cli-string-utils "^1.1.0" - ember-cli-version-checker "^2.1.0" + ember-cli-version-checker "^5.1.2" ember-copy "^2.0.1" "ember-mapbox-gl-draw@https://github.com/allthesignals/ember-mapbox-gl-draw#patch-3": @@ -7492,27 +6888,16 @@ ember-local-storage@2.0.2: ember-cli-babel "^7.26.11" ember-cli-htmlbars "^6.0.1" -ember-mapbox-gl@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ember-mapbox-gl/-/ember-mapbox-gl-1.2.1.tgz#aba7a4a43385f6fe6aa4332054023b3e8a29af1c" - integrity sha512-01VGMb5Tl/YZEHCCJnwwbsVpE90TYj9mM1zNsojoU87hq17w6RR8qM2cECCt/7yfOUI0rKmK+FlIqpHFFb9zkw== - dependencies: - ember-auto-import "^1.6.0" - ember-cli-babel "^7.22.1" - ember-cli-htmlbars "^5.3.1" - ember-in-element-polyfill "^1.0.0" - -ember-maybe-import-regenerator@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ember-maybe-import-regenerator/-/ember-maybe-import-regenerator-0.1.6.tgz#35d41828afa6d6a59bc0da3ce47f34c573d776ca" - integrity sha512-aX9UINiUXIjzsCNNna1ioASB/2lbnFgSHI63bBcd4MOVE9AqoLdOL7h+ocyylYXyYoBj2JDRwCzjWNf2Xbp5wg== +ember-mapbox-gl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ember-mapbox-gl/-/ember-mapbox-gl-2.0.0.tgz#6b9f0562223bb61e5c9d9b6fed4dc14aa10a592c" + integrity sha512-ccTagXQL+R0XHzDR8VVtwCFiby/gKRtrhoLwH95dxPf5VshoId8ySAEXmIGE79yxuviBnbSPonXBU0U+1w70GA== dependencies: - broccoli-funnel "^1.0.1" - broccoli-merge-trees "^1.0.0" - ember-cli-babel "^6.0.0-beta.4" - regenerator-runtime "^0.9.5" + ember-auto-import "^2.2.4" + ember-cli-babel "^7.26.8" + ember-cli-htmlbars "^6.0.1" -ember-maybe-in-element@^2.0.3: +ember-maybe-in-element@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ember-maybe-in-element/-/ember-maybe-in-element-2.1.0.tgz#f7bd8e41ca90a4f8038d919a9c135cbe7a7f271b" integrity sha512-6WAzPbf4BNQIQzkur2+zRJJJ/PKQoujIYgFjrpj3fOPy8iRlxVUm0/B41qbFyg1LE6bVbg0cWbuESWEvJ9Rswg== @@ -7530,83 +6915,62 @@ ember-modifier-manager-polyfill@^1.2.0: ember-cli-version-checker "^2.1.2" ember-compatibility-helpers "^1.2.0" -ember-modifier@^3.0.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/ember-modifier/-/ember-modifier-3.2.7.tgz#f2d35b7c867cbfc549e1acd8d8903c5ecd02ea4b" - integrity sha512-ezcPQhH8jUfcJQbbHji4/ZG/h0yyj1jRDknfYue/ypQS8fM8LrGcCMo0rjDZLzL1Vd11InjNs3BD7BdxFlzGoA== +"ember-modifier@^3.2.7 || ^4.0.0", ember-modifier@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ember-modifier/-/ember-modifier-4.1.0.tgz#cb91efbf8ca4ff4a1a859767afa42dddba5a2bbd" + integrity sha512-YFCNpEYj6jdyy3EjslRb2ehNiDvaOrXTilR9+ngq+iUqSHYto2zKV0rleiA1XJQ27ELM1q8RihT29U6Lq5EyqQ== dependencies: - ember-cli-babel "^7.26.6" + "@embroider/addon-shim" "^1.8.4" ember-cli-normalize-entity-name "^1.0.0" ember-cli-string-utils "^1.1.0" - ember-cli-typescript "^5.0.0" - ember-compatibility-helpers "^1.2.5" -ember-native-dom-helpers@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/ember-native-dom-helpers/-/ember-native-dom-helpers-0.6.3.tgz#31c88b6eb8e1bb99ee594d19de8f0270d1d5eb35" - integrity sha512-eQTHSV4OBS5YmGLvjgCcit79akG98YVRrcNq/rOVntPX1oq0LQqlPiXtDvDcqSdDur8GyUz6jY1Jy8Y6DLFiSw== - dependencies: - broccoli-funnel "^1.1.0" - ember-cli-babel "^6.6.0" - -ember-parachute@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ember-parachute/-/ember-parachute-1.0.2.tgz#f147f6b29df100d467acc1ddf13761aef92e95de" - integrity sha512-wpTn179au/BE2+p4z9mQRh2Cy/a5J038oPpY2Buja3gDO/Qh64ny3klr4dxMRQ5GePniglkWK/LW3qitcs902A== - dependencies: - ember-cli-babel "^7.1.2" - -ember-power-select@^5.0.2: - version "5.0.4" - resolved "https://registry.yarnpkg.com/ember-power-select/-/ember-power-select-5.0.4.tgz#4af485fb7e1e1eca1bedd523892c82c672935dac" - integrity sha512-FLVShZr3cYdLzymP+/0rXkfH5tD/FD958kynY86MWvn7ZyL2tXowlgVKY08n+PJHdo/vCrzqubRYckvXRSH6Bg== +ember-power-select@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/ember-power-select/-/ember-power-select-7.1.0.tgz#32157e60656b8ddb218d7f35cdebb2f68554cbae" + integrity sha512-SFJ3INAbwru1SJv3Tb/RSn/ohIARkfHhCyi6IgoLuztMAURTF6dXgJy/+7RLJGUejUbxJqm8ON1A4RhOmL1G+g== dependencies: - "@embroider/util" "^1.0.0" - "@glimmer/component" "^1.0.4" - "@glimmer/tracking" "^1.0.4" + "@ember/string" "^3.1.1" + "@embroider/util" "^1.11.0" + "@glimmer/component" "^1.1.2" + "@glimmer/tracking" "^1.1.2" ember-assign-helper "^0.4.0" - ember-basic-dropdown "^3.1.0 || ^4.0.2" - ember-cli-babel "^7.26.0" - ember-cli-htmlbars "^6.0.0" - ember-cli-typescript "^4.2.0" - ember-concurrency ">=1.0.0 <3" - ember-concurrency-decorators "^2.0.0" + ember-basic-dropdown "^7.2.1" + ember-cli-babel "^7.26.11" + ember-cli-htmlbars "^6.2.0" + ember-cli-typescript "^5.0.0" + ember-concurrency "^2.0.0 || ^3.0.0" ember-text-measurer "^0.6.0" - ember-truth-helpers "^2.1.0 || ^3.0.0" + ember-truth-helpers "^3.1.0" -ember-promise-helpers@1.0.9, ember-promise-helpers@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/ember-promise-helpers/-/ember-promise-helpers-1.0.9.tgz#4559dd4a09be1a2725eddd7146169d2d53a92e7a" - integrity sha512-BDcx2X28baEL0YMKSmDGQzvdyfiFSlx4Byf34hVrAw6W7VO17YYLjeXPebVBOXLA1BMWmUo0Bb2pZRZ09MQYYA== +ember-promise-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ember-promise-helpers/-/ember-promise-helpers-2.0.0.tgz#73eed25c9e0f3e66ca4d19f2fb7f221b61abff1c" + integrity sha512-ZQlzSRjCdDgGBlXHtk+LKmxOlXWKalBBZrmYlr2X/kqNf7vaVUnlKQD1T+sRzwnsZZTQwL5PKfLmSWF3hFD69g== dependencies: - ember-cli-babel "^6.16.0" + ember-cli-babel "^7.26.6" + ember-cli-htmlbars "^5.7.1" -ember-qunit@^5.1.4: - version "5.1.5" - resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-5.1.5.tgz#24a7850f052be24189ff597dfc31b923e684c444" - integrity sha512-2cFA4oMygh43RtVcMaBrr086Tpdhgbn3fVZ2awLkzF/rnSN0D0PSRpd7hAD7OdBPerC/ZYRwzVyGXLoW/Zes4A== +ember-qunit@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-7.0.0.tgz#658aa51dcb376b5eda7fa77c83be89aaf0bedbd1" + integrity sha512-KhrndHYEXsHnXvmsGyJLJQ6VCudXaRs5dzPZBsdttZJIhsB6PmYAvq2Q+mh3GRDT/59T/sRDrB3FD3/lATS8aA== dependencies: broccoli-funnel "^3.0.8" broccoli-merge-trees "^3.0.2" common-tags "^1.8.0" - ember-auto-import "^1.11.3" - ember-cli-babel "^7.26.6" + ember-auto-import "^2.6.1" + ember-cli-babel "^7.26.11" ember-cli-test-loader "^3.0.0" - resolve-package-path "^3.1.0" + resolve-package-path "^4.0.3" silent-error "^1.1.1" - validate-peer-dependencies "^1.2.0" + validate-peer-dependencies "^2.2.0" -ember-resolver@^8.0.2: - version "8.1.0" - resolved "https://registry.yarnpkg.com/ember-resolver/-/ember-resolver-8.1.0.tgz#8ada162746fde3e6ea6a703bbb9910fbe62ab1e5" - integrity sha512-MGD7X2ztZVswGqs1mLgzhZJRhG7XiF6Mg4DgC7xJFWRYQQUHyGJpGdNWY9nXyrYnRIsCrQoL1do41zpxbrB/cg== +ember-resolver@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/ember-resolver/-/ember-resolver-10.1.1.tgz#1106a2386337b13a9ee509a9ad2a18b53a728ab3" + integrity sha512-y1zzn6C4YGJui+tJzcCKlsf1oSOSVAkRrvmg8OwqVIKnALKKb9ihx2qLCslHg8x0wJvJgMtDMXgrczvQrZW0Lw== dependencies: - babel-plugin-debug-macros "^0.3.4" - broccoli-funnel "^3.0.8" - broccoli-merge-trees "^4.2.0" - ember-cli-babel "^7.26.6" - ember-cli-version-checker "^5.1.2" - resolve "^1.20.0" + ember-cli-babel "^7.26.11" ember-responsive@^5.0.0: version "5.0.0" @@ -7615,7 +6979,7 @@ ember-responsive@^5.0.0: dependencies: ember-cli-babel "^7.26.11" -ember-rfc176-data@^0.3.13, ember-rfc176-data@^0.3.15, ember-rfc176-data@^0.3.17: +ember-rfc176-data@^0.3.15, ember-rfc176-data@^0.3.17: version "0.3.18" resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.18.tgz#bb6fdcef49999981317ea81b6cc9210fb4108d65" integrity sha512-JtuLoYGSjay1W3MQAxt3eINWXNYYQliK90tLwtb8aeCuQK8zKGCRbBodVIrkcTqshULMnRuTOS6t1P7oQk3g6Q== @@ -7629,98 +6993,112 @@ ember-router-generator@^2.0.0: "@babel/traverse" "^7.4.5" recast "^0.18.1" -ember-source-channel-url@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ember-source-channel-url/-/ember-source-channel-url-3.0.0.tgz#bcd5be72c63fa0b8c390b3121783b462063e2a1b" - integrity sha512-vF/8BraOc66ZxIDo3VuNP7iiDrnXEINclJgSJmqwAAEpg84Zb1DHPI22XTXSDA+E8fW5btPUxu65c3ZXi8AQFA== - dependencies: - node-fetch "^2.6.0" - -ember-source@~3.28.11: - version "3.28.12" - resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.28.12.tgz#d8bb33d665d9c5adc858dce9d2d18be5ce58b2c0" - integrity sha512-HGrBpY6TN+MAi7F6BS8XYtNFG6vtbKE9ttPcyj0Ps+76kP7isCHyN0hk8ecKciLq7JYDqiPDNWjdIXAn2JfhZA== +ember-source@~4.12.0: + version "4.12.3" + resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-4.12.3.tgz#6c401f6a856bb2f7f2871f56d46e7496f97e936a" + integrity sha512-UuFpMWf931pEWBPuujkaMYhsoPvFyZc+tMYjlUn7um20uL+hWs+k2n/TxMVuxydSzJLnxrXz81nTwbYIlgRWdw== dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-object-assign" "^7.8.3" + "@babel/helper-module-imports" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.20.5" "@ember/edition-utils" "^1.2.0" - "@glimmer/vm-babel-plugins" "0.80.3" + "@glimmer/vm-babel-plugins" "0.84.2" + "@simple-dom/interface" "^1.4.0" babel-plugin-debug-macros "^0.3.4" babel-plugin-filter-imports "^4.0.0" - broccoli-concat "^4.2.4" + broccoli-concat "^4.2.5" broccoli-debug "^0.6.4" broccoli-file-creator "^2.1.1" - broccoli-funnel "^2.0.2" + broccoli-funnel "^3.0.8" broccoli-merge-trees "^4.2.0" chalk "^4.0.0" - ember-cli-babel "^7.23.0" + ember-auto-import "^2.5.0" + ember-cli-babel "^7.26.11" ember-cli-get-component-path-option "^1.0.0" ember-cli-is-package-missing "^1.0.0" ember-cli-normalize-entity-name "^1.0.0" ember-cli-path-utils "^1.0.0" ember-cli-string-utils "^1.1.0" - ember-cli-version-checker "^5.1.1" + ember-cli-typescript-blueprint-polyfill "^0.1.0" + ember-cli-version-checker "^5.1.2" ember-router-generator "^2.0.0" - inflection "^1.12.0" - jquery "^3.5.1" - resolve "^1.17.0" - semver "^7.3.4" + inflection "^1.13.2" + resolve "^1.22.0" + semver "^7.3.8" silent-error "^1.1.1" -ember-style-modifier@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/ember-style-modifier/-/ember-style-modifier-0.7.0.tgz#85b3dfd7e4bc2bd546df595f2dab4fb141cf7d87" - integrity sha512-iDzffiwJcb9j6gu3g8CxzZOTvRZ0BmLMEFl+uyqjiaj72VVND9+HbLyQRw1/ewPAtinhSktxxTTdwU/JO+stLw== +"ember-style-modifier@^0.8.0 || ^1.0.0 || ^2.0.0 || ^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/ember-style-modifier/-/ember-style-modifier-3.0.1.tgz#96aaaa2b713108725b81d8b934ec445ece6b89c3" + integrity sha512-WHRVIiqY/dpwDtVWlnHW0P4Z+Jha8QEwfaQdIF2ckJL77ZKdjbV2j1XZymS0Nzj61EGx5BM+YEsGL16r3hLv2A== dependencies: - ember-cli-babel "^7.26.6" - ember-modifier "^3.0.0" + ember-auto-import "^2.5.0" + ember-cli-babel "^7.26.11" + ember-modifier "^3.2.7 || ^4.0.0" -ember-template-lint@^3.6.0: - version "3.16.0" - resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-3.16.0.tgz#7af2ec8d4386f4726be08c14c39ba121c56f0896" - integrity sha512-hbP4JefkOLx9tMkrZ3UIvdBNoEnrT7rg6c70tIxpB9F+KpPneDbmpGMBsQVhhK4BirTXIFwAIfnwKcwkIk3bPQ== +ember-template-imports@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/ember-template-imports/-/ember-template-imports-3.4.2.tgz#6cf7de7d4b8348a0fddf3aaec4947aa1211289e6" + integrity sha512-OS8TUVG2kQYYwP3netunLVfeijPoOKIs1SvPQRTNOQX4Pu8xGGBEZmrv0U1YTnQn12Eg+p6w/0UdGbUnITjyzw== dependencies: - "@ember-template-lint/todo-utils" "^10.0.0" - chalk "^4.1.2" - ci-info "^3.3.0" - date-fns "^2.28.0" - ember-template-recast "^5.0.3" - find-up "^5.0.0" + babel-import-util "^0.2.0" + broccoli-stew "^3.0.0" + ember-cli-babel-plugin-helpers "^1.1.1" + ember-cli-version-checker "^5.1.2" + line-column "^1.0.2" + magic-string "^0.25.7" + parse-static-imports "^1.1.0" + string.prototype.matchall "^4.0.6" + validate-peer-dependencies "^1.1.0" + +ember-template-lint@^5.7.2: + version "5.11.2" + resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-5.11.2.tgz#dd7cf15000444fcc8899d907e8d911cd77c31fc0" + integrity sha512-G8KXmFCYLKM9ifMb+rluL8CNIawUl45i4z4VrK+Nn5ciWSo+Vx2jUp+sS6wKCdBqGYoiqjUgn/hmGnCVOId+yQ== + dependencies: + "@lint-todo/utils" "^13.1.1" + aria-query "^5.3.0" + chalk "^5.3.0" + ci-info "^3.8.0" + date-fns "^2.30.0" + ember-template-imports "^3.4.2" + ember-template-recast "^6.1.4" + eslint-formatter-kakoune "^1.0.0" + find-up "^6.3.0" fuse.js "^6.5.3" - get-stdin "^8.0.0" - globby "^11.0.4" + get-stdin "^9.0.0" + globby "^13.2.2" is-glob "^4.0.3" - micromatch "^4.0.4" - requireindex "^1.2.0" - resolve "^1.20.0" + language-tags "^1.0.8" + micromatch "^4.0.5" + resolve "^1.22.3" v8-compile-cache "^2.3.0" - yargs "^16.2.0" + yargs "^17.7.2" -ember-template-recast@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/ember-template-recast/-/ember-template-recast-5.0.3.tgz#79df27a70bdce7be17f14db13886afde1e9d02d6" - integrity sha512-qsJYQhf29Dk6QMfviXhUPE+byMOs6iRQxUDHgkj8yqjeppvjHaFG96hZi/NAXJTm/M7o3PpfF5YlmeaKtI9UeQ== +ember-template-recast@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ember-template-recast/-/ember-template-recast-6.1.4.tgz#e964c184adfd876878009f8aa0b84c95633fce20" + integrity sha512-fCh+rOK6z+/tsdkTbOE+e7f84P6ObnIRQrCCrnu21E4X05hPeradikIkRMhJdxn4NWrxitfZskQDd37TR/lsNQ== dependencies: - "@glimmer/reference" "^0.65.0" - "@glimmer/syntax" "^0.65.0" - "@glimmer/validator" "^0.65.0" + "@glimmer/reference" "^0.84.3" + "@glimmer/syntax" "^0.84.3" + "@glimmer/validator" "^0.84.3" async-promise-queue "^1.0.5" colors "^1.4.0" - commander "^6.2.1" + commander "^8.3.0" globby "^11.0.3" ora "^5.4.0" slash "^3.0.0" tmp "^0.2.1" - workerpool "^6.1.4" + workerpool "^6.4.0" -ember-test-selectors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ember-test-selectors/-/ember-test-selectors-2.0.0.tgz#c95079b2c562c9a8328832b655ba8818d9076dd7" - integrity sha512-w4h7kpBSRQNO4oG84erUeJjVGHZ7VYqy7xsRMX+lwgr7ULS6JAl8fw6J9whD8QRS7nhVED3Z1eMEFKq2DLVp7g== +ember-test-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ember-test-selectors/-/ember-test-selectors-6.0.0.tgz#ba9bb19550d9dec6e4037d86d2b13c2cfd329341" + integrity sha512-PgYcI9PeNvtKaF0QncxfbS68olMYM1idwuI8v/WxsjOGqUx5bmsu6V17vy/d9hX4mwmjgsBhEghrVasGSuaIgw== dependencies: - ember-cli-babel "^6.8.2" - ember-cli-version-checker "^2.0.0" + calculate-cache-key-for-tree "^2.0.0" + ember-cli-babel "^7.26.4" + ember-cli-version-checker "^5.1.2" ember-text-measurer@^0.6.0: version "0.6.0" @@ -7730,7 +7108,7 @@ ember-text-measurer@^0.6.0: ember-cli-babel "^7.19.0" ember-cli-htmlbars "^4.3.1" -ember-tooltips@^3.1.0: +ember-tooltips@^3.1.0, ember-tooltips@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/ember-tooltips/-/ember-tooltips-3.6.0.tgz#15223e6fa50dec2fcf8dac16be9b12b46f395436" integrity sha512-DsqF6vvL3DKWSUHJKuMJ8KSxbE/T+eZAE2xtzAuHRqjl1AYIOkugGBVynGYYP8+2/10NMwk05LYbT1dirAcEBQ== @@ -7746,37 +7124,36 @@ ember-tooltips@^3.1.0: resolve "^1.10.1" tooltip.js "^1.1.5" -"ember-truth-helpers@^2.1.0 || ^3.0.0", ember-truth-helpers@^3.1.1: +ember-tracked-storage-polyfill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ember-tracked-storage-polyfill/-/ember-tracked-storage-polyfill-1.0.0.tgz#84d307a1e4badc5f84dca681db2cfea9bdee8a77" + integrity sha512-eL7lZat68E6P/D7b9UoTB5bB5Oh/0aju0Z7PCMi3aTwhaydRaxloE7TGrTRYU+NdJuyNVZXeGyxFxn2frvd3TA== + dependencies: + ember-cli-babel "^7.26.3" + ember-cli-htmlbars "^5.7.1" + +"ember-truth-helpers@^2.1.0 || ^3.0.0", ember-truth-helpers@^3.1.0, ember-truth-helpers@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/ember-truth-helpers/-/ember-truth-helpers-3.1.1.tgz#434715926d72bcc63b8a115dec09745fda4474dc" integrity sha512-FHwJAx77aA5q27EhdaaiBFuy9No+8yaWNT5A7zs0sIFCmf14GbcLn69vJEp6mW7vkITezizGAWhw7gL0Wbk7DA== dependencies: ember-cli-babel "^7.22.1" -ember-unused-components@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ember-unused-components/-/ember-unused-components-0.2.0.tgz#95aea8269fefbcc3913b2a83dbbaa7f74ed68133" - integrity sha512-Y0VZuqUBt7fHkTycN5UGET690Hi4JDQlImObWWVr2X4jS2zR4OETqZ65QYSseVkcbUg36xqe7DTPvCFmi2Am4A== - dependencies: - colors "1.3.0" - ember-cli-babel "6.14.1" - fs-extra "6.0.1" - -ember-window-mock@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/ember-window-mock/-/ember-window-mock-0.5.4.tgz#a495250e823241922f78d2406f1e8217635b277c" - integrity sha512-clJz0Un2vgGdNwjF2hLOtRfDASuGLePfwspfM1CHHwm8cm3jYMQvcLzP/6p7pyDNW36vgz5eKYygWATkpqUUmg== +ember-window-mock@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/ember-window-mock/-/ember-window-mock-0.9.0.tgz#95fe1bc76899feefe224761b4ac0c28b7941623a" + integrity sha512-jFWq8zNFhiKNA0QnJFnhsYW+Y+2FwpvFuAf4s393Il5f1fJJfZoiwjL5l8FMpxV1alf2o8jZ2XqNQWh8rM9YBA== dependencies: - broccoli-funnel "^2.0.1" - ember-cli-babel "^6.16.0" + ember-cli-babel "^7.26.11" + ember-cli-htmlbars "^6.2.0" -ember-wormhole@^0.5.2: - version "0.5.5" - resolved "https://registry.yarnpkg.com/ember-wormhole/-/ember-wormhole-0.5.5.tgz#db417ff748cb21e574cd5f233889897bc27096cb" - integrity sha512-z8l3gpoKmRA2BnTwvnYRk4jKVcETKHpddsD6kpS+EJ4EfyugadFS3zUqBmRDuJhFbNP8BVBLXlbbATj+Rk1Kgg== +ember-wormhole@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/ember-wormhole/-/ember-wormhole-0.6.0.tgz#1f9143aa05c0f0abdf14a97ff22520ebaf85eca0" + integrity sha512-b7RrRxkwCBEJxM2zR34dEzIET81BOZWTcYNJtkidLycLQvdbxPys5QJEjJ/IfDikT/z5HuQBdZRKBhXI0vZNXQ== dependencies: - ember-cli-babel "^6.10.0" - ember-cli-htmlbars "^2.0.1" + ember-cli-babel "^7.22.1" + ember-cli-htmlbars "^5.3.1" emoji-regex@^8.0.0: version "8.0.0" @@ -7798,7 +7175,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding@^0.1.11: +encoding@^0.1.11, encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -7833,15 +7210,6 @@ engine.io@~6.5.2: engine.io-parser "~5.2.1" ws "~8.11.0" -enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - enhanced-resolve@^5.15.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" @@ -7850,14 +7218,6 @@ enhanced-resolve@^5.15.0: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.5: - version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" - integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== - dependencies: - ansi-colors "^4.1.1" - strip-ansi "^6.0.1" - ensure-posix-path@^1.0.0, ensure-posix-path@^1.0.1, ensure-posix-path@^1.0.2, ensure-posix-path@^1.1.0, ensure-posix-path@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz#3c62bdb19fa4681544289edb2b382adc029179ce" @@ -7868,27 +7228,32 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== +entities@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== -entities@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== err-code@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" integrity sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA== +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + errlop@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.2.0.tgz#1ff383f8f917ae328bebb802d6ca69666a42d21b" integrity sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw== -"errno@>=0.1.1 <0.2.0-0", errno@^0.1.3, errno@~0.1.7: +"errno@>=0.1.1 <0.2.0-0": version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== @@ -7909,7 +7274,7 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.20.4, es-abstract@^1.21.2, es-abstract@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== @@ -8051,6 +7416,11 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -8066,20 +7436,26 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-airbnb-base@^13.0.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz#f6ea81459ff4dec2dda200c35f1d8f7419d57943" - integrity sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w== +eslint-config-airbnb-base@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" + integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== dependencies: - confusing-browser-globals "^1.0.5" - object.assign "^4.1.0" - object.entries "^1.1.0" + confusing-browser-globals "^1.0.10" + object.assign "^4.1.2" + object.entries "^1.1.5" + semver "^6.3.0" -eslint-config-prettier@^8.3.0: +eslint-config-prettier@^8.8.0: version "8.10.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== +eslint-formatter-kakoune@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-formatter-kakoune/-/eslint-formatter-kakoune-1.0.0.tgz#a95cc4fe1fbc06b84e0f2397e83f5f0b68340125" + integrity sha512-Uk/TVLt6Nf6Xoz7C1iYuZjOSdJxe5aaauGRke8JhKeJwD66Y61/pY2FjtLP04Ooq9PwV34bzrkKkU2UZ5FtDRA== + eslint-import-resolver-node@^0.3.7: version "0.3.9" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" @@ -8096,6 +7472,17 @@ eslint-module-utils@^2.8.0: dependencies: debug "^3.2.7" +eslint-plugin-decorator-position@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-decorator-position/-/eslint-plugin-decorator-position-5.0.2.tgz#c96f46d8ef0f7dbd519ff91a67ccc4b6ba30693b" + integrity sha512-wFcRfrB9zljOP1n5udg16h6ITX1jG8cnUvuFVtIqVxw5O9BTOXFHB9hvsTaqpb8JFX2dq19fH3i/ipUeFSF87w== + dependencies: + "@babel/core" "^7.18.6" + "@babel/plugin-proposal-decorators" "^7.18.6" + "@ember-data/rfc395-data" "^0.0.4" + ember-rfc176-data "^0.3.17" + snake-case "^3.0.4" + eslint-plugin-ember-best-practices@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/eslint-plugin-ember-best-practices/-/eslint-plugin-ember-best-practices-1.1.1.tgz#407ec2f7548a6671127d66b79e8b7135375d36e7" @@ -8103,24 +7490,29 @@ eslint-plugin-ember-best-practices@1.1.1: dependencies: requireindex "^1.1.0" -eslint-plugin-ember@^10.5.4: - version "10.6.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-ember/-/eslint-plugin-ember-10.6.1.tgz#04ea84cc82307f64a2faa4f2855b30e5ebf9f722" - integrity sha512-R+TN3jwhYQ2ytZCA1VkfJDZSGgHFOHjsHU1DrBlRXYRepThe56PpuGxywAyDvQ7inhoAz3e6G6M60PzpvjzmNg== +eslint-plugin-ember@^11.5.0: + version "11.10.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-ember/-/eslint-plugin-ember-11.10.0.tgz#46a696ebabcfefcf8212eb0eb2b11d61360c70fc" + integrity sha512-/5VanfpfzIdmWgXWyQ6ylAJWITu8mXivRce06h0uoifVpUoGaBdAkwuto/PLGfDxWdi43xWUFLb5Tpkhx2MoFg== dependencies: "@ember-data/rfc395-data" "^0.0.4" + "@glimmer/syntax" "^0.84.2" css-tree "^2.0.4" ember-rfc176-data "^0.3.15" + ember-template-imports "^3.4.2" + ember-template-recast "^6.1.4" eslint-utils "^3.0.0" estraverse "^5.2.0" + lodash.camelcase "^4.1.1" lodash.kebabcase "^4.1.1" + magic-string "^0.30.0" requireindex "^1.2.0" snake-case "^3.0.3" -eslint-plugin-es@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" - integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== +eslint-plugin-es@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" + integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== dependencies: eslint-utils "^2.0.0" regexpp "^3.0.0" @@ -8148,34 +7540,36 @@ eslint-plugin-import@^2.12.0: semver "^6.3.1" tsconfig-paths "^3.14.2" -eslint-plugin-node@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" - integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== +eslint-plugin-n@^15.7.0: + version "15.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz#e29221d8f5174f84d18f2eb94765f2eeea033b90" + integrity sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q== dependencies: - eslint-plugin-es "^3.0.0" - eslint-utils "^2.0.0" + builtins "^5.0.1" + eslint-plugin-es "^4.1.0" + eslint-utils "^3.0.0" ignore "^5.1.1" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.1.0" + is-core-module "^2.11.0" + minimatch "^3.1.2" + resolve "^1.22.1" + semver "^7.3.8" -eslint-plugin-prettier@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== +eslint-plugin-prettier@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-qunit@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-qunit/-/eslint-plugin-qunit-6.2.0.tgz#f4efda29da99523e560848d9592c39c0590c308d" - integrity sha512-KvPmkIC2MHpfRxs/r8WUeeGkG6y+3qwSi2AZIBtjcM/YG6Z3k0GxW5Hbu3l7X0TDhljVCeBb9Q5puUkHzl83Mw== +eslint-plugin-qunit@^7.3.4: + version "7.3.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.4.tgz#2465b6f29ff56fbe9b741bde2740dec109ee9bec" + integrity sha512-EbDM0zJerH9zVdUswMJpcFF7wrrpvsGuYfNexUpa5hZkkdFhaFcX+yD+RSK4Nrauw4psMGlcqeWUMhaVo+Manw== dependencies: eslint-utils "^3.0.0" requireindex "^1.2.0" -eslint-scope@5.1.1, eslint-scope@^5.1.1: +eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -8183,15 +7577,15 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" + esrecurse "^4.3.0" + estraverse "^5.2.0" -eslint-utils@^2.0.0, eslint-utils@^2.1.0: +eslint-utils@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== @@ -8205,7 +7599,7 @@ eslint-utils@^3.0.0: dependencies: eslint-visitor-keys "^2.0.0" -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: +eslint-visitor-keys@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== @@ -8215,94 +7609,86 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.32.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.37.0: + version "8.47.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.47.0.tgz#c95f9b935463fb4fad7005e626c7621052e90806" + integrity sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "^8.47.0" + "@humanwhocodes/config-array" "^0.11.10" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" + optionator "^0.9.3" + strip-ansi "^6.0.1" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -esm@^3.2.25, esm@^3.2.4: +esm@^3.2.4: version "3.2.25" resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== -esm@~3.0.84: - version "3.0.84" - resolved "https://registry.yarnpkg.com/esm/-/esm-3.0.84.tgz#bb108989f4673b32d4f62406869c28eed3815a63" - integrity sha512-SzSGoZc17S7P+12R9cg21Bdb7eybX25RnIeRZ80xZs+VZ3kdQKzqTp2k4hZJjR7p9l0186TTXSgrxzlMDBktlw== - -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" esprima@^4.0.0, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esprima@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" - integrity sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA== - esprima@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9" integrity sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw== -esquery@^1.4.0: +esquery@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0, esrecurse@^4.3.0: +esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== @@ -8329,6 +7715,11 @@ estree-walker@^0.6.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -8362,19 +7753,11 @@ events-to-array@^1.0.1: resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6" integrity sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA== -events@^3.0.0, events@^3.2.0: +events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - exec-sh@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" @@ -8382,7 +7765,7 @@ exec-sh@^0.2.0: dependencies: merge "^1.2.0" -exec-sh@^0.3.2: +exec-sh@^0.3.2, exec-sh@^0.3.4: version "0.3.6" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== @@ -8402,19 +7785,6 @@ execa@7.2.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" -execa@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" - integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== - dependencies: - cross-spawn "^6.0.0" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -8441,37 +7811,6 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" - integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^3.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - execa@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" @@ -8487,7 +7826,7 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^5.0.0: +execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -8537,7 +7876,12 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -express@^4.10.7, express@^4.17.1: +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + +express@^4.10.7, express@^4.18.1: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== @@ -8601,11 +7945,6 @@ extend@^3.0.2, extend@~3.0.0, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extent@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/extent/-/extent-0.2.0.tgz#efad0869682d3628bdbeeb140c1f4d0023e6bec4" - integrity sha512-QsJWaPxU9+W5vxhpL681cPDKnmJ/b857mPKGbeDSG4McmPzBEWDY2fZCUrQD2dBMYyX0HU+ye7Yw6Tdgs/kB3g== - external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -8659,7 +7998,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.0.3, fast-glob@^3.2.9: +fast-glob@^3.0.3, fast-glob@^3.2.9, fast-glob@^3.3.0: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -8722,6 +8061,11 @@ fastboot-transform@^0.1.2: broccoli-stew "^1.5.0" convert-source-map "^1.5.1" +fastest-levenshtein@^1.0.16: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + fastq@^1.6.0: version "1.15.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" @@ -8736,18 +8080,13 @@ faye-websocket@^0.11.3: dependencies: websocket-driver ">=0.5.1" -fb-watchman@^2.0.0: +fb-watchman@^2.0.0, fb-watchman@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -8782,16 +8121,16 @@ fileset@^2.0.3: glob "^7.0.3" minimatch "^3.0.3" +filesize@^10.0.5: + version "10.0.12" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.0.12.tgz#6eef217c08e9633cdbf438d9124e8f5f524ffa05" + integrity sha512-6RS9gDchbn+qWmtV2uSjo5vmKizgfCQeb5jKmqx8HyzA3MoLqqyQxN+QcjkGBJt7FjJ9qFce67Auyya5rRRbpw== + filesize@^3.3.0: version "3.6.1" resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== -filesize@^6.1.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.4.0.tgz#914f50471dd66fdca3cefe628bd0cde4ef769bcd" - integrity sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ== - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -8843,15 +8182,6 @@ find-babel-config@^1.1.0, find-babel-config@^1.2.0: json5 "^0.5.1" path-exists "^3.0.0" -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - find-cache-dir@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" @@ -8896,6 +8226,14 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + find-yarn-workspace-root@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz#40eb8e6e7c2502ddfaa2577c176f221422f860db" @@ -8949,14 +8287,6 @@ fixturify-project@^2.1.1: tmp "^0.0.33" type-fest "^0.11.0" -fixturify@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/fixturify/-/fixturify-0.3.4.tgz#c676de404a7f8ee8e64d0b76118e62ec95ab7b25" - integrity sha512-Gx+KSB25b6gMc4bf7UFRTA85uE0iZR+RYur0JHh6dg4AGBh0EksOv4FCHyM7XpGmiJO7Bc7oV7vxENQBT+2WEQ== - dependencies: - fs-extra "^0.30.0" - matcher-collection "^1.0.4" - fixturify@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/fixturify/-/fixturify-1.3.0.tgz#163c468093c7c4d90b70cde39fd6325f6528b25d" @@ -8968,7 +8298,7 @@ fixturify@^1.2.0: fs-extra "^7.0.1" matcher-collection "^2.0.0" -fixturify@^2.1.0: +fixturify@^2.0.0, fixturify@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/fixturify/-/fixturify-2.1.1.tgz#e962d72f062600cb81a9651086f60d822c72d998" integrity sha512-SRgwIMXlxkb6AUgaVjIX+jCEqdhyXu9hah7mcK+lWynjKtX73Ux1TDv71B7XyaQ+LJxkYRHl5yCL8IycAvQRUw== @@ -9019,6 +8349,14 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -9047,7 +8385,7 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -foundation-sites@^6.3.1, foundation-sites@^6.6.1, foundation-sites@^6.7.5: +foundation-sites@^6.3.1, foundation-sites@^6.7.5: version "6.8.1" resolved "https://registry.yarnpkg.com/foundation-sites/-/foundation-sites-6.8.1.tgz#9b17e9371c18916a375985571b33bdbe4c347555" integrity sha512-9JAuLqVgzf7EIRUqVKeYN68dU/SGe0aNJPgnejdfJKSWnBFdQLF3Zvy9WEQ1gE/gnyvwG3Ia3LkkEd9774n0bQ== @@ -9085,15 +8423,6 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@6.0.1, fs-extra@^6.0.0, fs-extra@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" - integrity sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^0.24.0: version "0.24.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.24.0.tgz#d4e4342a96675cb7846633a6099249332b539952" @@ -9124,6 +8453,15 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.1.0: + version "11.1.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" @@ -9151,7 +8489,7 @@ fs-extra@^5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^7.0.0, fs-extra@^7.0.1: +fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== @@ -9160,7 +8498,7 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^8.0.0, fs-extra@^8.0.1, fs-extra@^8.1.0: +fs-extra@^8.0.1, fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== @@ -9169,7 +8507,7 @@ fs-extra@^8.0.0, fs-extra@^8.0.1, fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -9190,7 +8528,21 @@ fs-merger@^3.0.1, fs-merger@^3.2.1: fs-tree-diff "^2.0.1" walk-sync "^2.2.0" -fs-tree-diff@^0.5.2, fs-tree-diff@^0.5.3, fs-tree-diff@^0.5.4, fs-tree-diff@^0.5.6, fs-tree-diff@^0.5.7, fs-tree-diff@^0.5.9: +fs-minipass@^2.0.0, fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + +fs-tree-diff@^0.5.2, fs-tree-diff@^0.5.3, fs-tree-diff@^0.5.4, fs-tree-diff@^0.5.6, fs-tree-diff@^0.5.7: version "0.5.9" resolved "https://registry.yarnpkg.com/fs-tree-diff/-/fs-tree-diff-0.5.9.tgz#a4ec6182c2f5bd80b9b83c8e23e4522e6f5fd946" integrity sha512-872G8ax0kHh01m9n/2KDzgYwouKza0Ad9iFltBpNykvROvf2AGtoOzPJgGx125aolGPER3JuC7uZFrQ7bG1AZw== @@ -9246,7 +8598,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^1.2.3, fsevents@^1.2.7: +fsevents@^1.2.3: version "1.2.13" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== @@ -9301,11 +8653,6 @@ function.prototype.name@^1.1.5: es-abstract "^1.22.1" functions-have-names "^1.2.3" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -9354,71 +8701,16 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -geojson-area@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/geojson-area/-/geojson-area-0.2.1.tgz#2537b0982db86309f21d2c428a4257c7a6282cc6" - integrity sha512-I+cht30/CFFObh8GgEa/1o9Kd7RwQTHmotYp3ToyCpxxDFNcuX5SlErKkvoy3otnrsWzODN8yscSTGOAkQ3tKQ== - dependencies: - wgs84 "0.0.0" - -geojson-coords@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/geojson-coords/-/geojson-coords-0.0.0.tgz#dcdba86612da6be6b9511f16f38e90fcccb6dd75" - integrity sha512-r6UTZ4igpJ/3hbxBbAmGUlg5HafxsK3G2eK8rCbwiwmwF+qZEInoFEx2Y12tCY/dNXzckR9A0oX4yUW8bNML3g== - dependencies: - geojson-flatten "~0.1.0" - geojson-normalize "0.0.0" - -geojson-extent@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/geojson-extent/-/geojson-extent-0.3.2.tgz#2ee5f3fabf0c7659c0509e05782910dfe1df27e8" - integrity sha512-n7dhmd1Q+ysiOUNRyl/N/0bLpIfExMFDUkLj8zXB3wabinAVm/EkKXE+FVgWvq9tANeaQW0WeJqdRS9XpdNmlg== - dependencies: - extent "0.2.0" - geojson-coords "0.0.0" - rw "~0.1.4" - traverse "~0.6.6" - geojson-flatten@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/geojson-flatten/-/geojson-flatten-1.1.1.tgz#601aae07ba6406281ebca683573dcda69eba04c7" integrity sha512-k/6BCd0qAt7vdqdM1LkLfAy72EsLDy0laNwX0x2h49vfYCiQkRc4PSra8DNEdJ10EKRpwEvDXMb0dBknTJuWpQ== -geojson-flatten@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/geojson-flatten/-/geojson-flatten-0.1.0.tgz#c1c6f96bbb5713114c9b14a0b4ba80f47e4622cb" - integrity sha512-ok4Nw/IVyc+5vHrCh57v/lHUU0IrgYfqunjq1P+4rPJ4uFX5erCjdWWnugLciZEgxrwpvh5YUhgs7W/sNNh0iw== - dependencies: - concat-stream "~1.2.1" - minimist "0.0.5" - sharkdown "~0.1.0" - -geojson-normalize@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/geojson-normalize/-/geojson-normalize-0.0.0.tgz#2dbc3678cd1b31b8179e876bda70cd120dde35c0" - integrity sha512-h/ldgc7C2DrYDIn+F/o+AgZLxmeC+O4q3wvGwiuBjTTRnhxvxaGz6cE6cRTeMH89jIJM3BiP+R6Yiht7f3PBuA== - -geojson-normalize@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/geojson-normalize/-/geojson-normalize-0.0.1.tgz#8e9bc3614dea0402a145c10a518de03e02465a09" - integrity sha512-aiUC8yTUmtYEnQL7sTBsZWAVSiY4WUgF94kiuSbE9DKXtMJHy0F4hLJJVBABeCP2KWuxetgYbzkRuFwyHE+N5Q== - geojson-vt@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/geojson-vt/-/geojson-vt-3.2.1.tgz#f8adb614d2c1d3f6ee7c4265cad4bbf3ad60c8b7" integrity sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg== -geojsonhint@^2.0.0beta: - version "2.0.0" - resolved "https://registry.yarnpkg.com/geojsonhint/-/geojsonhint-2.0.0.tgz#054f780270f0efb69395fe8203e96098aeec0935" - integrity sha512-+IuNGMPR5gfPSmA1LANZ/k0osdF6tY/tb9q6QxMrxqwWwp+jMdP0HAUXCXK05c90KVbaRG9y7wVUlAy1l7PtIw== - dependencies: - concat-stream "~1.5.1" - jsonlint-lines "1.7.1" - minimist "1.2.0" - vfile "2.0.0" - vfile-reporter "3.0.0" - get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" @@ -9444,24 +8736,24 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== -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== +get-stdin@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" + integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== -get-stream@^4.0.0: +get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" -get-stream@^5.0.0: +get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -9493,19 +8785,17 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -git-diff-apply@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/git-diff-apply/-/git-diff-apply-0.9.3.tgz#3a3318271f7eed3f3ae19ff19f7d9ad4e072afee" - integrity sha512-UzDY4NSyCddVmPzuiPFHAWnkSOI4+kcesN816G7/2P/jmdarRV6lStDYTobKzgtTpSTQwfi0s2lMOcDdMirqZw== - dependencies: - debug "^3.0.0" - denodeify "^1.2.1" - fixturify "^0.3.4" - fs-extra "^6.0.0" - ncp "^2.0.0" - tmp "0.0.33" - uuid "^3.1.0" - yargs "^12.0.0" +git-diff-apply@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/git-diff-apply/-/git-diff-apply-3.0.0.tgz#522dbf2feb17d4f4aa45dc09afec8d452f83b132" + integrity sha512-/R7eV3L6S56ud/lu1WhFLig+NpMdjUpROrR6FgES9+ZqrBi7bU5X44+lZK2+flggBDtYmhUN1fXTruvJEb3/Lw== + dependencies: + debug "^4.0.0" + fixturify "^2.0.0" + fs-extra "^9.0.0" + tmp "0.2.1" + uuid "^8.0.0" + yargs "^16.0.0" git-hooks-list@1.0.3: version "1.0.3" @@ -9517,7 +8807,7 @@ git-repo-info@^2.1.1: resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-2.1.1.tgz#220ffed8cbae74ef8a80e3052f2ccb5179aed058" integrity sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg== -gl-matrix@^3.0.0, gl-matrix@^3.4.3: +gl-matrix@^3.2.1: version "3.4.3" resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.4.3.tgz#fc1191e8320009fd4d20e9339595c6041ddc22c9" integrity sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA== @@ -9530,26 +8820,36 @@ glob-all@^3.0.3: glob "^7.2.3" yargs "^15.3.1" -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@^10.2.2: + version "10.3.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.3.tgz#8360a4ffdd6ed90df84aa8d52f21f452e86a123b" + integrity sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.0.3" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + glob@^5.0.10: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" @@ -9573,6 +8873,17 @@ glob@^7.0.3, glob@^7.0.4, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, gl once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.1, glob@^8.0.3, glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + glob@~7.1.2: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -9592,6 +8903,13 @@ global-dirs@^0.1.0: dependencies: ini "^1.3.4" +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -9601,6 +8919,13 @@ global-modules@^1.0.0: is-windows "^1.0.1" resolve-dir "^1.0.0" +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" @@ -9612,12 +8937,21 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: +globals@^13.19.0: version "13.21.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571" integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg== @@ -9655,7 +8989,7 @@ globby@10.0.0: merge2 "^1.2.3" slash "^3.0.0" -globby@^11.0.3, globby@^11.0.4: +globby@^11.0.3, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -9667,6 +9001,22 @@ globby@^11.0.3, globby@^11.0.4: merge2 "^1.4.1" slash "^3.0.0" +globby@^13.2.2: + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +globjoin@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" + integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== + globrex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" @@ -9696,7 +9046,24 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -9711,6 +9078,11 @@ graceful-fs@~4.1.11: resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" integrity sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + grid-index@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/grid-index/-/grid-index-1.1.0.tgz#97f8221edec1026c8377b86446a7c71e79522ea7" @@ -9759,6 +9131,11 @@ har-validator@~5.1.3: ajv "^6.12.3" har-schema "^2.0.0" +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -9778,11 +9155,6 @@ has-bigints@^1.0.1, has-bigints@^1.0.2: resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== -has-color@~0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - integrity sha512-kaNz5OTAYYmt646Hkqw50/qyxP2vFnTVu5AQ1Zmk22Kk5+4Qx6BpO8+u7IKsML5fOsFk0ZT0AcCJNYwcvaLBvw== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -9853,22 +9225,18 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1, has@^1.0.3: +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - hash-files@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/hash-files/-/hash-files-1.1.1.tgz#5f89c64ef21ece69c8261254b7659bd40e91d8de" @@ -9892,14 +9260,6 @@ hash-for-dep@^1.0.2, hash-for-dep@^1.2.3, hash-for-dep@^1.4.7, hash-for-dep@^1.5 resolve "^1.10.0" resolve-package-path "^1.0.11" -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - hat@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" @@ -9915,7 +9275,7 @@ hawk@~3.1.3: hoek "2.x.x" sntp "1.x.x" -heimdalljs-fs-monitor@^1.1.0: +heimdalljs-fs-monitor@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/heimdalljs-fs-monitor/-/heimdalljs-fs-monitor-1.1.1.tgz#bb4021007e88484202402cdf594e3962d70dc4f4" integrity sha512-BHB8oOXLRlrIaON0MqJSEjGVPDyqt2Y6gu+w2PaEZjrCxeVtZG7etEZp7M4ZQ80HNvnr66KIQ2lot2qdeG8HgQ== @@ -9946,15 +9306,6 @@ heimdalljs@^0.2.0, heimdalljs@^0.2.1, heimdalljs@^0.2.3, heimdalljs@^0.2.5, heim dependencies: rsvp "~3.2.1" -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" @@ -9987,6 +9338,20 @@ hosted-git-info@^4.0.1: dependencies: lru-cache "^6.0.0" +hosted-git-info@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.2.1.tgz#0ba1c97178ef91f3ab30842ae63d6a272341156f" + integrity sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw== + dependencies: + lru-cache "^7.5.1" + +hosted-git-info@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz#629442c7889a69c05de604d52996b74fe6f26d58" + integrity sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w== + dependencies: + lru-cache "^7.5.1" + hosted-git-info@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" @@ -9997,6 +9362,11 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + htmlparser2@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" @@ -10012,6 +9382,11 @@ http-cache-semantics@^3.8.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -10046,6 +9421,15 @@ http-proxy-agent@^2.0.0: agent-base "4" debug "3.1.0" +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + http-proxy@^1.13.1, http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" @@ -10073,11 +9457,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== - https-proxy-agent@^2.1.0: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" @@ -10086,6 +9465,14 @@ https-proxy-agent@^2.1.0: agent-base "^4.3.0" debug "^3.1.0" +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + https@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4" @@ -10137,7 +9524,7 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.12, ieee754@^1.1.13, ieee754@^1.1.4: +ieee754@^1.1.12, ieee754@^1.1.13: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -10147,12 +9534,14 @@ iferr@^0.1.5, iferr@~0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore-walk@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776" + integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw== + dependencies: + minimatch "^5.0.1" -ignore@^5.1.1, ignore@^5.2.0: +ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -10162,7 +9551,7 @@ immutable@^4.0.0: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -10175,6 +9564,11 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -10185,7 +9579,17 @@ include-path-searcher@^0.1.0: resolved "https://registry.yarnpkg.com/include-path-searcher/-/include-path-searcher-0.1.0.tgz#c0cf2ddfa164fb2eae07bc7ca43a7f191cb4d7bd" integrity sha512-KlpXnsZOrBGo4PPKqPFi3Ft6dcRyh8fTaqgzqDRi8jKAsngJEWWOxeFIWC8EfZtXKaZqlsNf9XRwcQ49DVgl/g== -infer-owner@^1.0.3: +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indent-string@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" + integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== + +infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== @@ -10195,11 +9599,16 @@ inflected@^2.0.4: resolved "https://registry.yarnpkg.com/inflected/-/inflected-2.1.0.tgz#2816ac17a570bbbc8303ca05bca8bf9b3f959687" integrity sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w== -inflection@^1.12.0, inflection@~1.13.1: +inflection@^1.13.2: version "1.13.4" resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.13.4.tgz#65aa696c4e2da6225b148d7a154c449366633a32" integrity sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw== +inflection@^2.0.1, inflection@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inflection/-/inflection-2.0.1.tgz#bdf3a4c05d4275f41234910cbbe9a102ac72c99b" + integrity sha512-wzkZHqpb4eGrOKBl34xy3umnYHx8Si5R1U4fwmdxLo5gdH6mEK8gclckTj/qWqy4Je0bsDYe/qazZYuO7xe3XQ== + inflight@^1.0.4, inflight@~1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -10218,7 +9627,12 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.4, ini@~1.3.0, ini@~1.3.4: +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0, ini@~1.3.4: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -10286,6 +9700,27 @@ inquirer@^7.3.3: strip-ansi "^6.0.0" through "^2.3.6" +inquirer@^8.0.0, inquirer@^8.2.1: + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^6.0.1" + intercept-stdout@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/intercept-stdout/-/intercept-stdout-0.1.2.tgz#126abf1fae6c509a428a98c61a631559042ae9fd" @@ -10293,7 +9728,7 @@ intercept-stdout@^0.1.2: dependencies: lodash.toarray "^3.0.0" -internal-slot@^1.0.5: +internal-slot@^1.0.3, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== @@ -10314,21 +9749,26 @@ invert-kv@^2.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +invert-kv@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-3.0.1.tgz#a93c7a3d4386a1dc8325b97da9bb1620c0282523" + integrity sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw== + ip@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -irregular-plurals@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766" - integrity sha512-kniTIJmaZYiwa17eTtWIfm0K342seyugl6vuC8DiiyiRAJWAVlLkqGCI0Im0neo0TkXw+pRcKaBPRdcKHnQJ6Q== - is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -10364,20 +9804,6 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" @@ -10386,7 +9812,7 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.1.4, is-buffer@^1.1.5: +is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -10398,6 +9824,13 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" @@ -10410,7 +9843,14 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" -is-core-module@^2.13.0: +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== @@ -10456,7 +9896,7 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-docker@^2.0.0: +is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -10473,7 +9913,7 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== @@ -10510,14 +9950,7 @@ is-git-url@^1.0.0: resolved "https://registry.yarnpkg.com/is-git-url/-/is-git-url-1.0.0.tgz#53f684cd143285b52c3244b4e6f28253527af66b" integrity sha512-UCFta9F9rWFSavp9H3zHEHrARUfZbdJvmHKeEpds4BK3v7W2LdXoNypMtXXi5w5YBDEBCTYmbI+vsSwI8LYJaQ== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -10532,15 +9965,30 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + 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-language-code@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-language-code/-/is-language-code-2.0.0.tgz#6f4d59c551d73b98c45cf9f1d3ce65cee060e65b" - integrity sha512-6xKmRRcP2YdmMBZMVS3uiJRPQgcMYolkD6hFw2Y4KjqyIyaJlCGxUt56tuu0iIV8q9r8kMEo0Gjd/GFwKrgjbw== +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-language-code@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-language-code/-/is-language-code-3.1.0.tgz#b2386b49227e7010636f16d0c2c681ca40136ab5" + integrity sha512-zJdQ3QTeLye+iphMeK3wks+vXSRFKh68/Pnlw7aOfApFSEIOhYa8P9vwwa6QrImNNBMJTiL1PpYF0f4BxDuEgA== + dependencies: + "@babel/runtime" "^7.14.0" is-module@^1.0.0: version "1.0.0" @@ -10557,6 +10005,11 @@ is-npm@^1.0.0: resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" integrity sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg== +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -10593,11 +10046,21 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" +is-path-inside@^3.0.2, is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-plain-obj@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -10605,18 +10068,16 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw== -is-reference@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -10702,11 +10163,6 @@ is-windows@^1.0.1, is-windows@^1.0.2: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== - is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -10714,6 +10170,11 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -10729,10 +10190,10 @@ isarray@^2.0.5: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== -isbinaryfile@^4.0.6: - version "4.0.10" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" - integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== +isbinaryfile@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.0.tgz#034b7e54989dab8986598cbcea41f66663c65234" + integrity sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg== isexe@^2.0.0: version "2.0.0" @@ -10845,6 +10306,15 @@ istextorbinary@^2.5.1: editions "^2.2.0" textextensions "^2.5.0" +jackspeak@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.0.tgz#aa228a94de830f31d4e4f0184427ce91c4ff1493" + integrity sha512-uKmsITSsF4rUWQHzqaRUuyAir3fZfW3f202Ee34lz/gZCi970CPZwyQXLGNgWJvvZbvFyzeyGq0+4fcG/mBKZg== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jest-worker@^27.4.5: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" @@ -10854,11 +10324,16 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jquery@^3.4.1, jquery@^3.5.1: +jquery@^3.4.1: version "3.7.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== +jquery@^3.6.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.0.tgz#fe2c01a05da500709006d8790fe21c8a39d75612" + integrity sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ== + js-string-escape@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" @@ -10874,7 +10349,7 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== -js-yaml@3.x.x, js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@^3.2.5, js-yaml@^3.2.7: +js-yaml@3.x.x, js-yaml@^3.13.1, js-yaml@^3.2.5, js-yaml@^3.2.7: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -10882,6 +10357,13 @@ js-yaml@3.x.x, js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@^3.2.5, js-yaml@^3.2.7: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -10907,12 +10389,17 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -10959,14 +10446,14 @@ json5@^0.5.1: resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== -json5@^1.0.1, json5@^1.0.2: +json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.3: +json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -11006,15 +10493,7 @@ jsonify@^0.0.1: resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== -jsonlint-lines@1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/jsonlint-lines/-/jsonlint-lines-1.7.1.tgz#507de680d3fb8c4be1641cc57d6f679f29f178ff" - integrity sha512-Xp9w20GzfOiwabOqi3bH4Gnx85WFwpaWebmaspaDwX9fBISlEnKYoMtIR9bu6OGFIKzt50BRVyXLxRKDZXQ8Hg== - dependencies: - JSV ">= 4.0.x" - nomnom ">= 1.5.x" - -jsonparse@^1.2.0: +jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== @@ -11039,10 +10518,12 @@ kdbush@^3.0.0: resolved "https://registry.yarnpkg.com/kdbush/-/kdbush-3.0.0.tgz#f8484794d47004cc2d85ed3a79353dbe0abc2bf0" integrity sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew== -kdbush@^4.0.1, kdbush@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/kdbush/-/kdbush-4.0.2.tgz#2f7b7246328b4657dd122b6c7f025fbc2c868e39" - integrity sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA== +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" keyv@^4.5.3: version "4.5.3" @@ -11070,7 +10551,7 @@ kind-of@^5.0.0: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -11082,6 +10563,23 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" +known-css-properties@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.27.0.tgz#82a9358dda5fe7f7bd12b5e7142c0a205393c0c5" + integrity sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg== + +language-subtag-registry@^0.3.20: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== + +language-tags@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== + dependencies: + language-subtag-registry "^0.3.20" + latest-version@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" @@ -11089,6 +10587,13 @@ latest-version@^3.0.0: dependencies: package-json "^4.0.0" +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + lazy-property@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147" @@ -11101,6 +10606,13 @@ lcid@^2.0.0: dependencies: invert-kv "^2.0.0" +lcid@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-3.1.1.tgz#9030ec479a058fc36b5e8243ebaac8b6ac582fd0" + integrity sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg== + dependencies: + invert-kv "^3.0.0" + leek@0.0.24: version "0.0.24" resolved "https://registry.yarnpkg.com/leek/-/leek-0.0.24.tgz#e400e57f0e60d8ef2bd4d068dc428a54345dbcda" @@ -11145,17 +10657,15 @@ line-column@^1.0.2: isarray "^1.0.0" isobject "^2.0.0" -linkify-it@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" - integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== - dependencies: - uc.micro "^1.0.1" +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -linkify-it@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" - integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== +linkify-it@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" + integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== dependencies: uc.micro "^1.0.1" @@ -11202,25 +10712,11 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-utils@^1.2.3: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - loader-utils@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" @@ -11235,11 +10731,6 @@ loader.js@^4.7.0: resolved "https://registry.yarnpkg.com/loader.js/-/loader.js-4.7.0.tgz#a1a52902001c83631efde9688b8ab3799325ef1f" integrity sha512-9M2KvGT6duzGMgkOcTkWb+PR/Q2Oe54df/tLgHGVmFpAmtqJ553xJh6N63iFYI2yjo2PeJXbS5skHi/QpJq4vA== -locate-character@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-2.0.5.tgz#f2d2614d49820ecb3c92d80d193b8db755f74c0f" - integrity sha512-n2GmejDXtOPBAZdIiEFy5dJ5N38xBCXLNOtw2WpB9kGh6pnrEuKlwYI+Tkpofc4wDtVXHtoAOJaMRlYG/oYaxg== - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -11270,6 +10761,13 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + lockfile@~1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" @@ -11379,7 +10877,7 @@ lodash.assignin@^4.1.0: resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" integrity sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg== -lodash.camelcase@^4.3.0: +lodash.camelcase@^4.1.1, lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== @@ -11479,7 +10977,7 @@ lodash.isempty@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" integrity sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg== -lodash.isequal@^4.0.0, lodash.isequal@^4.2.0, lodash.isequal@^4.5.0: +lodash.isequal@^4.0.0, lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== @@ -11528,11 +11026,6 @@ lodash.mapvalues@^4.6.0: resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" integrity sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ== -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - lodash.merge@^4.6.0, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -11558,7 +11051,7 @@ lodash.snakecase@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== -lodash.template@^4.4.0, lodash.template@^4.5.0: +lodash.template@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== @@ -11612,7 +11105,7 @@ lodash.without@~4.4.0: resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha512-M3MefBwfDhgKgINVuBJCO1YR3+gf6s9HNJsIiZ/Ru77Ws6uTb9eBuvrkpzO+9iLoAaRodGuq7tyrPCx+74QYGQ== -lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: +lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -11664,11 +11157,16 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lowercase-keys@^1.0.0: +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@~4.1.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -11691,12 +11189,15 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@^0.24.0: - version "0.24.1" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.24.1.tgz#7e38e5f126cae9f15e71f0cf8e450818ca7d5a8f" - integrity sha512-YBfNxbJiixMzxW40XqJEIldzHyh5f7CZKalo1uZffevyrPEX8Qgo9s0dmcORLHdV47UyvJg8/zD+6hQG3qvJrA== - dependencies: - sourcemap-codec "^1.4.1" +lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + +"lru-cache@^9.1.1 || ^10.0.0": + version "10.0.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" + integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== magic-string@^0.25.7: version "0.25.9" @@ -11705,6 +11206,13 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" +magic-string@^0.30.0: + version "0.30.2" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.2.tgz#dcf04aad3d0d1314bc743d076c50feb29b3c7aca" + integrity sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -11712,7 +11220,7 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^2.0.0, make-dir@^2.1.0: +make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -11727,6 +11235,49 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" +make-fetch-happen@^10.0.6: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^16.1.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + +make-fetch-happen@^11.0.3: + version "11.1.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" + integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^17.0.0" + http-cache-semantics "^4.1.1" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^5.0.0" + minipass-fetch "^3.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^10.0.0" + make-fetch-happen@^2.4.13: version "2.6.0" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz#8474aa52198f6b1ae4f3094c04e8370d35ea8a38" @@ -11751,7 +11302,7 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -map-age-cleaner@^0.1.1: +map-age-cleaner@^0.1.1, map-age-cleaner@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== @@ -11763,6 +11314,16 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -11770,112 +11331,56 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -mapbox-gl-draw@0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/mapbox-gl-draw/-/mapbox-gl-draw-0.16.0.tgz#c6c7912336780177810b4adbbb2265a118b16cf0" - integrity sha512-+ztG16grPMer/7mxcGTU5DKNqk0irJffQ0CecCtN3nQXw2zWrRvW/SZ2L4eyyxW6anJNNgsEkmOsLtwXv0Fz+Q== - dependencies: - geojson-area "^0.2.1" - geojson-extent "^0.3.2" - geojson-normalize "0.0.1" - geojsonhint "^2.0.0beta" - hat "0.0.3" - lodash.isequal "^4.2.0" - point-geometry "0.0.0" - xtend "^4.0.1" - -mapbox-gl@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mapbox-gl/-/mapbox-gl-1.0.0.tgz#646df3e1812899f4331ab8ea695b182f4a4ea7d9" - integrity sha512-+sfg6e3Ud6G9PNcdA56r6U0j2SJEQrnTTx/V8xt0xedIN9hrGIceKIukWz+tAgrw0KS5GKi6ThkWXPuwcGi36g== +mapbox-gl@^1.0.0: + version "1.13.3" + resolved "https://registry.yarnpkg.com/mapbox-gl/-/mapbox-gl-1.13.3.tgz#e024829cfc353f6e99275592061d15dfd7f41a71" + integrity sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg== dependencies: - "@mapbox/geojson-rewind" "^0.4.0" + "@mapbox/geojson-rewind" "^0.5.2" "@mapbox/geojson-types" "^1.0.2" "@mapbox/jsonlint-lines-primitives" "^2.0.2" - "@mapbox/mapbox-gl-supported" "^1.4.0" + "@mapbox/mapbox-gl-supported" "^1.5.0" "@mapbox/point-geometry" "^0.1.0" - "@mapbox/tiny-sdf" "^1.1.0" + "@mapbox/tiny-sdf" "^1.1.1" "@mapbox/unitbezier" "^0.0.0" "@mapbox/vector-tile" "^1.3.1" "@mapbox/whoots-js" "^3.1.0" - csscolorparser "~1.0.2" - earcut "^2.1.5" - esm "~3.0.84" - geojson-vt "^3.2.1" - gl-matrix "^3.0.0" - grid-index "^1.1.0" - minimist "0.0.8" - murmurhash-js "^1.0.0" - pbf "^3.0.5" - potpack "^1.0.1" - quickselect "^2.0.0" - rw "^1.3.3" - supercluster "^6.0.1" - tinyqueue "^2.0.0" - vt-pbf "^3.1.1" - -mapbox-gl@>=0.47.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/mapbox-gl/-/mapbox-gl-2.15.0.tgz#9439828d0bae1e7b464ae08b30cb2e65a7e2256d" - integrity sha512-fjv+aYrd5TIHiL7wRa+W7KjtUqKWziJMZUkK5hm8TvJ3OLeNPx4NmW/DgfYhd/jHej8wWL+QJBDbdMMAKvNC0A== - dependencies: - "@mapbox/geojson-rewind" "^0.5.2" - "@mapbox/jsonlint-lines-primitives" "^2.0.2" - "@mapbox/mapbox-gl-supported" "^2.0.1" - "@mapbox/point-geometry" "^0.1.0" - "@mapbox/tiny-sdf" "^2.0.6" - "@mapbox/unitbezier" "^0.0.1" - "@mapbox/vector-tile" "^1.3.1" - "@mapbox/whoots-js" "^3.1.0" csscolorparser "~1.0.3" - earcut "^2.2.4" + earcut "^2.2.2" geojson-vt "^3.2.1" - gl-matrix "^3.4.3" + gl-matrix "^3.2.1" grid-index "^1.1.0" - kdbush "^4.0.1" murmurhash-js "^1.0.0" pbf "^3.2.1" - potpack "^2.0.0" + potpack "^1.0.1" quickselect "^2.0.0" rw "^1.3.3" - supercluster "^8.0.0" + supercluster "^7.1.0" tinyqueue "^2.0.3" - vt-pbf "^3.1.3" + vt-pbf "^3.1.1" -markdown-it-terminal@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/markdown-it-terminal/-/markdown-it-terminal-0.2.1.tgz#670fd5ea824a7dcaa1591dcbeef28bf70aff1705" - integrity sha512-e8hbK9L+IyFac2qY05R7paP+Fqw1T4pSQW3miK3VeG9QmpqBjg5Qzjv/v6C7YNxSNRS2Kp8hUFtm5lWU9eK4lw== +markdown-it-terminal@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/markdown-it-terminal/-/markdown-it-terminal-0.4.0.tgz#d58466e3de0a638d6a5bd7e16ca51d8e55f3a3ac" + integrity sha512-NeXtgpIK6jBciHTm9UhiPnyHDdqyVIdRPJ+KdQtZaf/wR74gvhCNbw5li4TYsxRp5u3ZoHEF4DwpECeZqyCw+w== dependencies: ansi-styles "^3.0.0" cardinal "^1.0.0" cli-table "^0.3.1" lodash.merge "^4.6.2" - markdown-it "^8.3.1" -markdown-it@^12.0.4: - version "12.3.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" - integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== +markdown-it@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430" + integrity sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q== dependencies: argparse "^2.0.1" - entities "~2.1.0" - linkify-it "^3.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -markdown-it@^8.3.1: - version "8.4.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54" - integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ== - dependencies: - argparse "^1.0.7" - entities "~1.1.1" - linkify-it "^2.0.0" + entities "~3.0.1" + linkify-it "^4.0.1" mdurl "^1.0.1" uc.micro "^1.0.5" -matcher-collection@^1.0.0, matcher-collection@^1.0.4, matcher-collection@^1.1.1: +matcher-collection@^1.0.0, matcher-collection@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-1.1.2.tgz#1076f506f10ca85897b53d14ef54f90a5c426838" integrity sha512-YQ/teqaOIIfUHedRam08PB3NK7Mjct6BvzRnJmpGDm8uFXpNr1sbY4yuflI5JcEs6COpYA0FpRQhSDBf1tT95g== @@ -11890,6 +11395,11 @@ matcher-collection@^2.0.0, matcher-collection@^2.0.1: "@types/minimatch" "^3.0.3" minimatch "^3.0.2" +mathml-tag-names@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" + integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== + md5-hex@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" @@ -11902,15 +11412,6 @@ md5-o-matic@^0.1.1: resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" integrity sha512-QBJSFpsedXUl/Lgs4ySdB2XCzUEcJ3ujpbagdZCkRaYIaC0kFnID8jhc84KEiVv6dNFtIrmW7bqow0lDxgJi6A== -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - mdn-data@2.0.30: version "2.0.30" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" @@ -11935,21 +11436,14 @@ mem@^4.0.0: mimic-fn "^2.0.0" p-is-promise "^2.0.0" -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== +mem@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" memory-streams@^0.1.3: version "0.1.3" @@ -11958,23 +11452,36 @@ memory-streams@^0.1.3: dependencies: readable-stream "~1.0.2" -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== +meow@^10.1.5: + version "10.1.5" + resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f" + integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw== + dependencies: + "@types/minimist" "^1.2.2" + camelcase-keys "^7.0.0" + decamelize "^5.0.0" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.2" + read-pkg-up "^8.0.0" + redent "^4.0.0" + trim-newlines "^4.0.2" + type-fest "^1.2.2" + yargs-parser "^20.2.9" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== -merge-package.json@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/merge-package.json/-/merge-package.json-2.0.3.tgz#174cdb28e10cfa2069ec26128f0f8680ac325ccc" - integrity sha512-N+kMlIc83RYP67j9BsVaikRFGBBZKK+YKL8C6iNFqcr7bOmhK/IwrkITGXmq/3Jj4t7/ydxsHF+oqlW8lCJwpg== +merge-package.json@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/merge-package.json/-/merge-package.json-4.0.2.tgz#3c2e57243dce7c080daa6a8f409c066dda9fd85d" + integrity sha512-5ZBed57HL8R5vzb0SnEMSG94Bu6tJ8p/o4qGKuAeAA4cAXNrc00onf8jIgmGp1Kn6sVQf5HgISgqbNJFphiUHg== dependencies: - rfc6902-ordered "^3.1.1" - three-way-merger "^0.5.7" + rfc6902-ordered "^6.0.0" + three-way-merger "0.6.3" merge-stream@^2.0.0: version "2.0.0" @@ -12016,7 +11523,7 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micromatch@4.0.5, micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@4.0.5, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -12024,7 +11531,7 @@ micromatch@4.0.5, micromatch@^4.0.2, micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -12043,14 +11550,6 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" @@ -12083,6 +11582,16 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + mini-css-extract-plugin@^2.5.2: version "2.7.6" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" @@ -12090,37 +11599,42 @@ mini-css-extract-plugin@^2.5.2: dependencies: schema-utils "^4.0.0" -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.5.tgz#d7aa327bcecf518f9106ac6b8f003fa3bcea8566" - integrity sha512-rSJ0cdmCj3qmKdObcnMcWgPVOyaOWlazLhZAJW0s6G6lx1ZEuFkraWmEH5LTvX90btkfHPclQBjvjU7A/kYRFg== +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q== +minimatch@^7.4.1: + version "7.4.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" + integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== + dependencies: + brace-expansion "^2.0.1" -minimist@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== +minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" minimist@^0.2.1: version "0.2.4" @@ -12132,6 +11646,64 @@ minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== + dependencies: + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-fetch@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + minipass@^2.2.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" @@ -12140,6 +11712,31 @@ minipass@^2.2.0: safe-buffer "^5.1.2" yallist "^3.0.0" +minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.3.tgz#05ea638da44e475037ed94d1c7efcc76a25e1974" + integrity sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg== + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + miragejs@^0.1.43: version "0.1.47" resolved "https://registry.yarnpkg.com/miragejs/-/miragejs-0.1.47.tgz#c4a8dff21adfc0ce3181d78987f11848d74c6869" @@ -12204,22 +11801,6 @@ mississippi@^2.0.0: stream-each "^1.1.0" through2 "^2.0.0" -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -12228,14 +11809,14 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@^0.5.6, mkdirp@~0.5.0, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@^0.5.6, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" -mkdirp@^1.0.4: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -12261,10 +11842,10 @@ morgan@^1.10.0: on-finished "~2.3.0" on-headers "~1.0.2" -motion-ui@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/motion-ui/-/motion-ui-2.0.5.tgz#babb74c27f1dfdde7b731f81a8e28d68444d7da7" - integrity sha512-MJs4dS7/bSnJ92X5IB4bTIif6SwqwEDbX1F/eiUGSzIVhVTl4UqD8xr8ygg01dXZrpPrDjjUNoVkB8vT+PaY/g== +motion-ui@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/motion-ui/-/motion-ui-2.0.4.tgz#3d9423c26b76e577da19b5f0915fea067433bf1a" + integrity sha512-7GjtcXXqRHUQGH9Gm8KLbvx9sz5tNGlftsaJ/J5d4q33PzfgKnUm+OynDji4VR3fiZXPT3nMkzBQlZsifYTIOg== mout@^1.0.0: version "1.2.4" @@ -12363,17 +11944,12 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -ncp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" - integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA== - -negotiator@0.6.3: +negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -12423,12 +11999,22 @@ node-fetch-npm@^2.0.2: json-parse-better-errors "^1.0.0" safe-buffer "^5.1.1" -node-fetch@^2.6.0, node-fetch@^2.6.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== +node-gyp@^9.0.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.0.tgz#2a7a91c7cba4eccfd95e949369f27c9ba704f369" + integrity sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg== dependencies: - whatwg-url "^5.0.0" + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^11.0.3" + nopt "^6.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" node-gyp@~3.6.2: version "3.6.3" @@ -12461,35 +12047,6 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - node-modules-path@^1.0.0, node-modules-path@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/node-modules-path/-/node-modules-path-1.0.2.tgz#e3acede9b7baf4bc336e3496b58e5b40d517056e" @@ -12517,14 +12074,6 @@ node-watch@0.7.3: resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.7.3.tgz#6d4db88e39c8d09d3ea61d6568d80e5975abc7ab" integrity sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ== -"nomnom@>= 1.5.x": - version "1.8.1" - resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" - integrity sha512-5s0JxqhDx9/rksG2BTMVN1enjWSvPidpoSgViZU4ZXULyTe+7jxcCRLB6f42Z0l1xYJpleCBtSyY6Lwg3uu5CQ== - dependencies: - chalk "~0.4.0" - underscore "~1.6.0" - "nopt@2 || 3", nopt@^3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -12532,6 +12081,13 @@ node-watch@0.7.3: dependencies: abbrev "1" +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" @@ -12557,6 +12113,26 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package- semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" +normalize-package-data@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c" + integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg== + dependencies: + hosted-git-info "^5.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + normalize-package-data@~2.4.0: version "2.4.2" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.2.tgz#6b2abd85774e51f7936f1395e45acb905dc849b2" @@ -12574,15 +12150,34 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -nouislider@^11.0.3: - version "11.1.0" - resolved "https://registry.yarnpkg.com/nouislider/-/nouislider-11.1.0.tgz#1768eb5b854917325d41b96f2dc4eb3757d73381" - integrity sha512-nD+Fgc8A8j6hnGvR5AaV+OBuLF446z4H2fmcEJ/6U6CJr6rAnFnionMXu7dmdghZ+bhgePvL3wrDRbu+0ux7Jg== +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +nouislider@^14.1.1: + version "14.7.0" + resolved "https://registry.yarnpkg.com/nouislider/-/nouislider-14.7.0.tgz#a71db0587c92567b6da1df57d251d3696d942362" + integrity sha512-4RtQ1+LHJKesDCNJrXkQcwXAWCrC2aggdLYMstS/G5fEWL+fXZbUA9pwVNHFghMGuFGRATlDLNInRaPeRKzpFQ== + +npm-bundled@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-bundled@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" + integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== + dependencies: + npm-normalize-package-bin "^2.0.0" npm-cache-filename@~1.0.2: version "1.0.2" @@ -12594,6 +12189,13 @@ npm-git-info@^1.0.3: resolved "https://registry.yarnpkg.com/npm-git-info/-/npm-git-info-1.0.3.tgz#a933c42ec321e80d3646e0d6e844afe94630e1d5" integrity sha512-i5WBdj4F/ULl16z9ZhsJDMl1EQCMQhHZzBwNnKL2LOA+T8IHNeRkLCVz9uVV9SzUdGTbDq+1oXhIYMe+8148vw== +npm-install-checks@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234" + integrity sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA== + dependencies: + semver "^7.1.1" + npm-install-checks@~3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.2.tgz#ab2e32ad27baa46720706908e5b14c1852de44d9" @@ -12601,11 +12203,26 @@ npm-install-checks@~3.0.0: dependencies: semver "^2.3.0 || 3.x || 4 || 5" -npm-normalize-package-bin@^1.0.0: +npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== +npm-normalize-package-bin@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" + integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== + +npm-package-arg@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-10.1.0.tgz#827d1260a683806685d17193073cc152d3c7e9b1" + integrity sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA== + dependencies: + hosted-git-info "^6.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + "npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0", npm-package-arg@^5.1.2, npm-package-arg@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz#fb18d17bb61e60900d6312619919bd753755ab37" @@ -12626,7 +12243,7 @@ npm-normalize-package-bin@^1.0.0: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-package-arg@^8.1.1: +npm-package-arg@^8.0.1: version "8.1.5" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== @@ -12635,6 +12252,26 @@ npm-package-arg@^8.1.1: semver "^7.3.4" validate-npm-package-name "^3.0.0" +npm-package-arg@^9.0.0, npm-package-arg@^9.0.1: + version "9.1.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc" + integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== + dependencies: + hosted-git-info "^5.0.0" + proc-log "^2.0.1" + semver "^7.3.5" + validate-npm-package-name "^4.0.0" + +npm-packlist@^5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" + integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== + dependencies: + glob "^8.0.1" + ignore-walk "^5.0.1" + npm-bundled "^2.0.0" + npm-normalize-package-bin "^2.0.0" + npm-pick-manifest@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-1.0.4.tgz#a5ee6510c1fe7221c0bc0414e70924c14045f7e8" @@ -12643,6 +12280,16 @@ npm-pick-manifest@^1.0.4: npm-package-arg "^5.1.2" semver "^5.3.0" +npm-pick-manifest@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84" + integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw== + dependencies: + npm-install-checks "^5.0.0" + npm-normalize-package-bin "^2.0.0" + npm-package-arg "^9.0.0" + semver "^7.3.5" + npm-registry-client@~8.4.0: version "8.4.0" resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.4.0.tgz#d52b901685647fc62a4c03eafecb6ceaa5018d4c" @@ -12661,20 +12308,18 @@ npm-registry-client@~8.4.0: optionalDependencies: npmlog "2 || ^3.1.0 || ^4.0.0" -npm-run-all@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" - integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== +npm-registry-fetch@^13.0.1: + version "13.3.1" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e" + integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw== dependencies: - ansi-styles "^3.2.1" - chalk "^2.4.1" - cross-spawn "^6.0.5" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.3.0" - read-pkg "^3.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" + make-fetch-happen "^10.0.6" + minipass "^3.1.6" + minipass-fetch "^2.0.3" + minipass-json-stream "^1.0.1" + minizlib "^2.1.2" + npm-package-arg "^9.0.1" + proc-log "^2.0.0" npm-run-path@^2.0.0: version "2.0.2" @@ -12683,13 +12328,6 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" - integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== - dependencies: - path-key "^3.0.0" - npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -12821,7 +12459,7 @@ npmlog@^6.0.0: gauge "^4.0.3" set-blocking "^2.0.0" -npx@^10.0.1: +npx@^10.2.0: version "10.2.2" resolved "https://registry.yarnpkg.com/npx/-/npx-10.2.2.tgz#de4be1b76e6bcbf750486925b34a07eed1db01b4" integrity sha512-eImmySusyeWphzs5iNh791XbZnZG0FSNvM4KSah34pdQQIDsdTDhIwg1sjN3AIVcjGLpbQ/YcfqHPshKZQK1fA== @@ -12839,15 +12477,15 @@ numeral@^2.0.6: resolved "https://registry.yarnpkg.com/numeral/-/numeral-2.0.6.tgz#4ad080936d443c2561aed9f2197efffe25f4e506" integrity sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA== -nyc-planning-style-guide@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/nyc-planning-style-guide/-/nyc-planning-style-guide-1.0.7.tgz#287d9131584b49af1c512f3b16a2e0113744989b" - integrity sha512-BSXr5IlJX5n2YATtzcHiAiHzx0jP7TrKYoYiWES99U9lVEEGahz1GjBdk/QJgG1AysoAIanqVkaI4aZhj30ZOQ== +nyc-planning-style-guide@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nyc-planning-style-guide/-/nyc-planning-style-guide-2.0.0.tgz#a07c45400b66d7ff0e43595de3655800b283cfab" + integrity sha512-cGhOcMkPa2+6lOftYZGzAk6s3q2P8iD/JHqj97fK+LQCWQ2GgPl85rb706ce3XVBJT6D7yXhpkJX2eti+w0UiQ== dependencies: - foundation-sites "^6.6.1" - jquery "^3.4.1" - motion-ui "^2.0.3" - what-input "^5.2.3" + foundation-sites "^6.7.5" + jquery "^3.6.0" + motion-ui "^2.0.4" + what-input "^5.2.10" oauth-sign@~0.8.1: version "0.8.2" @@ -12900,7 +12538,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.4: +object.assign@^4.1.2, object.assign@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== @@ -12910,32 +12548,32 @@ object.assign@^4.1.0, object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" - integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== +object.entries@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== dependencies: call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" object.fromentries@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== dependencies: call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" object.groupby@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.0.tgz#cb29259cf90f37e7bac6437686c1ea8c916d12a9" + integrity sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - es-abstract "^1.22.1" + es-abstract "^1.21.2" get-intrinsic "^1.2.1" object.pick@^1.3.0: @@ -13006,18 +12644,20 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" +open@^8.0.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + opener@~1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" integrity sha512-4Im9TrPJcjAYyGR5gBe3yZnBzw5n3Bfh1ceHHGNOpMurINKc6RdSIPXMyon4BZacJbJc36lLkhipioGbWh5pwg== -opn@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - opter@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/opter/-/opter-1.1.0.tgz#2598aebb60b3f1a7322af1097086f4e798c84a76" @@ -13030,7 +12670,7 @@ opter@^1.1.0: z-schema "^3.0.1" z-schema-errors "0.0.1" -optionator@^0.9.1: +optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== @@ -13064,7 +12704,7 @@ ora@^3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" -ora@^5.4.0: +ora@^5.4.0, ora@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== @@ -13079,17 +12719,12 @@ ora@^5.4.0: strip-ansi "^6.0.0" wcwidth "^1.0.1" -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== - os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== -os-locale@^3.0.0, os-locale@^3.1.0: +os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== @@ -13098,6 +12733,15 @@ os-locale@^3.0.0, os-locale@^3.1.0: lcid "^2.0.0" mem "^4.0.0" +os-locale@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-5.0.0.tgz#6d26c1d95b6597c5d5317bf5fba37eccec3672e0" + integrity sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA== + dependencies: + execa "^4.0.0" + lcid "^3.0.0" + mem "^5.0.0" + os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~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" @@ -13111,6 +12755,11 @@ osenv@0, osenv@^0.1.3, osenv@^0.1.4, osenv@^0.1.5, osenv@~0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -13126,12 +12775,7 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-is-promise@^2.0.0: +p-is-promise@^2.0.0, p-is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== @@ -13157,6 +12801,13 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -13185,6 +12836,25 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-reduce@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-3.0.0.tgz#f11773794792974bd1f7a14c72934248abff4160" + integrity sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q== + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -13205,6 +12875,43 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +pacote@^13.5.0: + version "13.6.2" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" + integrity sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg== + dependencies: + "@npmcli/git" "^3.0.0" + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/promise-spawn" "^3.0.0" + "@npmcli/run-script" "^4.1.0" + cacache "^16.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + infer-owner "^1.0.4" + minipass "^3.1.6" + mkdirp "^1.0.4" + npm-package-arg "^9.0.0" + npm-packlist "^5.1.0" + npm-pick-manifest "^7.0.0" + npm-registry-fetch "^13.0.1" + proc-log "^2.0.0" + promise-retry "^2.0.1" + read-package-json "^5.0.0" + read-package-json-fast "^2.0.3" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + pacote@~2.7.38: version "2.7.38" resolved "https://registry.yarnpkg.com/pacote/-/pacote-2.7.38.tgz#5091f8774298c26c3eca24606037f1bb73db74c1" @@ -13232,11 +12939,6 @@ pacote@~2.7.38: unique-filename "^1.1.0" which "^1.2.12" -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - parallel-transform@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" @@ -13253,17 +12955,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -13272,10 +12963,15 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-ms@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d" - integrity sha512-LpH1Cf5EYuVjkBvCDBYvkUPh+iv2bk3FHflxHkpCYT0/FZ1d3N3uJaLiHr4yGuMcFUhv6eAivitTvWZI4B/chg== +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" parse-passwd@^1.0.0: version "1.0.0" @@ -13310,16 +13006,6 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -13330,6 +13016,11 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + path-is-absolute@1.0.1, path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -13377,6 +13068,14 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -13401,7 +13100,7 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbf@^3.0.5, pbf@^3.2.1: +pbf@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/pbf/-/pbf-3.2.1.tgz#b4c1b9e72af966cd82c6531691115cc0409ffe2a" integrity sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ== @@ -13409,17 +13108,6 @@ pbf@^3.0.5, pbf@^3.2.1: ieee754 "^1.1.12" resolve-protobuf-schema "^2.1.0" -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" @@ -13435,7 +13123,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -13445,11 +13133,6 @@ pidtree@0.6.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== -pidtree@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" - integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== - pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" @@ -13472,13 +13155,6 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - pkg-dir@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -13500,18 +13176,6 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -plur@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" - integrity sha512-WhcHk576xg9y/iv6RWOuroZgsqvCbJN+XGvAypCJwLAYs2iWDp5LUmvaCdV6JR2O0SMBf8l6p7A94AyLCFVMlQ== - dependencies: - irregular-plurals "^1.0.0" - -point-geometry@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/point-geometry/-/point-geometry-0.0.0.tgz#6fcbcad7a803b6418247dd6e49c2853c584daff7" - integrity sha512-tXK8bY2l3/CPkyO7+UbOWbVjCpKoYY4t6uY3AYYy4Bagd4Z942gLeQOgtHICwBwgPf8dI6fw4VqKwzSNgvlw4A== - polygon-clipping@^0.15.3: version "0.15.3" resolved "https://registry.yarnpkg.com/polygon-clipping/-/polygon-clipping-0.15.3.tgz#0215840438470ba2e9e6593625e4ea5c1087b4b7" @@ -13524,7 +13188,7 @@ popper.js@^1.0.2, popper.js@^1.12.5: resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== -portfinder@^1.0.28: +portfinder@^1.0.32: version "1.0.32" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== @@ -13566,7 +13230,17 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: +postcss-resolve-nested-selector@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" + integrity sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw== + +postcss-safe-parser@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1" + integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ== + +postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== @@ -13574,7 +13248,7 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-value-parser@^4.1.0: +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== @@ -13588,16 +13262,20 @@ postcss@^8.2.15: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.25: + version "8.4.28" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.28.tgz#c6cc681ed00109072816e1557f889ef51cf950a5" + integrity sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + potpack@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.2.tgz#23b99e64eb74f5741ffe7656b5b5c4ddce8dfc14" integrity sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ== -potpack@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/potpack/-/potpack-2.0.0.tgz#61f4dd2dc4b3d5e996e3698c0ec9426d0e169104" - integrity sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw== - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -13608,6 +13286,11 @@ prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + pretender@^3.4.7: version "3.4.7" resolved "https://registry.yarnpkg.com/pretender/-/pretender-3.4.7.tgz#34a2ae2d1fc9db440a990d50e6c0f5481d8755fc" @@ -13623,32 +13306,30 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.3.2: +prettier@^2.5.1, prettier@^2.8.7: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -pretty-ms@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-3.2.0.tgz#87a8feaf27fc18414d75441467d411d6e6098a25" - integrity sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q== - dependencies: - parse-ms "^1.0.0" - printf@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/printf/-/printf-0.6.1.tgz#b9afa3d3b55b7f2e8b1715272479fc756ed88650" integrity sha512-is0ctgGdPJ5951KulgfzvHGwJtZ5ck8l042vRkV6jrkpBzTmb/lueTqguWHy2JfVA+RY6gFVlaZgUS0j7S/dsw== -private@^0.1.6, private@^0.1.8: +private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - integrity sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw== +proc-log@^2.0.0, proc-log@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" + integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== + +proc-log@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== process-nextick-args@~2.0.0: version "2.0.1" @@ -13662,16 +13343,6 @@ process-relative-require@^1.0.0: dependencies: node-modules-path "^1.0.0" -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - promise-inflight@^1.0.1, promise-inflight@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -13697,7 +13368,15 @@ promise-retry@^1.1.1: err-code "^1.0.0" retry "^0.10.0" -promise.hash.helper@^1.0.7: +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +promise.hash.helper@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/promise.hash.helper/-/promise.hash.helper-1.0.8.tgz#8c5fa0570f6f96821f52364fd72292b2c5a114f7" integrity sha512-KYcnXctWUWyVD3W3Ye0ZDuA1N8Szrh85cVCxpG6xYrOk/0CttRtYCmU30nWsUch0NuExQQ63QXvzRE6FLimZmg== @@ -13709,6 +13388,15 @@ promzard@^0.3.0: dependencies: read "1" +proper-lockfile@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" + integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== + dependencies: + graceful-fs "^4.2.4" + retry "^0.12.0" + signal-exit "^3.0.2" + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -13749,18 +13437,6 @@ psl@^1.1.28: resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" @@ -13794,7 +13470,7 @@ pumpify@^1.3.3: inherits "^2.0.3" pump "^2.0.0" -punycode@^1.2.4, punycode@^1.4.1: +punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== @@ -13804,6 +13480,13 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -13811,7 +13494,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.11.2, qs@^6.4.0: +qs@^6.4.0: version "6.11.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== @@ -13828,16 +13511,16 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + quick-temp@^0.1.2, quick-temp@^0.1.3, quick-temp@^0.1.5, quick-temp@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/quick-temp/-/quick-temp-0.1.8.tgz#bab02a242ab8fb0dd758a3c9776b32f9a5d94408" @@ -13862,7 +13545,7 @@ qunit-dom@^2.0.0: ember-cli-babel "^7.23.0" ember-cli-version-checker "^5.1.1" -qunit@^2.16.0: +qunit@^2.19.4: version "2.19.4" resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.19.4.tgz#2d689bb1165edd4b812e3ed2ee06ff907e9f2ece" integrity sha512-aqUzzUeCqlleWYKlpgfdHHw9C6KxkB9H3wNfiBg5yHqQMzy0xw/pbCRHYFkjl8MsP/t8qkTQE+JTYL71azgiew== @@ -13871,21 +13554,13 @@ qunit@^2.16.0: node-watch "0.7.3" tiny-glob "0.2.9" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -13919,7 +13594,7 @@ raw-body@~1.1.0: bytes "1" string_decoder "0.10" -rc@^1.0.1, rc@^1.1.6: +rc@1.2.8, rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -13955,6 +13630,14 @@ read-installed@~4.0.3: optionalDependencies: graceful-fs "^4.1.2" +read-package-json-fast@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" + integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== + dependencies: + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" + "read-package-json@1 || 2", read-package-json@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" @@ -13965,6 +13648,16 @@ read-installed@~4.0.3: normalize-package-data "^2.0.0" npm-normalize-package-bin "^1.0.0" +read-package-json@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa" + integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q== + dependencies: + glob "^8.0.1" + json-parse-even-better-errors "^2.3.1" + normalize-package-data "^4.0.0" + npm-normalize-package-bin "^2.0.0" + read-package-json@~2.0.9: version "2.0.13" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" @@ -13996,6 +13689,15 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" +read-pkg-up@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" + integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== + dependencies: + find-up "^5.0.0" + read-pkg "^6.0.0" + type-fest "^1.0.1" + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -14005,6 +13707,16 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +read-pkg@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" + integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^3.0.2" + parse-json "^5.2.0" + type-fest "^1.0.1" + read@1, read@~1.0.1, read@~1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" @@ -14012,7 +13724,7 @@ read@1, read@~1.0.1, read@~1.0.7: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.2, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.2, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -14054,18 +13766,6 @@ readable-stream@~1.1.10: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@~2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - integrity sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - readdir-scoped-modules@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" @@ -14076,22 +13776,6 @@ readdir-scoped-modules@^1.0.0: graceful-fs "^4.1.2" once "^1.3.0" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - recast@^0.18.1: version "0.18.10" resolved "https://registry.yarnpkg.com/recast/-/recast-0.18.10.tgz#605ebbe621511eb89b6356a7e224bff66ed91478" @@ -14102,12 +13786,13 @@ recast@^0.18.1: private "^0.1.8" source-map "~0.6.1" -redeyed@~0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-0.4.4.tgz#37e990a6f2b21b2a11c2e6a48fd4135698cba97f" - integrity sha512-pnk1vsaNLu1UAAClKsImKz9HjBvg9i8cbRqTRzJbiCjGF0fZSMqpdcA5W3juO3c4etFvTrabECkq9wjC45ZyxA== +redent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" + integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== dependencies: - esprima "~1.0.4" + indent-string "^5.0.0" + strip-indent "^4.0.0" redeyed@~1.0.0: version "1.0.1" @@ -14123,16 +13808,11 @@ regenerate-unicode-properties@^10.1.0: dependencies: regenerate "^1.4.2" -regenerate@^1.2.1, regenerate@^1.4.2: +regenerate@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - integrity sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w== - regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" @@ -14148,20 +13828,6 @@ regenerator-runtime@^0.14.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== -regenerator-runtime@^0.9.5: - version "0.9.6" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" - integrity sha512-D0Y/JJ4VhusyMOd/o25a3jdUqN/bC85EFsaoL9Oqmy/O4efCh+xhp7yj2EEOsj974qvMkcW8AwUzJ1jB/MbxCw== - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - regenerator-transform@^0.15.2: version "0.15.2" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" @@ -14177,7 +13843,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.5.0: +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== @@ -14186,20 +13852,11 @@ regexp.prototype.flags@^1.5.0: define-properties "^1.2.0" set-function-name "^2.0.0" -regexpp@^3.0.0, regexpp@^3.1.0: +regexpp@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ== - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - regexpu-core@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" @@ -14220,6 +13877,13 @@ registry-auth-token@^3.0.1: rc "^1.1.6" safe-buffer "^5.0.1" +registry-auth-token@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" + integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== + dependencies: + rc "1.2.8" + registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" @@ -14227,17 +13891,12 @@ registry-url@^3.0.3: dependencies: rc "^1.0.1" -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g== - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw== +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== dependencies: - jsesc "~0.5.0" + rc "^1.2.8" regjsparser@^0.9.1: version "0.9.1" @@ -14251,12 +13910,22 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== +remove-types@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/remove-types/-/remove-types-1.0.0.tgz#491119e8fce23f2f961fe2254e5a119a017d9a3d" + integrity sha512-G7Hk1Q+UJ5DvlNAoJZObxANkBZGiGdp589rVcTW/tYqJWJ5rwfraSnKSQaETN8Epaytw8J40nS/zC7bcHGv36w== + dependencies: + "@babel/core" "^7.16.10" + "@babel/plugin-syntax-decorators" "^7.16.7" + "@babel/plugin-transform-typescript" "^7.16.8" + prettier "^2.5.1" + repeat-element@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== -repeat-string@^1.5.0, repeat-string@^1.6.1: +repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== @@ -14268,11 +13937,6 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA== - "request@>=2.9.0 <2.82.0", request@~2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" @@ -14347,11 +14011,6 @@ require-main-filename@^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== -require-relative@^0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" - integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== - requireindex@^1.1.0, requireindex@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" @@ -14385,7 +14044,12 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-package-path@^1.0.11, resolve-package-path@^1.2.2, resolve-package-path@^1.2.6: +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-package-path@^1.0.11, resolve-package-path@^1.2.6: version "1.2.7" resolved "https://registry.yarnpkg.com/resolve-package-path/-/resolve-package-path-1.2.7.tgz#2a7bc37ad96865e239330e3102c31322847e652e" integrity sha512-fVEKHGeK85bGbVFuwO9o1aU0n3vqQGrezPc51JGu9UTXpFQfWq5qCeKxyaRUSvephs+06c5j5rPq/dzHGEo8+Q== @@ -14436,7 +14100,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.4, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.22.3, resolve@^1.22.4, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: version "1.22.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== @@ -14445,6 +14109,13 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== + dependencies: + lowercase-keys "^1.0.0" + restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -14487,23 +14158,28 @@ retry@^0.10.0, retry@~0.10.1: resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" integrity sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ== +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + 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== -rfc6902-ordered@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/rfc6902-ordered/-/rfc6902-ordered-3.1.1.tgz#f7c08c0b88c0066fa7f643457fca4031eff2fff3" - integrity sha512-rGZPbM9R3opWp0n1kSTmRQd4QPmcl7EZFx2k6UdcJqomo29D1VhA2IOCUlU6oMgzg/NGL1WLXH5OZiI1lBcxRw== +rfc6902-ordered@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rfc6902-ordered/-/rfc6902-ordered-6.0.0.tgz#94c7a0e57542330f71b372872223ea9a5f0db4a3" + integrity sha512-tJXdpUdOMEAGq+Dpqr56aDcMvHJj56LXLSYWV//waI06ARUs6WqslOSLyv86M62R2Khu6IaCJ4Nu5QsSVe9l7g== dependencies: debug "^4.0.0" - rfc6902 "^3.0.1" + rfc6902 "^5.0.0" -rfc6902@^3.0.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/rfc6902/-/rfc6902-3.1.1.tgz#24fc3b2568496100ac507c2e27e61ec5a1c134dd" - integrity sha512-aHiEm2S4mQSyyIaK7NVotfmVkgOOn1K9iuuSCIKJ8eIAte/8o06Vp06Z2NcLrmMahDmA+2F6oHx33P4NOQ1JnQ== +rfc6902@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/rfc6902/-/rfc6902-5.0.1.tgz#e16f18dc322c755d6dd948423ddf52bb451eca3d" + integrity sha512-tYGfLpKIq9X7lrt4o3IkD9w9bpeAtsejfAqWNR98AoxfTsZqCepKa8eDlRiX8QMiCOD9vMx0/YbKLx0G1nPi5w== rfdc@^1.3.0: version "1.3.0" @@ -14531,14 +14207,6 @@ rimraf@~2.6.1, rimraf@~2.6.2: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - rollup-plugin-legacy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/rollup-plugin-legacy/-/rollup-plugin-legacy-1.0.0.tgz#d08bdfc4410bd13827f4278c51870d3d8dbd1ea3" @@ -14555,17 +14223,6 @@ rollup-plugin-node-resolve@^3.0.0: is-module "^1.0.0" resolve "^1.1.6" -rollup-plugin-node-resolve@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" - integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== - dependencies: - "@types/resolve" "0.0.8" - builtin-modules "^3.1.0" - is-module "^1.0.0" - resolve "^1.11.1" - rollup-pluginutils "^2.8.1" - rollup-pluginutils@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" @@ -14574,7 +14231,7 @@ rollup-pluginutils@^1.5.2: estree-walker "^0.2.1" minimatch "^3.0.2" -rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.8.1: +rollup-pluginutils@^2.8.1: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== @@ -14588,32 +14245,6 @@ rollup@^0.41.4: dependencies: source-map-support "^0.4.0" -rollup@^0.57.1: - version "0.57.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.57.1.tgz#0bb28be6151d253f67cf4a00fea48fb823c74027" - integrity sha512-I18GBqP0qJoJC1K1osYjreqA8VAKovxuI3I81RSk0Dmr4TgloI0tAULjZaox8OsJ+n7XRrhH6i0G2By/pj1LCA== - dependencies: - "@types/acorn" "^4.0.3" - acorn "^5.5.3" - acorn-dynamic-import "^3.0.0" - date-time "^2.1.0" - is-reference "^1.1.0" - locate-character "^2.0.5" - pretty-ms "^3.1.0" - require-relative "^0.8.7" - rollup-pluginutils "^2.0.1" - signal-exit "^3.0.2" - sourcemap-codec "^1.4.1" - -rollup@^1.12.0: - version "1.32.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4" - integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A== - dependencies: - "@types/estree" "*" - "@types/node" "*" - acorn "^7.1.0" - rollup@^2.50.0: version "2.79.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" @@ -14677,7 +14308,7 @@ rxjs@^6.4.0, rxjs@^6.6.0: dependencies: tslib "^1.9.0" -rxjs@^7.4.0: +rxjs@^7.4.0, rxjs@^7.5.5, rxjs@^7.8.1: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== @@ -14699,7 +14330,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -14725,6 +14356,11 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" +safe-stable-stringify@^2.4.2: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -14747,7 +14383,7 @@ sane@^3.0.0: optionalDependencies: fsevents "^1.2.3" -sane@^4.0.0, sane@^4.1.0: +sane@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== @@ -14762,6 +14398,21 @@ sane@^4.0.0, sane@^4.1.0: minimist "^1.1.1" walker "~1.0.5" +sane@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/sane/-/sane-5.0.1.tgz#ae94cb06acf5ad158242ff23f563d8cbe0ec1e4b" + integrity sha512-9/0CYoRz0MKKf04OMCO3Qk3RQl1PAwWAhPSQSym4ULiLpTZnrY1JoZU0IEikHu8kdk2HvKT/VwQMq/xFZ8kh1Q== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^3.1.1" + capture-exit "^2.0.0" + exec-sh "^0.3.4" + execa "^4.0.0" + fb-watchman "^2.0.1" + micromatch "^4.0.2" + minimist "^1.1.1" + walker "~1.0.5" + sass-embedded-darwin-arm64@1.66.1: version "1.66.1" resolved "https://registry.yarnpkg.com/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.66.1.tgz#7f7490965d3687795d30a91fe373e9840894eb10" @@ -14823,15 +14474,6 @@ sass-embedded@^1.63.6: sass-embedded-win32-ia32 "1.66.1" sass-embedded-win32-x64 "1.66.1" -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" @@ -14867,17 +14509,24 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + "semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.8: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -14908,13 +14557,6 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - serialize-javascript@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" @@ -14956,11 +14598,6 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -14971,14 +14608,6 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - sha@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae" @@ -14987,15 +14616,6 @@ sha@~2.0.1: graceful-fs "^4.1.2" readable-stream "^2.0.2" -sharkdown@^0.1.0, sharkdown@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/sharkdown/-/sharkdown-0.1.1.tgz#64484bd0f08f347f8319e9ff947a670f6b48b1b2" - integrity sha512-exwooSpmo5s45lrexgz6Q0rFQM574wYIX3iDZ7RLLqOb7IAoQZu9nxlZODU972g19sR69OIpKP2cpHTzU+PHIg== - dependencies: - cardinal "~0.4.2" - minimist "0.0.5" - split "~0.2.10" - shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -15020,7 +14640,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.6.1: +shell-quote@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== @@ -15044,6 +14664,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + silent-error@^1.0.0, silent-error@^1.0.1, silent-error@^1.1.0, silent-error@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.1.1.tgz#f72af5b0d73682a2ba1778b7e32cd8aa7c2d8662" @@ -15056,7 +14681,7 @@ simple-html-tokenizer@^0.3.0: resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.3.0.tgz#9b8b5559d80e331a544dd13dd59382e5d0d94411" integrity sha512-cuUWLyKJbCExtBmxJWhmIk/KIbMF1yOuNaansJiPEdxqitM7r7So3a1M4Sw2uqfNYWjBTiVVdJjb7vtYIaEjhw== -simple-html-tokenizer@^0.5.10, simple-html-tokenizer@^0.5.11: +simple-html-tokenizer@^0.5.11: version "0.5.11" resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.5.11.tgz#4c5186083c164ba22a7b477b7687ac056ad6b1d9" integrity sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og== @@ -15083,6 +14708,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -15110,7 +14740,12 @@ smart-buffer@^1.0.13: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" integrity sha512-1+8bxygjTsNfvQe0/0pNBesTOlSHtOeG6b6LYbvsZCCHDKYZ40zcQo6YTnZBWrBSLWOCbrHljLdEmGMYebu7aQ== -snake-case@^3.0.3: +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +snake-case@^3.0.3, snake-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== @@ -15191,6 +14826,15 @@ socks-proxy-agent@^3.0.1: agent-base "^4.1.0" socks "^1.1.10" +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + socks@^1.1.10: version "1.1.10" resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" @@ -15199,12 +14843,20 @@ socks@^1.1.10: ip "^1.1.4" smart-buffer "^1.0.13" +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + sort-object-keys@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== -sort-package-json@^1.49.0: +sort-package-json@^1.57.0: version "1.57.0" resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-1.57.0.tgz#e95fb44af8ede0bb6147e3f39258102d4bb23fc4" integrity sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q== @@ -15229,11 +14881,6 @@ sorted-union-stream@~2.1.3: from2 "^1.3.0" stream-iterate "^1.1.0" -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - source-map-js@^1.0.1, source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -15257,7 +14904,7 @@ source-map-support@^0.4.0, source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@~0.5.10, source-map-support@~0.5.12, source-map-support@~0.5.20: +source-map-support@~0.5.10, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -15304,7 +14951,7 @@ source-map@~0.1.x: dependencies: amdefine ">=0.0.4" -sourcemap-codec@^1.4.1, sourcemap-codec@^1.4.8: +sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== @@ -15324,6 +14971,11 @@ spawn-args@^0.2.0: resolved "https://registry.yarnpkg.com/spawn-args/-/spawn-args-0.2.0.tgz#fb7d0bd1d70fd4316bd9e3dec389e65f9d6361bb" integrity sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg== +spawn-command@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e" + integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ== + spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -15362,13 +15014,6 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split@~0.2.10: - version "0.2.10" - resolved "https://registry.yarnpkg.com/split/-/split-0.2.10.tgz#67097c601d697ce1368f418f06cd201cf0521a57" - integrity sha512-e0pKq+UUH2Xq/sXbYpZBZc3BawsfDZ7dgv+JtRTUPNcvF5CMR4Y9cvJqkMY0MoxWzTHvZuz1beg6pNEKlszPiQ== - dependencies: - through "2" - sprintf-js@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" @@ -15399,6 +15044,13 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +ssri@^10.0.0: + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + dependencies: + minipass "^7.0.3" + ssri@^4.1.2, ssri@^4.1.6, ssri@~4.1.6: version "4.1.6" resolved "https://registry.yarnpkg.com/ssri/-/ssri-4.1.6.tgz#0cb49b6ac84457e7bdd466cb730c3cb623e9a25b" @@ -15413,12 +15065,12 @@ ssri@^5.0.0, ssri@^5.2.4: dependencies: safe-buffer "^5.1.1" -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== +ssri@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== dependencies: - figgy-pudding "^3.5.1" + minipass "^3.1.1" stagehand@^1.0.0: version "1.0.1" @@ -15441,17 +15093,9 @@ statuses@2.0.1: integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== "statuses@>= 1.4.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== stream-each@^1.1.0: version "1.2.3" @@ -15461,17 +15105,6 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-iterate@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" @@ -15495,16 +15128,7 @@ string-template@~0.2.1: resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== -string-width@^1.0.0, string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -15513,6 +15137,15 @@ string-width@^1.0.0, string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -15521,7 +15154,7 @@ string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^5.0.0, string-width@^5.0.1: +string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== @@ -15545,14 +15178,19 @@ string.prototype.matchall@^4.0.5: set-function-name "^2.0.0" side-channel "^1.0.4" -string.prototype.padend@^3.0.0: - version "3.1.5" - resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz#311ef3a4e3c557dd999cdf88fbdde223f2ac0f95" - integrity sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA== +string.prototype.matchall@^4.0.6: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== dependencies: call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" string.prototype.trim@^1.2.7: version "1.2.8" @@ -15586,7 +15224,7 @@ string_decoder@0.10, string_decoder@~0.10.x: resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== -string_decoder@^1.0.0, string_decoder@^1.1.1: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -15605,6 +15243,13 @@ stringstream@~0.0.4: resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" integrity sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA== +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -15626,13 +15271,6 @@ strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -15640,11 +15278,6 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -strip-ansi@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" - integrity sha512-behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg== - strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -15670,7 +15303,14 @@ strip-final-newline@^3.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" + integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== + dependencies: + min-indent "^1.0.1" + +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -15688,11 +15328,81 @@ style-loader@^2.0.0: loader-utils "^2.0.0" schema-utils "^3.0.0" +style-search@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" + integrity sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg== + styled_string@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/styled_string/-/styled_string-0.0.1.tgz#d22782bd81295459bc4f1df18c4bad8e94dd124a" integrity sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA== +stylelint-config-recommended@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-11.0.0.tgz#b1cb7d71bd92f9b8593f93c2ca6df16ed7d61522" + integrity sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA== + +stylelint-config-standard@^32.0.0: + version "32.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-32.0.0.tgz#97179035e967f22a7b7e27f14a74f5d5fc0f0bd6" + integrity sha512-UnGJxYDyYFrIE9CjDMZRkrNh2o4lOtO+MVZ9qG5b8yARfsWho0GMx4YvhHfsv8zKKgHeWX2wfeyxmuoqcaYZ4w== + dependencies: + stylelint-config-recommended "^11.0.0" + +stylelint-prettier@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stylelint-prettier/-/stylelint-prettier-3.0.0.tgz#57028b99866ed4c3ae045ddd891bf9a77d274726" + integrity sha512-kIks1xw6np0zElokMT2kP6ar3S4MBoj6vUtPJuND1pFELMpZxVS/0uHPR4HDAVn0WAD3I5oF0IA3qBFxBpMkLg== + dependencies: + prettier-linter-helpers "^1.0.0" + +stylelint@^15.4.0: + version "15.10.2" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.2.tgz#0ee5a8371d3a2e1ff27fefd48309d3ddef7c3405" + integrity sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg== + dependencies: + "@csstools/css-parser-algorithms" "^2.3.0" + "@csstools/css-tokenizer" "^2.1.1" + "@csstools/media-query-list-parser" "^2.1.2" + "@csstools/selector-specificity" "^3.0.0" + balanced-match "^2.0.0" + colord "^2.9.3" + cosmiconfig "^8.2.0" + css-functions-list "^3.2.0" + css-tree "^2.3.1" + debug "^4.3.4" + fast-glob "^3.3.0" + fastest-levenshtein "^1.0.16" + file-entry-cache "^6.0.1" + global-modules "^2.0.0" + globby "^11.1.0" + globjoin "^0.1.4" + html-tags "^3.3.1" + ignore "^5.2.4" + import-lazy "^4.0.0" + imurmurhash "^0.1.4" + is-plain-object "^5.0.0" + known-css-properties "^0.27.0" + mathml-tag-names "^2.1.3" + meow "^10.1.5" + micromatch "^4.0.5" + normalize-path "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.25" + postcss-resolve-nested-selector "^0.1.1" + postcss-safe-parser "^6.0.0" + postcss-selector-parser "^6.0.13" + postcss-value-parser "^4.2.0" + resolve-from "^5.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + style-search "^0.1.0" + supports-hyperlinks "^3.0.0" + svg-tags "^1.0.0" + table "^6.8.1" + write-file-atomic "^5.0.1" + sum-up@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" @@ -15700,20 +15410,13 @@ sum-up@^1.0.1: dependencies: chalk "^1.0.0" -supercluster@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/supercluster/-/supercluster-6.0.2.tgz#aa2eaae185ef97872f388c683ec29f6991721ee3" - integrity sha512-aa0v2HURjBTOpbcknilcfxGDuArM8khklKSmZ/T8ZXL0BuRwb5aRw95lz+2bmWpFvCXDX/+FzqHxmg0TIaJErw== +supercluster@^7.1.0: + version "7.1.5" + resolved "https://registry.yarnpkg.com/supercluster/-/supercluster-7.1.5.tgz#65a6ce4a037a972767740614c19051b64b8be5a3" + integrity sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg== dependencies: kdbush "^3.0.0" -supercluster@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/supercluster/-/supercluster-8.0.1.tgz#9946ba123538e9e9ab15de472531f604e7372df5" - integrity sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ== - dependencies: - kdbush "^4.0.2" - supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -15733,7 +15436,7 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0, supports-color@^7.2.0: +supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -15747,11 +15450,24 @@ supports-color@^8.0.0, supports-color@^8.1.1: dependencies: has-flag "^4.0.0" +supports-hyperlinks@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz#c711352a5c89070779b4dad54c05a2f14b15c94b" + integrity sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== + symlink-or-copy@^1.0.0, symlink-or-copy@^1.0.1, symlink-or-copy@^1.1.8, symlink-or-copy@^1.2.0, symlink-or-copy@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/symlink-or-copy/-/symlink-or-copy-1.3.1.tgz#9506dd64d8e98fa21dcbf4018d1eab23e77f71fe" @@ -15779,7 +15495,7 @@ sync-disk-cache@^2.0.0: rimraf "^3.0.0" username-sync "^1.0.2" -table@^6.0.9: +table@^6.8.1: version "6.8.1" resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== @@ -15799,11 +15515,6 @@ tap-parser@^7.0.0: js-yaml "^3.2.7" minipass "^2.2.0" -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" @@ -15841,6 +15552,18 @@ tar@^2.0.0, tar@~2.2.1: fstream "^1.0.12" inherits "2" +tar@^6.1.11, tar@^6.1.2: + version "6.1.15" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" + integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + temp@0.9.4: version "0.9.4" resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620" @@ -15856,21 +15579,6 @@ term-size@^1.2.0: dependencies: execa "^0.7.0" -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - terser-webpack-plugin@^5.3.7: version "5.3.9" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" @@ -15891,15 +15599,6 @@ terser@^3.10.11: source-map "~0.6.1" source-map-support "~0.5.10" -terser@^4.1.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" - integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - terser@^5.16.8, terser@^5.3.0: version "5.19.4" resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.4.tgz#941426fa482bf9b40a0308ab2b3cd0cf7c775ebd" @@ -15920,7 +15619,7 @@ test-exclude@^5.2.3: read-pkg-up "^4.0.0" require-main-filename "^2.0.0" -testem@^3.2.0: +testem@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/testem/-/testem-3.10.1.tgz#bab8a83bec11e975f7d1e47e924eed6135957e5b" integrity sha512-42c4e7qlAelwMd8O3ogtVGRbgbr6fJnX6H51ACOIG1V1IjsKPlcQtxPyOwaL4iikH22Dfh+EyIuJnMG4yxieBQ== @@ -15965,10 +15664,10 @@ text-table@^0.2.0, text-table@~0.2.0: resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4" integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ== -three-way-merger@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/three-way-merger/-/three-way-merger-0.5.7.tgz#00d8ee4a74076fad391479838e4c9e3340487e5d" - integrity sha512-aD2nvGowCgJxoH49Izou5uR4PLCuH2yiw6+BJPg0H7RCLzpLy/4J9onM9sPXetmsq/AVfZ8fEyf8lbGKxKPrcA== +three-way-merger@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/three-way-merger/-/three-way-merger-0.6.3.tgz#ad4d9cd889f0c81ab2e820301a4663ee5def0334" + integrity sha512-sjXsAqIiluhRBvbXfri1dBI5NSqfl/fe8R3QypAR15qeMRrsBodrGeROBtve2BQnxB9Ub6Fs0e/H1OZdaELD7A== dependencies: semver "^6.0.0" @@ -15988,28 +15687,16 @@ through2@^3.0.1: inherits "^2.0.4" readable-stream "2 || 3" -through@2, "through@>=2.2.7 <3", through@^2.3.6: +"through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -time-zone@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" - integrity sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA== - timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - tiny-glob@0.2.9: version "0.2.9" resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2" @@ -16030,7 +15717,7 @@ tiny-lr@^2.0.0: object-assign "^4.1.0" qs "^6.4.0" -tinyqueue@^2.0.0, tinyqueue@^2.0.3: +tinyqueue@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-2.0.3.tgz#64d8492ebf39e7801d7bd34062e29b45b2035f08" integrity sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA== @@ -16049,6 +15736,13 @@ tmp@0.0.33, tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmp@0.2.1, 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" + tmp@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" @@ -16056,23 +15750,11 @@ tmp@^0.1.0: dependencies: rimraf "^2.6.3" -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" - tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== - to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" @@ -16095,6 +15777,11 @@ to-object-path@^0.3.0: dependencies: kind-of "^3.0.2" +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -16120,11 +15807,6 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -to-utf8@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/to-utf8/-/to-utf8-0.0.1.tgz#d17aea72ff2fba39b9e43601be7b3ff72e089852" - integrity sha512-zks18/TWT1iHO3v0vFp5qLKOG27m67ycq/Y7a7cTiRuUNlc4gf3HGnkRgMv0NyhnfTamtkYBJl+YeD1/j07gBQ== - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" @@ -16159,16 +15841,25 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +tracked-built-ins@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/tracked-built-ins/-/tracked-built-ins-3.1.1.tgz#c16a1418d9c3b216527b1b40a2a80e293229359f" + integrity sha512-W8qLBxZzeC2zhEDdbPKi2GTffsiFn8PRbgal/2Fl6E/84CMvnpS6cPMmkvUmSLgKbqcAxl/RhyjWnhIZ9iPQjQ== + dependencies: + ember-cli-babel "^7.26.10" + ember-cli-typescript "^5.1.0" + ember-tracked-storage-polyfill "^1.0.0" traverse@~0.6.6: version "0.6.7" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + tree-sync@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/tree-sync/-/tree-sync-1.4.0.tgz#314598d13abaf752547d9335b8f95d9a137100d6" @@ -16191,16 +15882,16 @@ tree-sync@^2.0.0, tree-sync@^2.1.0: quick-temp "^0.1.5" walk-sync "^0.3.3" +trim-newlines@^4.0.2: + version "4.1.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" + integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== - tsconfig-paths@^3.14.2: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" @@ -16216,15 +15907,15 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0: +tslib@^2.0.3, tslib@^2.1.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== +tslib@^2.4.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" + integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== tunnel-agent@^0.6.0: version "0.6.0" @@ -16265,7 +15956,7 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^1.0.2: +type-fest@^1.0.1, type-fest@^1.0.2, type-fest@^1.2.1, type-fest@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== @@ -16339,11 +16030,6 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typedarray@~0.0.5: - version "0.0.7" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.7.tgz#799207136a37f3b3efb8c66c40010d032714dc73" - integrity sha512-ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ== - typescript-memoize@^1.0.0-alpha.3, typescript-memoize@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/typescript-memoize/-/typescript-memoize-1.1.1.tgz#02737495d5df6ebf72c07ba0d002e8f4cf5ccfa0" @@ -16392,11 +16078,6 @@ underscore@1.x.x, underscore@>=1.8.3, underscore@^1.8.3: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== -underscore@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - integrity sha512-z4o1fvKUojIWh9XuaVLUDdf86RQiq13AC1dmHbTpoyuu+bquHms76v16CjycCbec87J7z0k//SiQVk0sMdFmpQ== - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -16430,13 +16111,27 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -unique-filename@^1.1.0, unique-filename@^1.1.1, unique-filename@~1.1.0: +unique-filename@^1.1.0, unique-filename@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== + dependencies: + unique-slug "^4.0.0" + unique-slug@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" @@ -16444,6 +16139,20 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== + dependencies: + imurmurhash "^0.1.4" + unique-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" @@ -16458,11 +16167,6 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" -unist-util-stringify-position@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" - integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -16498,10 +16202,10 @@ unzip-response@^2.0.1: resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" integrity sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw== -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +upath@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" + integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== update-browserslist-db@^1.0.11: version "1.0.11" @@ -16511,7 +16215,7 @@ update-browserslist-db@^1.0.11: escalade "^3.1.1" picocolors "^1.0.0" -update-notifier@^2.3.0, update-notifier@^2.5.0: +update-notifier@^2.3.0: version "2.5.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== @@ -16527,6 +16231,26 @@ update-notifier@^2.3.0, update-notifier@^2.5.0: semver-diff "^2.0.0" xdg-basedir "^3.0.0" +update-notifier@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + update-notifier@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f" @@ -16560,13 +16284,12 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" -url@^0.11.0: - version "0.11.2" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.2.tgz#02f250a6e0d992b781828cd456d44f49bf2e19dd" - integrity sha512-7yIgNnrST44S7PJ5+jXbdIupfU1nWUdQJBFBeJRclPXiWgCvrSq5Frw8lr/i//n5sqDfzoKmBymMS81l4U/7cg== +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== dependencies: - punycode "^1.4.1" - qs "^6.11.2" + prepend-http "^2.0.0" use@^3.1.0: version "3.1.1" @@ -16588,46 +16311,37 @@ util-extend@^1.0.1: resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" integrity sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA== -util@^0.10.4: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@^3.0.0, uuid@^3.1.0, uuid@^3.3.2: +uuid@^3.0.0, uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.2: +uuid@^8.0.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + uuid@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" integrity sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g== -v8-compile-cache@^2.0.3, v8-compile-cache@^2.3.0: +v8-compile-cache@^2.3.0: version "2.4.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== -validate-npm-package-license@^3.0.1: +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== @@ -16642,7 +16356,21 @@ validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: dependencies: builtins "^1.0.3" -validate-peer-dependencies@^1.2.0: +validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== + dependencies: + builtins "^5.0.0" + +validate-npm-package-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" + integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== + dependencies: + builtins "^5.0.0" + +validate-peer-dependencies@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/validate-peer-dependencies/-/validate-peer-dependencies-1.2.0.tgz#22aab93c514f4fda457d36c80685e8b1160d2036" integrity sha512-nd2HUpKc6RWblPZQ2GDuI65sxJ2n/UqZwSBVtj64xlWjMx0m7ZB2m9b2JS3v1f+n9VWH/dd1CMhkHfP6pIdckA== @@ -16650,6 +16378,14 @@ validate-peer-dependencies@^1.2.0: resolve-package-path "^3.1.0" semver "^7.3.2" +validate-peer-dependencies@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/validate-peer-dependencies/-/validate-peer-dependencies-2.2.0.tgz#47b8ff008f66a66fc5d8699123844522c1d874f4" + integrity sha512-8X1OWlERjiUY6P6tdeU9E0EwO8RA3bahoOVG7ulOZT5MqgNDUO/BQoVjYiHPcNe+v8glsboZRIw9iToMAA2zAA== + dependencies: + resolve-package-path "^4.0.3" + semver "^7.3.8" + validator@^10.0.0: version "10.11.0" resolved "https://registry.yarnpkg.com/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228" @@ -16674,37 +16410,7 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vfile-reporter@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-3.0.0.tgz#fe50714e373e0d2940510038a99bd609bdc8209f" - integrity sha512-F373Ojbn6gE1JsEOdZ+cGv/mkh93iGlfr0NeO+UUX/yL9nb5efzZFIQbaGJedjmIcBKGgKV8IboaAAMpoVAw9Q== - dependencies: - chalk "^1.1.0" - log-symbols "^1.0.2" - plur "^2.0.0" - repeat-string "^1.5.0" - string-width "^1.0.0" - strip-ansi "^3.0.1" - trim "0.0.1" - unist-util-stringify-position "^1.0.0" - -vfile@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.0.0.tgz#88620500e36bad025a0b01cc25106dbcb3090548" - integrity sha512-SSMehBgGWpGCTYiXdBHJkV9lqjb1EAbfWvbDdUx7s2PUBVppRpQ4duLtU1KUVi8nEmWzxfU8LCgwZNLe1tIttQ== - dependencies: - has "^1.0.1" - is-buffer "^1.1.4" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - x-is-string "^0.1.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -vt-pbf@^3.1.1, vt-pbf@^3.1.3: +vt-pbf@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/vt-pbf/-/vt-pbf-3.1.3.tgz#68fd150756465e2edae1cc5c048e063916dcfaac" integrity sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA== @@ -16738,7 +16444,7 @@ walk-sync@^1.0.0, walk-sync@^1.1.3: ensure-posix-path "^1.1.0" matcher-collection "^1.1.1" -walk-sync@^2.0.0, walk-sync@^2.0.2, walk-sync@^2.2.0: +walk-sync@^2.0.2, walk-sync@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-2.2.0.tgz#80786b0657fcc8c0e1c0b1a042a09eae2966387a" integrity sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg== @@ -16765,7 +16471,7 @@ walker@~1.0.5: dependencies: makeerror "1.0.12" -watch-detector@^1.0.0: +watch-detector@^1.0.0, watch-detector@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/watch-detector/-/watch-detector-1.0.2.tgz#95deb9189f8c89c0a9f211739cef6d01cffcf452" integrity sha512-MrJK9z7kD5Gl3jHBnnBVHvr1saVGAfmkyyrvuNzV/oe0Gr1nwZTy5VSA0Gw2j2Or0Mu8HcjUa44qlBvC2Ofnpg== @@ -16782,24 +16488,6 @@ watch@~0.18.0: exec-sh "^0.2.0" minimist "^1.2.0" -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" @@ -16815,54 +16503,12 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - webpack-sources@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^4.43.0: - version "4.47.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.47.0.tgz#8b8a02152d7076aeb03b61b47dad2eeed9810ebc" - integrity sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -webpack@^5.75.0: +webpack@^5.78.0: version "5.88.2" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== @@ -16911,24 +16557,11 @@ wgs84@0.0.0: resolved "https://registry.yarnpkg.com/wgs84/-/wgs84-0.0.0.tgz#34fdc555917b6e57cf2a282ed043710c049cdc76" integrity sha512-ANHlY4Rb5kHw40D0NJ6moaVfOCMrp9Gpd1R/AIQYg2ko4/jzcJ+TVXYYF6kXJqQwITvEZP4yEthjM7U6rYlljQ== -what-input@^5.2.3: +what-input@^5.2.10: version "5.2.12" resolved "https://registry.yarnpkg.com/what-input/-/what-input-5.2.12.tgz#6eb5b5d39ebff4e2273df8bf69d8d2fc9a6e060a" integrity sha512-3yrSa7nGSXGJS6wZeSkO6VNm95pB1mZ9i3wFzC1hhY7mn4/afue/MvXz04OXNdBC8bfo4AB4RRd3Dem9jXM58Q== -whatwg-fetch@^3.6.2: - version "3.6.19" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz#caefd92ae630b91c07345537e67f8354db470973" - integrity sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -16956,7 +16589,7 @@ which-typed-array@^1.1.10, which-typed-array@^1.1.11: gopd "^1.0.1" has-tostringtag "^1.0.0" -which@1, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: +which@1, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -16991,6 +16624,13 @@ widest-line@^2.0.0: dependencies: string-width "^2.1.1" +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + wordwrap@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" @@ -17001,13 +16641,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - worker-farm@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.3.1.tgz#4333112bb49b17aa050b87895ca6b2cacf40e5ff" @@ -17032,11 +16665,25 @@ workerpool@^3.1.1: object-assign "4.1.1" rsvp "^4.8.4" -workerpool@^6.0.0, workerpool@^6.1.4: +workerpool@^6.0.0: version "6.5.0" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.0.tgz#f8474762c5e2f81646994aa113685f6c424a2416" integrity sha512-r64Ea3glXY2RVzMeNxB+4J+0YHAVzUdV4cM5nHi4BBC2LvnO1pWFAIYKYuGcPElbg1/7eEiaPtZ/jzCjIUuGBg== +workerpool@^6.4.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.4.1.tgz#1398eb5f8f44fb2d21ed9225cf34bb0131504c1d" + integrity sha512-zIK7qRgM1Mk+ySxOJl7ZpjX6SlKt5gugxzl8eXHPdbpXX8iDAaVIxYJz4Apn6JdDxP2buY/Ekqg0bOLNSf0u0g== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -17045,7 +16692,7 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" -wrap-ansi@^6.2.0: +wrap-ansi@^6.0.1, 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== @@ -17054,15 +16701,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -17096,6 +16734,14 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + write-file-atomic@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.1.0.tgz#1769f4b551eedce419f0505deae2e26763542d37" @@ -17110,11 +16756,6 @@ ws@~8.11.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== -x-is-string@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" - integrity sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w== - xdg-basedir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" @@ -17125,7 +16766,7 @@ xdg-basedir@^4.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -17135,7 +16776,7 @@ y18n@^3.2.1: resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: +y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== @@ -17173,14 +16814,6 @@ yaml@2.3.1: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -17189,11 +16822,16 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -17219,24 +16857,6 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^12.0.0: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - yargs@^15.3.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -17254,7 +16874,7 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.2.0: +yargs@^16.0.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== @@ -17267,11 +16887,29 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^17.0.0, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== + z-schema-errors@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/z-schema-errors/-/z-schema-errors-0.0.1.tgz#e06270a4ca43925729f25764789ca9f46bff0f7d"