diff --git a/addons/core/.editorconfig b/addons/core/.editorconfig new file mode 100644 index 000000000..c35a00240 --- /dev/null +++ b/addons/core/.editorconfig @@ -0,0 +1,19 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +[*.hbs] +insert_final_newline = false + +[*.{diff,md}] +trim_trailing_whitespace = false diff --git a/addons/core/.ember-cli b/addons/core/.ember-cli new file mode 100644 index 000000000..ee64cfed2 --- /dev/null +++ b/addons/core/.ember-cli @@ -0,0 +1,9 @@ +{ + /** + Ember CLI sends analytics information by default. The data is completely + anonymous, but there are times when you might want to disable this behavior. + + Setting `disableAnalytics` to true will prevent any data from being sent. + */ + "disableAnalytics": false +} diff --git a/addons/core/.eslintignore b/addons/core/.eslintignore new file mode 100644 index 000000000..72df37307 --- /dev/null +++ b/addons/core/.eslintignore @@ -0,0 +1,20 @@ +# unconventional js +/blueprints/*/files/ +/vendor/ + +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ +/node_modules/ + +# misc +/coverage/ +!.* + +# ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/addons/core/.eslintrc.js b/addons/core/.eslintrc.js new file mode 100644 index 000000000..928585995 --- /dev/null +++ b/addons/core/.eslintrc.js @@ -0,0 +1,54 @@ +'use strict'; + +module.exports = { + root: true, + parser: 'babel-eslint', + parserOptions: { + ecmaVersion: 2018, + sourceType: 'module', + ecmaFeatures: { + legacyDecorators: true + } + }, + plugins: [ + 'ember' + ], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended' + ], + env: { + browser: true + }, + rules: {}, + overrides: [ + // node files + { + files: [ + '.eslintrc.js', + '.template-lintrc.js', + 'ember-cli-build.js', + 'index.js', + 'testem.js', + 'blueprints/*/index.js', + 'config/**/*.js', + 'tests/dummy/config/**/*.js' + ], + excludedFiles: [ + 'addon/**', + 'addon-test-support/**', + 'app/**', + 'tests/dummy/app/**' + ], + parserOptions: { + sourceType: 'script' + }, + env: { + browser: false, + node: true + }, + plugins: ['node'], + extends: ['plugin:node/recommended'] + } + ] +}; diff --git a/addons/core/.gitignore b/addons/core/.gitignore new file mode 100644 index 000000000..c40a1b2ab --- /dev/null +++ b/addons/core/.gitignore @@ -0,0 +1,25 @@ +# See https://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ +/node_modules/ + +# misc +/.env* +/.pnp* +/.sass-cache +/connect.lock +/coverage/ +/libpeerconnection.log +/npm-debug.log* +/testem.log +/yarn-error.log + +# ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/addons/core/.npmignore b/addons/core/.npmignore new file mode 100644 index 000000000..bd09adff9 --- /dev/null +++ b/addons/core/.npmignore @@ -0,0 +1,32 @@ +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ + +# misc +/.bowerrc +/.editorconfig +/.ember-cli +/.env* +/.eslintignore +/.eslintrc.js +/.git/ +/.gitignore +/.template-lintrc.js +/.travis.yml +/.watchmanconfig +/bower.json +/config/ember-try.js +/CONTRIBUTING.md +/ember-cli-build.js +/testem.js +/tests/ +/yarn.lock +.gitkeep + +# ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/addons/core/.template-lintrc.js b/addons/core/.template-lintrc.js new file mode 100644 index 000000000..f38737001 --- /dev/null +++ b/addons/core/.template-lintrc.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + extends: 'octane' +}; diff --git a/addons/core/.travis.yml b/addons/core/.travis.yml new file mode 100644 index 000000000..1211e146c --- /dev/null +++ b/addons/core/.travis.yml @@ -0,0 +1,66 @@ +--- +language: node_js +node_js: + # we recommend testing addons with the same minimum supported node version as Ember CLI + # so that your addon works for all apps + - "10" + +dist: xenial + +addons: + chrome: stable + +cache: + yarn: true + +env: + global: + # See https://git.io/vdao3 for details. + - JOBS=1 + +branches: + only: + - master + # npm version tags + - /^v\d+\.\d+\.\d+/ + +jobs: + fast_finish: true + allow_failures: + - env: EMBER_TRY_SCENARIO=ember-canary + + include: + # runs linting and tests with current locked deps + - stage: "Tests" + name: "Tests" + script: + - yarn lint + - yarn test:ember + + - stage: "Additional Tests" + name: "Floating Dependencies" + install: + - yarn install --no-lockfile --non-interactive + script: + - yarn test:ember + + # we recommend new addons test the current and previous LTS + # as well as latest stable release (bonus points to beta/canary) + - env: EMBER_TRY_SCENARIO=ember-lts-3.12 + - env: EMBER_TRY_SCENARIO=ember-lts-3.16 + - env: EMBER_TRY_SCENARIO=ember-lts-3.20 + - env: EMBER_TRY_SCENARIO=ember-release + - env: EMBER_TRY_SCENARIO=ember-beta + - env: EMBER_TRY_SCENARIO=ember-canary + - env: EMBER_TRY_SCENARIO=ember-default-with-jquery + - env: EMBER_TRY_SCENARIO=ember-classic + +before_install: + - curl -o- -L https://yarnpkg.com/install.sh | bash + - export PATH=$HOME/.yarn/bin:$PATH + +install: + - yarn install --non-interactive + +script: + - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO diff --git a/addons/core/.watchmanconfig b/addons/core/.watchmanconfig new file mode 100644 index 000000000..e7834e3e4 --- /dev/null +++ b/addons/core/.watchmanconfig @@ -0,0 +1,3 @@ +{ + "ignore_dirs": ["tmp", "dist"] +} diff --git a/addons/core/CONTRIBUTING.md b/addons/core/CONTRIBUTING.md new file mode 100644 index 000000000..7491f6c86 --- /dev/null +++ b/addons/core/CONTRIBUTING.md @@ -0,0 +1,26 @@ +# How To Contribute + +## Installation + +* `git clone ` +* `cd core` +* `yarn install` + +## Linting + +* `yarn lint:hbs` +* `yarn lint:js` +* `yarn lint:js --fix` + +## Running tests + +* `ember test` – Runs the test suite on the current Ember version +* `ember test --server` – Runs the test suite in "watch mode" +* `ember try:each` – Runs the test suite against multiple Ember versions + +## Running the dummy application + +* `ember serve` +* Visit the dummy application at [http://localhost:4200](http://localhost:4200). + +For more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/). diff --git a/addons/core/LICENSE.md b/addons/core/LICENSE.md new file mode 100644 index 000000000..7b6573f5e --- /dev/null +++ b/addons/core/LICENSE.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright (c) 2020 + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/addons/core/README.md b/addons/core/README.md new file mode 100644 index 000000000..170ae6b67 --- /dev/null +++ b/addons/core/README.md @@ -0,0 +1,89 @@ +# Core Features Addon for Boundary + +This addon contains core features used by Boundary UIs, such as i18n and +helpers. + + + + + +- [Add core to an App](#add-core-to-an-app) +- [Installation](#installation) +- [Yarn Commands](#yarn-commands) +- [Linting](#linting) +- [Formatting](#formatting) +- [Running tests](#running-tests) +- [Running the dummy application](#running-the-dummy-application) +- [Contributing](#contributing) + - [Building ToC](#building-toc) + + + +## Add core to an App + +Add this addon to an Ember application's `devDependencies` as: +`"core": "*"`, for applications included in this monorepo. + +## Installation + +See monorepo README for installation instructions. + +To use internationalization features, install `ember-intl` into your project: +`ember install ember-intl`. + +## Usage within a project + +To access translations within a template, see `ember-intl` docs. + +## Yarn Commands + +List of available project commands. `yarn run ` + +| Command | Description | +| ------- | ----------- | +| build:development | Builds the dummy app in development mode. | +| build | Builds the dummy app for production. | +| lint | Runs all lint commands. | +| lint:js | Lints `js` files. | +| format | Runs all auto-formatters. | +| format:js | Auto-formats `js` files using Prettier. | +| start | Runs the dummy app local server. | +| test | Runs all tests. | +| test:all | Runs tests across multiple Ember versions with ember-try. | +| doc:toc | Automatically generates a table of contents for this README file. | + +Additional commands in the monorepo package may affect this projects. + +## Linting + +* `yarn lint:hbs` +* `yarn lint:js` +* `yarn lint:js --fix` + +## Formatting + +Before submitting your work, be sure to run auto-formatters +(see commands above). This helps to ensure consistency among authors. + +* `yarn format` + +## Running tests + +* `yarn test` – Runs the test suite on the current Ember version +* `yarn test --server` – Runs the test suite in "watch mode" +* `yarn test:all` – Runs the test suite against multiple Ember versions + +## Running the dummy application + +* `yarn start` +* Visit the dummy application at [http://localhost:4200](http://localhost:4200). + +## Contributing + +See monorepo README for more contribution instructions. + +### Building ToC + +To autogenerate a ToC (table of contents) for this README, +run `yarn doc:toc`. Please update the ToC whenever editing the structure +of README. diff --git a/ui/admin/app/helpers/format-date-iso-human.js b/addons/core/addon/helpers/format-date-iso-human.js similarity index 63% rename from ui/admin/app/helpers/format-date-iso-human.js rename to addons/core/addon/helpers/format-date-iso-human.js index 00248aa5d..a0b9e5038 100644 --- a/ui/admin/app/helpers/format-date-iso-human.js +++ b/addons/core/addon/helpers/format-date-iso-human.js @@ -1,5 +1,9 @@ import { helper } from '@ember/component/helper'; +/** + * Takes a `Date` instance and returns a string formatted in human-friendly + * ISO-ish, e.g. "2020-01-01 00:00:00". + */ export default helper(function formatDateIsoHuman(params /*, hash*/) { return params[0] .toISOString() diff --git a/ui/admin/app/helpers/format-date-iso.js b/addons/core/addon/helpers/format-date-iso.js similarity index 58% rename from ui/admin/app/helpers/format-date-iso.js rename to addons/core/addon/helpers/format-date-iso.js index e65442549..a3e9cf61a 100644 --- a/ui/admin/app/helpers/format-date-iso.js +++ b/addons/core/addon/helpers/format-date-iso.js @@ -1,5 +1,9 @@ import { helper } from '@ember/component/helper'; +/** + * Takes a `Date` instance and returns a string formatted in ISO, + * e.g. "2020-01-01T00:00:00.999Z". + */ export default helper(function formatDateIso(params /*, hash*/) { return params[0].toISOString(); }); diff --git a/addons/core/app/.gitkeep b/addons/core/app/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/app/helpers/format-date-iso-human.js b/addons/core/app/helpers/format-date-iso-human.js new file mode 100644 index 000000000..b4586dc3d --- /dev/null +++ b/addons/core/app/helpers/format-date-iso-human.js @@ -0,0 +1 @@ +export { default, formatDateIsoHuman } from 'core/helpers/format-date-iso-human'; diff --git a/addons/core/app/helpers/format-date-iso.js b/addons/core/app/helpers/format-date-iso.js new file mode 100644 index 000000000..f82d799e1 --- /dev/null +++ b/addons/core/app/helpers/format-date-iso.js @@ -0,0 +1 @@ +export { default, formatDateIso } from 'core/helpers/format-date-iso'; diff --git a/addons/core/config/ember-try.js b/addons/core/config/ember-try.js new file mode 100644 index 000000000..bbdb66252 --- /dev/null +++ b/addons/core/config/ember-try.js @@ -0,0 +1,87 @@ +"use strict"; + +const getChannelURL = require("ember-source-channel-url"); + +module.exports = async function () { + return { + useYarn: true, + scenarios: [ + { + name: "ember-lts-3.12", + npm: { + devDependencies: { + "ember-source": "~3.12.0", + }, + }, + }, + { + name: "ember-lts-3.16", + npm: { + devDependencies: { + "ember-source": "~3.16.0", + }, + }, + }, + { + name: "ember-lts-3.20", + npm: { + devDependencies: { + "ember-source": "~3.20.5", + }, + }, + }, + { + name: "ember-release", + npm: { + devDependencies: { + "ember-source": await getChannelURL("release"), + }, + }, + }, + { + name: "ember-beta", + npm: { + devDependencies: { + "ember-source": await getChannelURL("beta"), + }, + }, + }, + { + name: "ember-canary", + npm: { + devDependencies: { + "ember-source": await getChannelURL("canary"), + }, + }, + }, + { + name: "ember-default-with-jquery", + env: { + EMBER_OPTIONAL_FEATURES: JSON.stringify({ + "jquery-integration": true, + }), + }, + npm: { + devDependencies: { + "@ember/jquery": "^1.1.0", + }, + }, + }, + { + name: "ember-classic", + env: { + EMBER_OPTIONAL_FEATURES: JSON.stringify({ + "application-template-wrapper": true, + "default-async-observers": false, + "template-only-glimmer-components": false, + }), + }, + npm: { + ember: { + edition: "classic", + }, + }, + }, + ], + }; +}; diff --git a/addons/core/config/environment.js b/addons/core/config/environment.js new file mode 100644 index 000000000..b7238585e --- /dev/null +++ b/addons/core/config/environment.js @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = function (/* environment, appConfig */) { + return {}; +}; diff --git a/addons/core/ember-cli-build.js b/addons/core/ember-cli-build.js new file mode 100644 index 000000000..b6a8f26a0 --- /dev/null +++ b/addons/core/ember-cli-build.js @@ -0,0 +1,18 @@ +"use strict"; + +const EmberAddon = require("ember-cli/lib/broccoli/ember-addon"); + +module.exports = function (defaults) { + let app = new EmberAddon(defaults, { + // Add options here + }); + + /* + This build file specifies the options for the dummy test app of this + addon, located in `/tests/dummy` + This build file does *not* influence how the addon or the app using it + behave. You most likely want to be modifying `./index.js` or app's build file + */ + + return app.toTree(); +}; diff --git a/addons/core/index.js b/addons/core/index.js new file mode 100644 index 000000000..245249bda --- /dev/null +++ b/addons/core/index.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = { + name: require("./package").name, +}; diff --git a/addons/core/package.json b/addons/core/package.json new file mode 100644 index 000000000..16239b965 --- /dev/null +++ b/addons/core/package.json @@ -0,0 +1,72 @@ +{ + "name": "core", + "version": "0.0.0", + "description": "The default blueprint for ember-cli addons.", + "keywords": [ + "ember-addon" + ], + "repository": "", + "license": "MIT", + "author": "", + "directories": { + "doc": "doc", + "test": "tests" + }, + "scripts": { + "build:development": "ember build", + "build": "ember build --environment=production", + "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", + "lint:js": "eslint .", + "format": "npm run format:js", + "format:js": "prettier --write '{addon,app,config,stories,tests}/**/*.js' *.js", + "start": "ember serve", + "test": "ember test", + "test:ember-compatibility": "ember try:each", + "doc:toc": "doctoc README.md" + }, + "dependencies": { + "ember-cli-babel": "^7.21.0", + "ember-cli-htmlbars": "^5.2.0" + }, + "devDependencies": { + "@ember/optional-features": "^1.3.0", + "@glimmer/component": "^1.0.1", + "@glimmer/tracking": "^1.0.0", + "babel-eslint": "^10.1.0", + "broccoli-asset-rev": "^3.0.0", + "doctoc": "^1.4.0", + "ember-auto-import": "^1.6.0", + "ember-cli": "~3.20.2", + "ember-cli-dependency-checker": "^3.2.0", + "ember-cli-inject-live-reload": "^2.0.2", + "ember-cli-sri": "^2.1.1", + "ember-cli-uglify": "^3.0.0", + "ember-disable-prototype-extensions": "^1.1.3", + "ember-export-application-global": "^2.0.1", + "ember-intl": "^5.5.0", + "ember-load-initializers": "^2.1.1", + "ember-maybe-import-regenerator": "^0.1.6", + "ember-qunit": "^4.6.0", + "ember-resolver": "^8.0.0", + "ember-source": "~3.20.2", + "ember-source-channel-url": "^2.0.1", + "ember-template-lint": "^2.9.1", + "ember-try": "^1.4.0", + "eslint": "^7.5.0", + "eslint-plugin-ember": "^8.9.1", + "eslint-plugin-node": "^11.1.0", + "loader.js": "^4.7.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.2", + "qunit-dom": "^1.2.0" + }, + "engines": { + "node": "10.* || >= 12" + }, + "ember": { + "edition": "octane" + }, + "ember-addon": { + "configPath": "tests/dummy/config" + } +} diff --git a/addons/core/testem.js b/addons/core/testem.js new file mode 100644 index 000000000..e3e8564ff --- /dev/null +++ b/addons/core/testem.js @@ -0,0 +1,23 @@ +"use strict"; + +module.exports = { + test_page: "tests/index.html?hidepassed", + disable_watching: true, + launch_in_ci: ["Chrome"], + launch_in_dev: ["Chrome"], + browser_start_timeout: 120, + browser_args: { + Chrome: { + ci: [ + // --no-sandbox is needed when running Chrome inside a container + process.env.CI ? "--no-sandbox" : null, + "--headless", + "--disable-dev-shm-usage", + "--disable-software-rasterizer", + "--mute-audio", + "--remote-debugging-port=0", + "--window-size=1440,900", + ].filter(Boolean), + }, + }, +}; diff --git a/addons/core/tests/dummy/app/app.js b/addons/core/tests/dummy/app/app.js new file mode 100644 index 000000000..2ae212dbd --- /dev/null +++ b/addons/core/tests/dummy/app/app.js @@ -0,0 +1,12 @@ +import Application from "@ember/application"; +import Resolver from "ember-resolver"; +import loadInitializers from "ember-load-initializers"; +import config from "dummy/config/environment"; + +export default class App extends Application { + modulePrefix = config.modulePrefix; + podModulePrefix = config.podModulePrefix; + Resolver = Resolver; +} + +loadInitializers(App, config.modulePrefix); diff --git a/addons/core/tests/dummy/app/components/.gitkeep b/addons/core/tests/dummy/app/components/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/controllers/.gitkeep b/addons/core/tests/dummy/app/controllers/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/formats.js b/addons/core/tests/dummy/app/formats.js new file mode 100644 index 000000000..4a4add42f --- /dev/null +++ b/addons/core/tests/dummy/app/formats.js @@ -0,0 +1,31 @@ +export default { + time: { + hhmmss: { + hour: "numeric", + minute: "numeric", + second: "numeric", + }, + }, + date: { + hhmmss: { + hour: "numeric", + minute: "numeric", + second: "numeric", + }, + }, + number: { + compact: { notation: "compact" }, + EUR: { + style: "currency", + currency: "EUR", + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }, + USD: { + style: "currency", + currency: "USD", + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }, + }, +}; diff --git a/addons/core/tests/dummy/app/helpers/.gitkeep b/addons/core/tests/dummy/app/helpers/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/index.html b/addons/core/tests/dummy/app/index.html new file mode 100644 index 000000000..61400b20f --- /dev/null +++ b/addons/core/tests/dummy/app/index.html @@ -0,0 +1,25 @@ + + + + + + Dummy + + + + {{content-for "head"}} + + + + + {{content-for "head-footer"}} + + + {{content-for "body"}} + + + + + {{content-for "body-footer"}} + + diff --git a/addons/core/tests/dummy/app/models/.gitkeep b/addons/core/tests/dummy/app/models/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/router.js b/addons/core/tests/dummy/app/router.js new file mode 100644 index 000000000..018b4b1ca --- /dev/null +++ b/addons/core/tests/dummy/app/router.js @@ -0,0 +1,9 @@ +import EmberRouter from "@ember/routing/router"; +import config from "dummy/config/environment"; + +export default class Router extends EmberRouter { + location = config.locationType; + rootURL = config.rootURL; +} + +Router.map(function () {}); diff --git a/addons/core/tests/dummy/app/routes/.gitkeep b/addons/core/tests/dummy/app/routes/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/styles/app.css b/addons/core/tests/dummy/app/styles/app.css new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/templates/application.hbs b/addons/core/tests/dummy/app/templates/application.hbs new file mode 100644 index 000000000..5230580f8 --- /dev/null +++ b/addons/core/tests/dummy/app/templates/application.hbs @@ -0,0 +1,3 @@ +

Welcome to Ember

+ +{{outlet}} \ No newline at end of file diff --git a/addons/core/tests/dummy/config/ember-cli-update.json b/addons/core/tests/dummy/config/ember-cli-update.json new file mode 100644 index 000000000..7d2c3ace4 --- /dev/null +++ b/addons/core/tests/dummy/config/ember-cli-update.json @@ -0,0 +1,20 @@ +{ + "schemaVersion": "1.0.0", + "packages": [ + { + "name": "ember-cli", + "version": "3.20.2", + "blueprints": [ + { + "name": "addon", + "outputRepo": "https://github.com/ember-cli/ember-addon-output", + "codemodsSource": "ember-addon-codemods-manifest@1", + "isBaseBlueprint": true, + "options": [ + "--yarn" + ] + } + ] + } + ] +} diff --git a/addons/core/tests/dummy/config/ember-intl.js b/addons/core/tests/dummy/config/ember-intl.js new file mode 100644 index 000000000..2cb1c38c1 --- /dev/null +++ b/addons/core/tests/dummy/config/ember-intl.js @@ -0,0 +1,95 @@ +/* jshint node:true */ + +module.exports = function (/* environment */) { + return { + /** + * Merges the fallback locale's translations into all other locales as a + * build-time fallback strategy. + * + * This will **not** prevent missing translation warnings or errors from occurring. + * It's meant as safety net when warnings are enabled. + * When enabled along with `errorOnMissingTranslations` any fallback attempts will result in an error. + * + * @property fallbackLocale + * @type {String?} + * @default "null" + */ + fallbackLocale: null, + + /** + * Path where translations are stored. This is relative to the project root. + * For example, if your translations are an npm dependency, set this to: + *`'./node_modules/path/to/translations'` + * + * @property inputPath + * @type {String} + * @default "'translations'" + */ + inputPath: "translations", + + /** + * Prevents the translations from being bundled with the application code. + * This enables asynchronously loading the translations for the active locale + * by fetching them from the asset folder of the build. + * + * See: https://ember-intl.github.io/ember-intl/docs/guide/asynchronously-loading-translations + * + * @property publicOnly + * @type {Boolean} + * @default "false" + */ + publicOnly: false, + + /** + * Add the subdirectories of the translations as a namespace for all keys. + * + * @property wrapTranslationsWithNamespace + * @type {Boolean} + * @default "false" + */ + wrapTranslationsWithNamespace: false, + + /** + * Cause a build error if ICU argument mismatches are detected between translations + * with the same key across all locales. + * + * @property errorOnNamedArgumentMismatch + * @type {Boolean} + * @default "false" + */ + errorOnNamedArgumentMismatch: false, + + /** + * Cause a build error if missing translations are detected. + * + * See https://ember-intl.github.io/ember-intl/docs/guide/missing-translations#throwing-a-build-error-on-missing-required-translation + * + * @property errorOnMissingTranslations + * @type {Boolean} + * @default "false" + */ + errorOnMissingTranslations: false, + + /** + * removes empty translations from the build output. + * + * @property stripEmptyTranslations + * @type {Boolean} + * @default "false" + */ + stripEmptyTranslations: false, + + /** + * A function that is called whenever any translation key, from any locale, is missing at build time. + * + * See https://ember-intl.github.io/ember-intl/docs/guide/missing-translations#requiring-translations + * + * @property requiresTranslation + * @type {Function} + * @default "function(key,locale) { return true }" + */ + requiresTranslation(/* key, locale */) { + return true; + }, + }; +}; diff --git a/addons/core/tests/dummy/config/environment.js b/addons/core/tests/dummy/config/environment.js new file mode 100644 index 000000000..f0a6c3b29 --- /dev/null +++ b/addons/core/tests/dummy/config/environment.js @@ -0,0 +1,51 @@ +"use strict"; + +module.exports = function (environment) { + let ENV = { + modulePrefix: "dummy", + environment, + rootURL: "/", + locationType: "auto", + EmberENV: { + 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: { + // Here you can pass flags/options to your application instance + // when it is created + }, + }; + + if (environment === "development") { + // ENV.APP.LOG_RESOLVER = true; + // ENV.APP.LOG_ACTIVE_GENERATION = true; + // ENV.APP.LOG_TRANSITIONS = true; + // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; + // ENV.APP.LOG_VIEW_LOOKUPS = true; + } + + if (environment === "test") { + // Testem prefers this... + ENV.locationType = "none"; + + // keep test console output quieter + ENV.APP.LOG_ACTIVE_GENERATION = false; + ENV.APP.LOG_VIEW_LOOKUPS = false; + + ENV.APP.rootElement = "#ember-testing"; + ENV.APP.autoboot = false; + } + + if (environment === "production") { + // here you can enable a production-specific feature + } + + return ENV; +}; diff --git a/addons/core/tests/dummy/config/optional-features.json b/addons/core/tests/dummy/config/optional-features.json new file mode 100644 index 000000000..b26286e2e --- /dev/null +++ b/addons/core/tests/dummy/config/optional-features.json @@ -0,0 +1,6 @@ +{ + "application-template-wrapper": false, + "default-async-observers": true, + "jquery-integration": false, + "template-only-glimmer-components": true +} diff --git a/addons/core/tests/dummy/config/targets.js b/addons/core/tests/dummy/config/targets.js new file mode 100644 index 000000000..9a022efa9 --- /dev/null +++ b/addons/core/tests/dummy/config/targets.js @@ -0,0 +1,18 @@ +"use strict"; + +const browsers = [ + "last 1 Chrome versions", + "last 1 Firefox versions", + "last 1 Safari versions", +]; + +const isCI = Boolean(process.env.CI); +const isProduction = process.env.EMBER_ENV === "production"; + +if (isCI || isProduction) { + browsers.push("ie 11"); +} + +module.exports = { + browsers, +}; diff --git a/addons/core/tests/dummy/public/robots.txt b/addons/core/tests/dummy/public/robots.txt new file mode 100644 index 000000000..f5916452e --- /dev/null +++ b/addons/core/tests/dummy/public/robots.txt @@ -0,0 +1,3 @@ +# http://www.robotstxt.org +User-agent: * +Disallow: diff --git a/addons/core/tests/helpers/.gitkeep b/addons/core/tests/helpers/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/index.html b/addons/core/tests/index.html new file mode 100644 index 000000000..5209b8523 --- /dev/null +++ b/addons/core/tests/index.html @@ -0,0 +1,33 @@ + + + + + + Dummy Tests + + + + {{content-for "head"}} + {{content-for "test-head"}} + + + + + + {{content-for "head-footer"}} + {{content-for "test-head-footer"}} + + + {{content-for "body"}} + {{content-for "test-body"}} + + + + + + + + {{content-for "body-footer"}} + {{content-for "test-body-footer"}} + + diff --git a/ui/admin/tests/integration/helpers/format-date-iso-human-test.js b/addons/core/tests/integration/helpers/format-date-iso-human-test.js similarity index 93% rename from ui/admin/tests/integration/helpers/format-date-iso-human-test.js rename to addons/core/tests/integration/helpers/format-date-iso-human-test.js index da705231b..35f7c06e3 100644 --- a/ui/admin/tests/integration/helpers/format-date-iso-human-test.js +++ b/addons/core/tests/integration/helpers/format-date-iso-human-test.js @@ -6,7 +6,6 @@ import { hbs } from 'ember-cli-htmlbars'; module('Integration | Helper | format-date-iso-human', function (hooks) { setupRenderingTest(hooks); - // Replace this with your real tests. test('it renders', async function (assert) { this.set('inputValue', new Date('2020-01-01T00:00:00.999Z')); diff --git a/ui/admin/tests/integration/helpers/format-date-iso-test.js b/addons/core/tests/integration/helpers/format-date-iso-test.js similarity index 93% rename from ui/admin/tests/integration/helpers/format-date-iso-test.js rename to addons/core/tests/integration/helpers/format-date-iso-test.js index 12770ef76..0914b6a3a 100644 --- a/ui/admin/tests/integration/helpers/format-date-iso-test.js +++ b/addons/core/tests/integration/helpers/format-date-iso-test.js @@ -6,7 +6,6 @@ import { hbs } from 'ember-cli-htmlbars'; module('Integration | Helper | format-date-iso', function (hooks) { setupRenderingTest(hooks); - // Replace this with your real tests. test('it renders', async function (assert) { this.set('inputValue', new Date('2020-01-01T00:00:00.999Z')); diff --git a/addons/core/tests/test-helper.js b/addons/core/tests/test-helper.js new file mode 100644 index 000000000..d71607e7e --- /dev/null +++ b/addons/core/tests/test-helper.js @@ -0,0 +1,8 @@ +import Application from "dummy/app"; +import config from "dummy/config/environment"; +import { setApplication } from "@ember/test-helpers"; +import { start } from "ember-qunit"; + +setApplication(Application.create(config.APP)); + +start(); diff --git a/addons/core/tests/unit/.gitkeep b/addons/core/tests/unit/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/ui/admin/translations/actions/en-us.yaml b/addons/core/translations/actions/en-us.yaml similarity index 100% rename from ui/admin/translations/actions/en-us.yaml rename to addons/core/translations/actions/en-us.yaml diff --git a/ui/admin/translations/en-us.yaml b/addons/core/translations/en-us.yaml similarity index 100% rename from ui/admin/translations/en-us.yaml rename to addons/core/translations/en-us.yaml diff --git a/ui/admin/translations/errors/en-us.yaml b/addons/core/translations/errors/en-us.yaml similarity index 100% rename from ui/admin/translations/errors/en-us.yaml rename to addons/core/translations/errors/en-us.yaml diff --git a/ui/admin/translations/form/en-us.yaml b/addons/core/translations/form/en-us.yaml similarity index 91% rename from ui/admin/translations/form/en-us.yaml rename to addons/core/translations/form/en-us.yaml index 2971b77b6..d76b813c2 100644 --- a/ui/admin/translations/form/en-us.yaml +++ b/addons/core/translations/form/en-us.yaml @@ -46,3 +46,6 @@ host_set: grant_scope: label: Grant Scope help: Specify the scope to which this role applies. +origin: + label: Origin + description: The server origin to which to connect (e.g. protocol://host) diff --git a/ui/admin/translations/notifications/en-us.yaml b/addons/core/translations/notifications/en-us.yaml similarity index 100% rename from ui/admin/translations/notifications/en-us.yaml rename to addons/core/translations/notifications/en-us.yaml diff --git a/ui/admin/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml similarity index 99% rename from ui/admin/translations/resources/en-us.yaml rename to addons/core/translations/resources/en-us.yaml index bb9337871..7ad5434d1 100644 --- a/ui/admin/translations/resources/en-us.yaml +++ b/addons/core/translations/resources/en-us.yaml @@ -109,6 +109,8 @@ session: none: title: No Sessions description: There are no active sessions within the current scope. + actions: + connect: Connect org: title: Org title_plural: Orgs diff --git a/ui/admin/translations/states/en-us.yaml b/addons/core/translations/states/en-us.yaml similarity index 100% rename from ui/admin/translations/states/en-us.yaml rename to addons/core/translations/states/en-us.yaml diff --git a/addons/core/vendor/.gitkeep b/addons/core/vendor/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/package.json b/package.json index 571c7f40e..7bbdf203a 100644 --- a/package.json +++ b/package.json @@ -22,12 +22,14 @@ "lint": "npm-run-all lint:*", "lint:addons-api": "cd addons/api && yarn lint", "lint:addons-auth": "cd addons/auth && yarn lint", + "lint:addons-core": "cd addons/core && yarn lint", "lint:addons-rose": "cd addons/rose && yarn lint", "lint:ui-admin": "cd ui/admin && yarn lint", "lint:ui-desktop": "cd ui/desktop && yarn lint", "test": "npm-run-all test:*", "test:addons-api": "cd addons/api && yarn test", "test:addons-auth": "cd addons/auth && yarn test", + "test:addons-core": "cd addons/core && yarn test", "test:addons-rose": "cd addons/rose && yarn test", "test:ui-admin": "cd ui/admin && yarn test", "test:ui-desktop": "cd ui/desktop && yarn test", diff --git a/ui/admin/package.json b/ui/admin/package.json index d82e617d8..eb3340116 100644 --- a/ui/admin/package.json +++ b/ui/admin/package.json @@ -35,6 +35,7 @@ "@glimmer/tracking": "^1.0.0", "api": "*", "auth": "*", + "core": "*", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "broccoli-asset-rev": "^3.0.0", diff --git a/ui/desktop/app/templates/scopes.hbs b/ui/desktop/app/templates/scopes.hbs index 53d1e87e5..2cca02c50 100644 --- a/ui/desktop/app/templates/scopes.hbs +++ b/ui/desktop/app/templates/scopes.hbs @@ -1,4 +1,4 @@ -{{page-title (t 'scope.title_plural')}} +{{page-title (t 'resources.scope.title_plural')}} diff --git a/ui/desktop/app/templates/scopes/index.hbs b/ui/desktop/app/templates/scopes/index.hbs index cfb863937..c9da99ae5 100644 --- a/ui/desktop/app/templates/scopes/index.hbs +++ b/ui/desktop/app/templates/scopes/index.hbs @@ -2,7 +2,7 @@

- {{t "scope.title_plural"}} + {{t "resources.scope.title_plural"}}

@@ -10,7 +10,7 @@ - {{t 'scope.title'}} + {{t 'resources.scope.title'}} diff --git a/ui/desktop/app/templates/scopes/scope/-header-nav.hbs b/ui/desktop/app/templates/scopes/scope/-header-nav.hbs index eca77955c..4a383eb6d 100644 --- a/ui/desktop/app/templates/scopes/scope/-header-nav.hbs +++ b/ui/desktop/app/templates/scopes/scope/-header-nav.hbs @@ -4,7 +4,7 @@ > {{!-- {{#if this.session.data.authenticated.isGlobal}} --}} - {{t "scope.global.title"}} + {{t "titles.global"}} {{!-- {{/if}} --}} diff --git a/ui/desktop/app/templates/scopes/scope/targets.hbs b/ui/desktop/app/templates/scopes/scope/targets.hbs index 74c1be2af..f0feb5185 100644 --- a/ui/desktop/app/templates/scopes/scope/targets.hbs +++ b/ui/desktop/app/templates/scopes/scope/targets.hbs @@ -1,3 +1,3 @@ -{{page-title (t 'target.title_plural')}} +{{page-title (t 'resources.target.title_plural')}} {{outlet}} diff --git a/ui/desktop/app/templates/scopes/scope/targets/index.hbs b/ui/desktop/app/templates/scopes/scope/targets/index.hbs index b0779fa23..d76bbbe13 100644 --- a/ui/desktop/app/templates/scopes/scope/targets/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/targets/index.hbs @@ -2,7 +2,7 @@

- {{t "target.title_plural"}} + {{t "resources.target.title_plural"}}

@@ -10,10 +10,10 @@ - {{t "name.label"}} - {{t "id.label"}} - {{t "type.label"}} - {{t "project.label"}} + {{t "form.name.label"}} + {{t "form.id.label"}} + {{t "form.type.label"}} + {{t "resources.project.title"}} @@ -37,7 +37,7 @@ - {{t "session.actions.connect"}} + {{t "resources.session.actions.connect"}} diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 2e48399b2..ab6881aec 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -34,6 +34,7 @@ "@glimmer/component": "^1.0.1", "@glimmer/tracking": "^1.0.0", "api": "*", + "core": "*", "auth": "*", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", diff --git a/ui/desktop/translations/form/en-us.yaml b/ui/desktop/translations/form/en-us.yaml deleted file mode 100644 index a4c393943..000000000 --- a/ui/desktop/translations/form/en-us.yaml +++ /dev/null @@ -1,16 +0,0 @@ -id: - label: ID -name: - label: Name - help: Name for identification purposes -description: - label: Description - help: Description for identification purposes -type: - label: Type - help: The type of the resource, to help differentiate schemas -project: - label: Project -origin: - label: Origin - description: The Boundary server origin (e.g. protocol://host) diff --git a/ui/desktop/translations/resources/en-us.yaml b/ui/desktop/translations/resources/en-us.yaml deleted file mode 100644 index 22e1826b1..000000000 --- a/ui/desktop/translations/resources/en-us.yaml +++ /dev/null @@ -1,13 +0,0 @@ -scope: - title: Scope - title_plural: Scopes - global: - title: Global -target: - title: Target - title_plural: Targets -session: - title: Session - title_plural: Sessions - actions: - connect: Connect diff --git a/yarn.lock b/yarn.lock index 8586a5453..19cd67a62 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1837,10 +1837,10 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@formatjs/ecma402-abstract@1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.3.2.tgz#e9c1e990bd0fcde4db982d2272af990ba55cdcfc" - integrity sha512-O9VaOzf7uMmu08omHZgakntyPYAaQ6uJmVk5c6UbitYmWl0IgxnKWbf1MWVA7N0uQjbP9kvR4+hv09PAnqXuIw== +"@formatjs/ecma402-abstract@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.4.0.tgz#ac6c17a8fffac43c6d68c849a7b732626d32654c" + integrity sha512-Mv027hcLFjE45K8UJ8PjRpdDGfR0aManEFj1KzoN8zXNveHGEygpZGfFf/FTTMl+QEVSrPAUlyxaCApvmv47AQ== dependencies: tslib "^2.0.1" @@ -2249,9 +2249,9 @@ "@sinonjs/samsam" "^5.0.2" "@sinonjs/samsam@^5.0.2", "@sinonjs/samsam@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.2.0.tgz#fcff83ab86f83b5498f4a967869c079408d9b5eb" - integrity sha512-CaIcyX5cDsjcW/ab7HposFWzV1kC++4HNsfnEdFJa7cP1QIuILAKV+BgfeqRXhcnSAc76r/Rh/O5C+300BwUIw== + version "5.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.0.tgz#1d2f0743dc54bf13fe9d508baefacdffa25d4329" + integrity sha512-hXpcfx3aq+ETVBwPlRFICld5EnrkexXuXDwqUNhDdr5L8VjvMeSRwyOa0qL7XFmR+jVWR4rUZtnxlG7RX72sBg== dependencies: "@sinonjs/commons" "^1.6.0" lodash.get "^4.4.2" @@ -2977,9 +2977,9 @@ form-data "^3.0.0" "@types/node@*": - version "14.14.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.7.tgz#8ea1e8f8eae2430cf440564b98c6dfce1ec5945d" - integrity sha512-Zw1vhUSQZYw+7u5dAwNbIA9TuTotpzY/OF7sJM9FqPOF3SPjKnxrjoTktXDZgUjybf4cWVBP7O8wvKdSaGHweg== + version "14.14.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.8.tgz#2127bd81949a95c8b7d3240f3254352d72563aec" + integrity sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA== "@types/node@^9.6.0": version "9.6.61" @@ -3080,9 +3080,9 @@ "@types/node" "*" "@types/serve-static@*": - version "1.13.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.7.tgz#e51b51a0becda910f9fd04c718044da69d6c492e" - integrity sha512-3diZWucbR+xTmbDlU+FRRxBf+31OhFew7cJXML/zh9NmvSPTNoFecAwHB66BUqFgENJtqMiyl7JAwUE/siqdLw== + version "1.13.8" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.8.tgz#851129d434433c7082148574ffec263d58309c46" + integrity sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA== dependencies: "@types/mime" "*" "@types/node" "*" @@ -3146,9 +3146,9 @@ integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== "@types/yargs@^15.0.0": - version "15.0.9" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.9.tgz#524cd7998fe810cdb02f26101b699cccd156ff19" - integrity sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g== + version "15.0.10" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.10.tgz#0fe3c8173a0d5c3e780b389050140c3f5ea6ea74" + integrity sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ== dependencies: "@types/yargs-parser" "*" @@ -3792,20 +3792,22 @@ array-unique@^0.3.2: integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.flat@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" array.prototype.flatmap@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" - integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" function-bind "^1.1.1" array.prototype.map@^1.0.1: @@ -6306,9 +6308,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157: - version "1.0.30001157" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz#2d11aaeb239b340bc1aa730eca18a37fdb07a9ab" - integrity sha512-gOerH9Wz2IRZ2ZPdMfBvyOi3cjaz4O4dgNwPGzx8EhqAs4+2IL/O+fJsbt+znSigujoZG8bVcIAUM/I/E5K3MA== + version "1.0.30001159" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz#bebde28f893fa9594dadcaa7d6b8e2aa0299df20" + integrity sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA== capture-exit@^2.0.0: version "2.0.0" @@ -7393,14 +7395,14 @@ cssstyle@^2.2.0: cssom "~0.3.6" csstype@^2.5.7: - version "2.6.13" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" - integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== + version "2.6.14" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.14.tgz#004822a4050345b55ad4dcc00be1d9cf2f4296de" + integrity sha512-2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A== csstype@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.4.tgz#b156d7be03b84ff425c9a0a4b1e5f4da9c5ca888" - integrity sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA== + version "3.0.5" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8" + integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ== currently-unhandled@^0.4.1: version "0.4.1" @@ -7508,7 +7510,7 @@ debug@~4.1.0: dependencies: ms "^2.1.1" -debuglog@^1.0.1: +debuglog@*, debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= @@ -8056,9 +8058,9 @@ electron-rebuild@^2.0.0: yargs "^16.0.0" electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.591: - version "1.3.593" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.593.tgz#947ccf6dc8e013e2b053d2463ecd1043c164fcef" - integrity sha512-GvO7G1ZxvffnMvPCr4A7+iQPVuvpyqMrx2VWSERAjG+pHK6tmO9XqYdBfMIq9corRyi4bNImSDEiDvIoDb8HrA== + version "1.3.598" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.598.tgz#8f757018902ab6190323a8c5f6124d854893a35b" + integrity sha512-G5Ztk23/ubLYVPxPXnB1uu105uzIPd4xB/D8ld8x1GaSC9+vU9NZL16nYZya8H77/7CCKKN7dArzJL3pBs8N7A== element-resize-detector@^1.2.1: version "1.2.1" @@ -11038,9 +11040,9 @@ getpass@^0.1.1: assert-plus "^1.0.0" git-cz@^4.3.1: - version "4.7.3" - resolved "https://registry.yarnpkg.com/git-cz/-/git-cz-4.7.3.tgz#2dc67b0231937946f602fd0320f6c983c40f7071" - integrity sha512-Z+iy1G5qsbICeHBj4EZI438C8T1bh+m953jTT5hcQZggzSnjDdrUahM7O+ETspr3f3iWXONqC8e+zMuDT+ODJg== + version "4.7.4" + resolved "https://registry.yarnpkg.com/git-cz/-/git-cz-4.7.4.tgz#abb119676fc5869d1f3470a54032c6a95d53d010" + integrity sha512-s8r6JPuuFJXCiwB6uBlWYjDE6GlvIReSgVqYCfpRB+JbiBVNQLcBb93mH6bIJzz1lQU4R8+qlChhQIK8xp58Tg== git-diff-apply@0.22.7: version "0.22.7" @@ -12147,7 +12149,7 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -12347,21 +12349,21 @@ interpret@^2.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -intl-messageformat-parser@6.0.15, intl-messageformat-parser@^6.0.5: - version "6.0.15" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.0.15.tgz#84c5840a4c382b27d7a62c3be6ec01b987363f4b" - integrity sha512-W+dAY3M0XVkowapa4LzzpUO9awevcbt5hCB3uof7yM2InzgR6/nfC9H7GnUcRPkKpIDRd6iZ+FtvCcPbNBvfiQ== +intl-messageformat-parser@6.0.16, intl-messageformat-parser@^6.0.5: + version "6.0.16" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.0.16.tgz#4049e07d0834635ab08e1a1f255287b9c83888e5" + integrity sha512-Qy3Zz0vF4fhMVuW4BDqUr55LsOl9enM03wuwbP4Yg7v29rYNpf7Z76Whstu6uDLDJokrjbpgDvRcjSDTAhxKJw== dependencies: - "@formatjs/ecma402-abstract" "1.3.2" + "@formatjs/ecma402-abstract" "1.4.0" tslib "^2.0.1" intl-messageformat@^9.3.6: - version "9.3.17" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.3.17.tgz#7a2645a5d3cb9ae190ecc11def5b9a96d99f3fe0" - integrity sha512-CreK24I6+sWsAvo6GkJoOxCNry2k2LLo3daXguuU+cOaGTxdjDJo4CfGxiBlngmL0ZPbqkAA4XoRiFt83fSPqg== + version "9.3.18" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.3.18.tgz#26074d0793b72b117acdef927f30518ebcdcedcc" + integrity sha512-OKrLWppdxXtRdRCPjmRZ9Ru7UZkZJDlMl+1Vpb3sCLWK0mFpr129K+gIlIb5zrWoAH3NiYDzekBXPTRWCyHSIA== dependencies: fast-memoize "^2.5.2" - intl-messageformat-parser "6.0.15" + intl-messageformat-parser "6.0.16" tslib "^2.0.1" into-stream@^3.1.0: @@ -13844,6 +13846,11 @@ lodash._baseflatten@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= + lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -13852,11 +13859,16 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@^3.0.0: +lodash._bindcallback@*, lodash._bindcallback@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= + lodash._createassigner@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" @@ -13866,12 +13878,19 @@ lodash._createassigner@^3.0.0: lodash._isiterateecall "^3.0.0" lodash.restparam "^3.0.0" +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= + dependencies: + lodash._getnative "^3.0.0" + lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._getnative@^3.0.0: +lodash._getnative@*, lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= @@ -14084,7 +14103,7 @@ lodash.pick@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= -lodash.restparam@^3.0.0: +lodash.restparam@*, lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= @@ -14499,9 +14518,9 @@ mdurl@^1.0.0, mdurl@^1.0.1, mdurl@~1.0.0: integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= meant@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.2.tgz#5d0c78310a3d8ae1408a16be0fe0bd42a969f560" - integrity sha512-KN+1uowN/NK+sT/Lzx7WSGIj2u+3xe5n2LbwObfjOhPZiA+cCfCm6idVl0RkEfjThkw5XJ96CyRcanq6GmKtUg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.3.tgz#67769af9de1d158773e928ae82c456114903554c" + integrity sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw== media-typer@0.3.0: version "0.3.0" @@ -15058,9 +15077,9 @@ no-case@^3.0.3: tslib "^1.10.0" node-abi@^2.19.1: - version "2.19.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz#6aa32561d0a5e2fdb6810d8c25641b657a8cea85" - integrity sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A== + version "2.19.3" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" + integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== dependencies: semver "^5.4.1" @@ -15195,9 +15214,9 @@ node-pre-gyp@^0.11.0: tar "^4" node-releases@^1.1.52, node-releases@^1.1.66: - version "1.1.66" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.66.tgz#609bd0dc069381015cd982300bae51ab4f1b1814" - integrity sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg== + version "1.1.67" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" + integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== node-uuid@~1.4.7: version "1.4.8" @@ -20039,9 +20058,9 @@ uc.micro@^1.0.0, uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.11.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.5.tgz#d6788bc83cf35ff18ea78a65763e480803409bc6" - integrity sha512-btvv/baMqe7HxP7zJSF7Uc16h1mSfuuSplT0/qdjxseesDU+yYzH33eHBH+eMdeRXwujXspaCTooWHQVVBh09w== + version "3.11.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.6.tgz#144b50d3e05eadd3ad4dd047c60ca541a8cd4e9c" + integrity sha512-oASI1FOJ7BBFkSCNDZ446EgkSuHkOZBuqRFrwXIKWCoXw8ZXQETooTQjkAcBS03Acab7ubCKsXnwuV2svy061g== uid-number@0.0.6: version "0.0.6" @@ -21127,7 +21146,7 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== -y18n@^5.0.2: +y18n@^5.0.5: version "5.0.5" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== @@ -21226,16 +21245,16 @@ yargs@^15.0.0, yargs@^15.1.0: yargs-parser "^18.1.2" yargs@^16.0.0, yargs@^16.0.3: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.1.0.tgz#fc333fe4791660eace5a894b39d42f851cd48f2a" - integrity sha512-upWFJOmDdHN0syLuESuvXDmrRcWd1QafJolHskzaw79uZa7/x53gxQKiR07W59GWY1tFhhU/Th9DrtSfpS782g== + version "16.1.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.1.1.tgz#5a4a095bd1ca806b0a50d0c03611d38034d219a1" + integrity sha512-hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w== dependencies: cliui "^7.0.2" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" string-width "^4.2.0" - y18n "^5.0.2" + y18n "^5.0.5" yargs-parser "^20.2.2" yargs@^8.0.2: