diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b091d31..9cd03ad1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,80 +3,77 @@ name: CI on: push: branches: + - main - master - renovate/* - tags: - - '*' - pull_request: - schedule: - - cron: '0 4 * * 5' # Fridays at 4am + pull_request: {} + +concurrency: + group: ci-${{ github.head_ref || github.ref }} + cancel-in-progress: true jobs: test: - name: Tests + name: 'Tests' runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v3 - - name: Setup node.js + - uses: actions/checkout@v3 + - name: Install Node uses: actions/setup-node@v3 with: - node-version: 14 - - name: Install dependencies - uses: bahmutov/npm-install@v1 + node-version: 14.x + cache: yarn + - name: Install Dependencies + run: yarn install --frozen-lockfile - name: Lint run: yarn lint - - name: Test + - name: Run Tests run: yarn test -# re-enable this when the socket.io issue has been resolved. -# `bahmutov/npm-install` does not work with yarn resolutions here, as yarn is not used due to https://github.com/bahmutov/npm-install/issues/95 -# test-no-lock: -# name: Floating Dependencies -# runs-on: ubuntu-latest -# needs: -# - test -# steps: -# - name: Checkout code -# uses: actions/checkout@v2 -# - name: Setup node.js -# uses: actions/setup-node@v2 -# with: -# node-version: 12 -# - name: Install dependencies -# uses: bahmutov/npm-install@v1 -# with: -# useLockFile: false -# - name: Test -# run: yarn test:ember + floating: + name: 'Floating Dependencies' + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 14.x + cache: yarn + - name: Install Dependencies + run: yarn install --no-lockfile + - name: Run Tests + run: yarn test - test-try: - name: Additional Tests + try-scenarios: + name: ${{ matrix.try-scenario }} runs-on: ubuntu-latest - needs: - - test + needs: 'test' + strategy: + fail-fast: false matrix: - scenario: + try-scenario: - ember-lts-3.24 + - ember-lts-3.28 + - ember-lts-4.4 - ember-release - ember-beta - ember-canary - - ember-default-with-jquery - ember-classic - embroider-safe - embroider-optimized - fail-fast: false + steps: - - name: Checkout code - uses: actions/checkout@v3 - - name: Setup node.js + - uses: actions/checkout@v3 + - name: Install Node uses: actions/setup-node@v3 with: - node-version: 14 - - name: Install dependencies - uses: bahmutov/npm-install@v1 - - name: Test - run: yarn ember try:one ${{ matrix.scenario }} + node-version: 14.x + cache: yarn + - name: Install Dependencies + run: yarn install --frozen-lockfile + - name: Run Tests + run: yarn ember try:one ${{ matrix.try-scenario }} working-directory: test-app diff --git a/config/ember-cli-update.json b/config/ember-cli-update.json new file mode 100644 index 00000000..c70779b8 --- /dev/null +++ b/config/ember-cli-update.json @@ -0,0 +1,21 @@ +{ + "schemaVersion": "1.0.0", + "packages": [ + { + "name": "@embroider/addon-blueprint", + "version": "1.3.0", + "blueprints": [ + { + "name": "@embroider/addon-blueprint", + "isBaseBlueprint": true, + "options": [ + "--yarn", + "--ci-provider=github", + "--release-it", + "--typescript" + ] + } + ] + } + ] +} diff --git a/ember-stargate/.eslintignore b/ember-stargate/.eslintignore index 701947ed..e69140be 100644 --- a/ember-stargate/.eslintignore +++ b/ember-stargate/.eslintignore @@ -1,22 +1,8 @@ # unconventional js /blueprints/*/files/ -/vendor/ # compiled output /dist/ -/tmp/ - -# dependencies -/bower_components/ -/node_modules/ # misc /coverage/ -!.* -.*/ -.eslintcache - -# ember-try -/.node_modules.ember-try/ -/bower.json.ember-try -/package.json.ember-try diff --git a/ember-stargate/.eslintrc.js b/ember-stargate/.eslintrc.js index 02f68baa..65164847 100644 --- a/ember-stargate/.eslintrc.js +++ b/ember-stargate/.eslintrc.js @@ -4,13 +4,9 @@ module.exports = { root: true, parser: '@typescript-eslint/parser', parserOptions: { - ecmaVersion: 2021, - sourceType: 'module', - ecmaFeatures: { - legacyDecorators: true, - }, + ecmaVersion: 'latest', }, - plugins: ['ember', '@typescript-eslint'], + plugins: ['ember'], extends: [ 'eslint:recommended', 'plugin:ember/recommended', @@ -39,7 +35,12 @@ module.exports = { }, // node files { - files: ['.eslintrc.js', '.template-lintrc.js', 'addon-main.js'], + files: [ + './.eslintrc.js', + './.prettierrc.js', + './.template-lintrc.js', + './addon-main.js', + ], parserOptions: { sourceType: 'script', }, @@ -50,10 +51,5 @@ module.exports = { plugins: ['node'], extends: ['plugin:node/recommended'], }, - { - // Test files: - files: ['tests/**/*-test.{js,ts}'], - extends: ['plugin:qunit/recommended'], - }, ], }; diff --git a/ember-stargate/.gitignore b/ember-stargate/.gitignore new file mode 100644 index 00000000..2a953744 --- /dev/null +++ b/ember-stargate/.gitignore @@ -0,0 +1,25 @@ +# See https://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +dist/ + +# dependencies +node_modules/ + +# misc +/.env* +/.pnp* +/.pnpm-debug.log +/.sass-cache +.eslintcache +/connect.lock +/coverage/ +/libpeerconnection.log +/npm-debug.log* +/testem.log +/yarn-error.log + +# ember-try +/.node_modules.ember-try/ +/package.json.ember-try +/yarn.lock.ember-try diff --git a/ember-stargate/CHANGELOG.md b/ember-stargate/CHANGELOG.md deleted file mode 100644 index 5a11b891..00000000 --- a/ember-stargate/CHANGELOG.md +++ /dev/null @@ -1,62 +0,0 @@ -## v0.4.1 (2022-02-04) - -#### :rocket: Enhancement -* `ember-stargate` - * [#420](https://github.com/kaliber5/ember-stargate/pull/420) Better error message for unregister assertion ([@simonihmig](https://github.com/simonihmig)) - -#### Committers: 1 -- Simon Ihmig ([@simonihmig](https://github.com/simonihmig)) - - -## v0.4.0-0 (2021-10-28) - -#### :boom: Breaking Change -* `ember-stargate`, `test-app` - * [#324](https://github.com/kaliber5/ember-stargate/pull/324) Convert to v2 addon ([@simonihmig](https://github.com/simonihmig)) -* Other - * [#319](https://github.com/kaliber5/ember-stargate/pull/319) Require ember-auto-import v2 ([@simonihmig](https://github.com/simonihmig)) - -#### :rocket: Enhancement -* `ember-stargate`, `test-app` - * [#324](https://github.com/kaliber5/ember-stargate/pull/324) Convert to v2 addon ([@simonihmig](https://github.com/simonihmig)) - -#### :bug: Bug Fix -* [#318](https://github.com/kaliber5/ember-stargate/pull/318) Fix changing portal targets, uses resources instead of lifecycle hooks ([@simonihmig](https://github.com/simonihmig)) - -#### Committers: 1 -- Simon Ihmig ([@simonihmig](https://github.com/simonihmig)) - - -## v0.3.0 (2021-08-30) - -#### :boom: Breaking Change -* [#263](https://github.com/kaliber5/ember-stargate/pull/263) Update `tracked-maps-and-sets` to support Ember 4.0, drop support for Ember <3.24 ([@simonihmig](https://github.com/simonihmig)) -* [#252](https://github.com/kaliber5/ember-stargate/pull/252) Drop node 10 support ([@simonihmig](https://github.com/simonihmig)) -* [#251](https://github.com/kaliber5/ember-stargate/pull/251) Update to Ember 3.27, drop support for Ember <3.20 ([@simonihmig](https://github.com/simonihmig)) - -#### :rocket: Enhancement -* [#263](https://github.com/kaliber5/ember-stargate/pull/263) Update `tracked-maps-and-sets` to support Ember 4.0, drop support for Ember <3.24 ([@simonihmig](https://github.com/simonihmig)) - -#### :house: Internal -* [#264](https://github.com/kaliber5/ember-stargate/pull/264) Configure Renovate ([@renovate[bot]](https://github.com/apps/renovate)) -* [#251](https://github.com/kaliber5/ember-stargate/pull/251) Update to Ember 3.27, drop support for Ember <3.20 ([@simonihmig](https://github.com/simonihmig)) -* [#9](https://github.com/kaliber5/ember-stargate/pull/9) Removed the public version of the -portal service ([@cah-briangantzler](https://github.com/cah-briangantzler)) - -#### Committers: 4 -- Alex Kanunnikov ([@lifeart](https://github.com/lifeart)) -- Brian Gantzler ([@cah-briangantzler](https://github.com/cah-briangantzler)) -- Simon Ihmig ([@simonihmig](https://github.com/simonihmig)) -- [@dependabot-preview[bot]](https://github.com/apps/dependabot-preview) - - -## v0.2.0 (2020-06-19) - -#### :boom: Breaking Change -* [#5](https://github.com/kaliber5/ember-stargate/pull/5) Introduce fallback=inplace behaviour, change semantics of renderInPlace ([@simonihmig](https://github.com/simonihmig)) - -#### :rocket: Enhancement -* [#5](https://github.com/kaliber5/ember-stargate/pull/5) Introduce fallback=inplace behaviour, change semantics of renderInPlace ([@simonihmig](https://github.com/simonihmig)) - -#### Committers: 1 -- Simon Ihmig ([@simonihmig](https://github.com/simonihmig)) - diff --git a/ember-stargate/LICENSE.md b/ember-stargate/LICENSE.md new file mode 100644 index 00000000..7b6573f5 --- /dev/null +++ b/ember-stargate/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/ember-stargate/README.md b/ember-stargate/README.md new file mode 100644 index 00000000..6f8604d3 --- /dev/null +++ b/ember-stargate/README.md @@ -0,0 +1,151 @@ +ember-stargate +============================================================================== + +[![CI](https://github.com/kaliber5/ember-stargate/actions/workflows/ci.yml/badge.svg)](https://github.com/kaliber5/ember-stargate/actions/workflows/ci.yml) +[![Ember Observer Score](https://emberobserver.com/badges/ember-stargate.svg)](https://emberobserver.com/addons/ember-stargate) + +A modern take on using so-called "portals" to render things in a +different place of the DOM tree than they are logically defined in the app. + +Implemented using lightweight Glimmer components and Ember's new `{{in-element}}`, +but without its caveats. + + +Compatibility +------------------------------------------------------------------------------ + +* Ember.js v3.24 or above +* Embroider or ember-auto-import v2 + + +Installation +------------------------------------------------------------------------------ + +``` +ember install ember-stargate +``` + + +Why this addon? +------------------------------------------------------------------------------ + +There are a number of existing solutions in the Ember ecosystem for the same +problem, so why this addon you may ask? + +Let's see how it compares to some of those... + +#### ember-wormhole + +The first addon to make portals popular in Ember uses proprietary implementation +tricks, that make it potentially less stable. Also defining portal targets in your +app is less flexible. + +#### ember-elsewhere + +While using only public Ember APIs, due to its requirement to use Ember's +`component` helper it comes with some caveats: +* you cannot send arbitrary content though the portal, it must be a single component +* you cannot use a [component in block form](https://github.com/ef4/ember-elsewhere/issues/2) +* the component helper does not support passing HTML attributes (as in regular angle bracket invocation) + +#### in-element + +While Ember starting with 3.20 (or earlier using [ember-in-element-polyfill](https://github.com/ember-polyfills/ember-in-element-polyfill) +has a built-in primitive with `{{in-element}}`, due to its (intentional) low-level nature it is suitable +more for usage in addons (for things like modals, tooltips, dropdowns), but using it in apps is not very ergonomic: +* it requires you to pass a reference to the target DOM element, which is less ergonomic than a CSS selector or some other + higher-level way to define the target (e.g. a target component) +* that DOM element has to *exist* already before using `{{in-element}}`, so it's sensitive to rendering timings + +Other than that, `{{in-element}}` is a very useful primitive, and in fact this addon uses it under the hood, +with just some simple higher-level abstractions on top of it! + +Usage +------------------------------------------------------------------------------ + +You need two things to make a portal work: define the content that should be sent through the portal using +``, and the target - identified by its name - where it should be rendered to +using ``. + +Let's take an example where we want to render a sticky footer inside `application.hbs`, as it will be used +across routes, but the actual content (left and right sections for action buttons etc. and a title) needs +to be defined within the actual routes; + +step1.hbs: +```hbs +Step 1 + + + Back + + + + + +``` + +application.hbs: + +```hbs +{{outlet}} + +
+ + + + + +
+``` + +Note that although the footer will be rendered *after* the portals, as it comes after the `{{outlet}}` at the +bottom of the DOM, this poses no problem for this addon as it explicitly supports this case: a portal's content +will not be rendered until its target is available, but then the target will immediately show the portal's content. + + +API +------------------------------------------------------------------------------ + +### Portal + +* `@target`: required argument to specify the name of the target +* `@fallback`: by default the portal's content will not render until the target is available. + With `@fallback="inplace"` the content will be rendered in place as long as the target is not available. +* `@renderInPlace`: if `true` the portal is effectively disabled, and the content is rendered in place. + +### PortalTarget + +* `@name`: required argument that identifies the target +* `@multiple`: by default if multiple portals refer to the same target, they will replace each other + (in the order of rendering). With `@multiple={{true}}` the portal's content will be appended (again in the order of rendering). +* `@onChange`: whenever a portal is rendered to or removed from the target, this action will be called. It will receive + the current portal count of this target as an argument. + + +TypeScript usage +------------------------------------------------------------------------------ + +All components have proper [Glint](https://github.com/typed-ember/glint) types, which allow you when using TypeScript to get strict type checking in your templates. + +Unless you are using [strict mode](http://emberjs.github.io/rfcs/0496-handlebars-strict-mode.html) templates (via [first class component templates](http://emberjs.github.io/rfcs/0779-first-class-component-templates.html)), +you need to import the addon's Glint template registry entries as described in the [Using Addons](https://typed-ember.gitbook.io/glint/using-glint/ember/using-addons#using-glint-enabled-addons) documentation: + +```ts +// e.g. types/glint.d.ts +import '@glint/environment-ember-loose'; +import 'ember-stargate/glint'; +``` + +> Note that Glint itself is still under active development, and as such breaking changes might occur. Therefore, Glint support by this addon is also considered experimental, and not covered by our SemVer contract! + + +Contributing +------------------------------------------------------------------------------ + +See the [Contributing](CONTRIBUTING.md) guide for details. + + +License +------------------------------------------------------------------------------ + +This project is licensed under the [MIT License](LICENSE.md). diff --git a/ember-stargate/babel.config.json b/ember-stargate/babel.config.json index fe782c23..739f8261 100644 --- a/ember-stargate/babel.config.json +++ b/ember-stargate/babel.config.json @@ -1,8 +1,8 @@ { "presets": [["@babel/preset-typescript"]], "plugins": [ + "@embroider/addon-dev/template-colocation-plugin", ["@babel/plugin-proposal-decorators", { "legacy": true }], - "@babel/plugin-proposal-class-properties", - "@embroider/addon-dev/template-colocation-plugin" + "@babel/plugin-proposal-class-properties" ] } diff --git a/ember-stargate/package.json b/ember-stargate/package.json index f6c14f88..30a84eff 100644 --- a/ember-stargate/package.json +++ b/ember-stargate/package.json @@ -18,16 +18,16 @@ ], "scripts": { "build": "rollup --config", - "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:hbs": "ember-template-lint .", - "lint:hbs:fix": "ember-template-lint . --fix", + "lint": "concurrently 'npm:lint:*(!fix)' --names 'lint:'", + "lint:fix": "concurrently 'npm:lint:*:fix' --names 'fix:'", + "lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern", "lint:js": "eslint . --cache", + "lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern", "lint:js:fix": "eslint . --fix", - "lint:ts": "glint", + "lint:types": "glint", "start": "rollup --config --watch", - "test": "echo 'Addon does not have tests, run tests in test-app'", - "prepare": "yarn build" + "test": "echo 'A v2 addon does not have tests, run tests in test-app'", + "prepack": "rollup --config" }, "dependencies": { "@ember/render-modifiers": "^2.0.0", @@ -41,15 +41,32 @@ "@babel/preset-typescript": "7.18.6", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-proposal-decorators": "7.20.2", - "@embroider/addon-dev": "1.8.3", + "@embroider/addon-dev": "2.0.0", "@glint/core": "0.9.7", "@glint/environment-ember-loose": "0.9.7", + "@tsconfig/ember": "1.0.1", "@types/ember": "4.0.2", "@types/ember__destroyable": "4.0.1", - "@types/ember__test-helpers": "2.8.2", + "@types/ember__object": "4.0.5", + "@types/ember__service": "4.0.1", + "@types/ember__controller": "4.0.3", + "@types/ember__string": "3.16.0", + "@types/ember__template": "4.0.1", + "@types/ember__polyfills": "4.0.1", + "@types/ember__utils": "4.0.2", + "@types/ember__runloop": "4.0.2", + "@types/ember__debug": "4.0.3", + "@types/ember__engine": "4.0.4", + "@types/ember__application": "4.0.4", + "@types/ember__test": "4.0.1", + "@types/ember__array": "4.0.3", + "@types/ember__error": "4.0.1", + "@types/ember__component": "4.0.11", + "@types/ember__routing": "4.0.12", + "@types/ember__test-helpers": "2.6.1", "@typescript-eslint/eslint-plugin": "5.43.0", "@typescript-eslint/parser": "5.43.0", - "babel-eslint": "10.1.0", + "concurrently": "7.2.1", "ember-modifier": "3.2.7", "ember-template-lint": "4.18.0", "eslint": "7.32.0", @@ -57,9 +74,9 @@ "eslint-plugin-ember": "11.2.0", "eslint-plugin-node": "11.1.0", "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-qunit": "7.3.2", - "npm-run-all": "4.1.5", + "prettier": "2.5.1", "rollup": "2.79.1", + "rollup-plugin-copy": "3.4.0", "rollup-plugin-ts": "3.0.2", "typescript": "4.7.4" }, @@ -82,30 +99,13 @@ "./services/-portal.js": "./dist/_app_/services/-portal.js" } }, - "release-it": { - "plugins": { - "release-it-lerna-changelog": { - "infile": "CHANGELOG.md", - "launchEditor": false - } - }, - "git": { - "tagName": "v${version}" - }, - "github": { - "release": true, - "tokenRef": "GITHUB_AUTH" - } - }, - "resolutions": { - "socket.io": "4.5.3" - }, "exports": { - "./addon-main.js": "./addon-main.js", + ".": "./dist/index.js", "./*": { "types": "./dist/*.d.ts", - "default": "./dist/*" - } + "default": "./dist/*.js" + }, + "./addon-main.js": "./addon-main.js" }, "typesVersions": { "*": { diff --git a/ember-stargate/rollup.config.mjs b/ember-stargate/rollup.config.mjs index 2fcb1e6e..bf44364e 100644 --- a/ember-stargate/rollup.config.mjs +++ b/ember-stargate/rollup.config.mjs @@ -1,4 +1,5 @@ import typescript from 'rollup-plugin-ts'; +import copy from 'rollup-plugin-copy'; import { Addon } from '@embroider/addon-dev/rollup'; const addon = new Addon({ @@ -15,9 +16,9 @@ export default { // These are the modules that users should be able to import from your // addon. Anything not listed here may get optimized away. addon.publicEntrypoints([ - 'components/**/*.ts', - 'services/**/*.ts', - 'glint.ts', + 'components/**/*.js', + 'services/**/*.js', + 'template-registry.js', ]), // These are the modules that should get reexported into the traditional @@ -47,5 +48,13 @@ export default { // Remove leftover build artifacts when starting a new build. addon.clean(), + + // Copy Readme and License into published package + copy({ + targets: [ + { src: '../README.md', dest: '.' }, + { src: '../LICENSE.md', dest: '.' }, + ], + }), ], }; diff --git a/ember-stargate/src/glint.ts b/ember-stargate/src/glint.ts deleted file mode 100644 index d50bbe48..00000000 --- a/ember-stargate/src/glint.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type Portal from './components/portal'; -import type PortalTarget from './components/portal-target'; - -declare module '@glint/environment-ember-loose/registry' { - export default interface Registry { - Portal: typeof Portal; - PortalTarget: typeof PortalTarget; - } -} diff --git a/ember-stargate/src/template-registry.ts b/ember-stargate/src/template-registry.ts new file mode 100644 index 00000000..f5198c24 --- /dev/null +++ b/ember-stargate/src/template-registry.ts @@ -0,0 +1,7 @@ +import type Portal from './components/portal'; +import type PortalTarget from './components/portal-target'; + +export default interface Registry { + Portal: typeof Portal; + PortalTarget: typeof PortalTarget; +} diff --git a/ember-stargate/tsconfig.json b/ember-stargate/tsconfig.json index 0979f067..b2dd193a 100644 --- a/ember-stargate/tsconfig.json +++ b/ember-stargate/tsconfig.json @@ -1,22 +1,7 @@ { - "compilerOptions": { - "target": "ESNext", - "module": "es2015", - "inlineSourceMap": true, - "inlineSources": true, - "moduleResolution": "node", - "experimentalDecorators": true, - "strict": true, - "declaration": true - }, - "include": [ - "src/**/*", - "types/**/*" - ], + "extends": "@tsconfig/ember/tsconfig.json", + "include": ["src/**/*", "unpublished-development-types/**/*"], "glint": { - "environment": "ember-loose", - "transform": { - "include": ["src/**"] - } + "environment": "ember-loose" } } diff --git a/ember-stargate/types/glint.d.ts b/ember-stargate/unpublished-development-types/index.d.ts similarity index 71% rename from ember-stargate/types/glint.d.ts rename to ember-stargate/unpublished-development-types/index.d.ts index b008197a..fe70409b 100644 --- a/ember-stargate/types/glint.d.ts +++ b/ember-stargate/unpublished-development-types/index.d.ts @@ -1,3 +1,6 @@ +// Add any types here that you need for local development only. +// These will *not* be published as part of your addon, so be careful that your published code does not rely on them! + import '@glint/environment-ember-loose'; import Modifier from 'ember-modifier'; diff --git a/package.json b/package.json index e6e11269..d525ccfd 100644 --- a/package.json +++ b/package.json @@ -8,32 +8,30 @@ "license": "MIT", "author": "Simon Ihmig ", "scripts": { - "prepare": "yarn workspace ember-stargate run prepare", - "start": "npm-run-all --parallel start:*", + "build": "yarn workspace ember-stargate run build", + "lint": "yarn workspaces run lint", + "lint:fix": "yarn workspaces run lint:fix", + "prepare": "yarn build", + "start": "concurrently 'npm:start:*' --restart-after 5000 --prefix-colors cyan,white,yellow", "start:addon": "yarn workspace ember-stargate run start", - "start:test-app": "yarn workspace test-app run start", - "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", - "lint:addon": "yarn workspace ember-stargate run lint", - "lint:test-app": "yarn workspace test-app run lint", - "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:fix:*", - "lint:fix:addon": "yarn workspace ember-stargate run lint:fix", - "lint:fix:test-app": "yarn workspace test-app run lint:fix", - "test": "npm-run-all --aggregate-output --continue-on-error --parallel test:*", - "test:addon": "yarn workspace ember-stargate run test", - "test:test-app": "yarn workspace test-app run test" + "start:test": "yarn workspace test-app run start", + "test": "yarn workspaces run test" }, "devDependencies": { - "npm-run-all": "4.1.5", - "prettier": "2.7.1", - "release-it": "15.5.0", "@release-it-plugins/lerna-changelog": "5.0.0", - "@release-it-plugins/workspaces": "3.2.0" + "@release-it-plugins/workspaces": "3.2.0", + "concurrently": "7.2.1", + "prettier": "2.5.1", + "release-it": "15.5.0" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org" }, "release-it": { "plugins": { "@release-it-plugins/lerna-changelog": { "infile": "CHANGELOG.md", - "launchEditor": false + "launchEditor": true }, "@release-it-plugins/workspaces": true }, @@ -46,8 +44,5 @@ }, "npm": false }, - "resolutions": { - "socket.io": "4.5.3" - }, "version": "0.4.3" } diff --git a/test-app/config/ember-try.js b/test-app/config/ember-try.js index ac7c504c..7aef2def 100644 --- a/test-app/config/ember-try.js +++ b/test-app/config/ember-try.js @@ -15,6 +15,22 @@ module.exports = async function () { }, }, }, + { + name: 'ember-lts-3.28', + npm: { + devDependencies: { + 'ember-source': '~3.28.0', + }, + }, + }, + { + name: 'ember-lts-4.4', + npm: { + devDependencies: { + 'ember-source': '~4.4.0', + }, + }, + }, { name: 'ember-release', npm: { diff --git a/test-app/package.json b/test-app/package.json index f8292c36..12b4cdf5 100644 --- a/test-app/package.json +++ b/test-app/package.json @@ -18,10 +18,10 @@ "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", - "lint:ts": "glint", "start": "ember serve", - "test": "npm-run-all lint test:*", - "test:ember": "ember test" + "test": "npm-run-all lint \"test:!(watch)\"", + "test:ember": "ember test", + "test:watch": "ember test --server" }, "devDependencies": { "@ember/optional-features": "2.0.0", @@ -95,7 +95,7 @@ "webpack": "5.75.0" }, "engines": { - "node": "12.* || 14.* || >= 16" + "node": "14.* || >= 16" }, "ember": { "edition": "octane" diff --git a/test-app/types/glint.d.ts b/test-app/types/glint.d.ts index 3288aa03..256268bb 100644 --- a/test-app/types/glint.d.ts +++ b/test-app/types/glint.d.ts @@ -1,9 +1,9 @@ import '@glint/environment-ember-loose'; -import 'ember-stargate/glint'; +import StarGateRegistry from 'ember-stargate/template-registry'; import Helper from '@ember/component/helper'; declare module '@glint/environment-ember-loose/registry' { - export default interface Registry { + export default interface Registry extends StarGateRegistry { 'page-title': new () => Helper<{ Args: { Positional: [string] }; Return: void; diff --git a/yarn.lock b/yarn.lock index 40a19384..bca0aeac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -269,7 +269,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.14.5", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2", "@babel/parser@^7.4.5", "@babel/parser@^7.7.0": +"@babel/parser@^7.14.5", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2", "@babel/parser@^7.4.5": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.2.tgz#9aeb9b92f64412b5f81064d46f6a1ac0881337f4" integrity sha512-afk318kh2uKbo7BEj2QtEi8HVCGrwHUffrYDy7dgVcSa2j9lY3LDjPzcyGdpX7xgm35aWqvciZJ4WKmdF/SxYg== @@ -976,7 +976,7 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.14.5", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": +"@babel/traverse@^7.14.5", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.4.5": version "7.20.1" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== @@ -992,7 +992,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2": +"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.4.4", "@babel/types@^7.7.2": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== @@ -1069,12 +1069,12 @@ ember-cli-version-checker "^5.1.2" semver "^7.3.5" -"@embroider/addon-dev@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@embroider/addon-dev/-/addon-dev-1.8.3.tgz#aefcd9ada0dfb3aa9819b44c2215066bee5ec6db" - integrity sha512-h3lv3YNZ0v1vnNc+Nvu6KHIos1A/gwsoTe/F4Y9LNHO+2K8Fx7skpevegBL9Wwb4aGaY9y0hS2xktIfBS0V3Qw== +"@embroider/addon-dev@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@embroider/addon-dev/-/addon-dev-2.0.0.tgz#6dc42d9a856c25f65a507b1b63a3da24a325a452" + integrity sha512-XOThXF6/4rQWmKOaD20xFsdPkNzmSCRUsLG2Qb9z/NpNonN9AFjo385OkUgMju2bp1E+U2QQNqCEsZLH9jdG9w== dependencies: - "@embroider/core" "^1.8.3" + "@embroider/core" "^1.9.0" "@rollup/pluginutils" "^4.1.1" assert-never "^1.2.1" fs-extra "^10.0.0" @@ -1092,7 +1092,7 @@ "@embroider/shared-internals" "^1.8.3" semver "^7.3.5" -"@embroider/core@^1.8.3": +"@embroider/core@^1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@embroider/core/-/core-1.9.0.tgz#7a5f1612a89be1f8de47dd520ccb8d6304f5eeae" integrity sha512-fjPb1pU7a+V9clpfBCa8CHdxbz7hr6azwNw/DqRQIMM272nrOPml65YVsBE24z7NrHdkqHjvmvDQ+qtl6oBhPw== @@ -1806,6 +1806,11 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== +"@tsconfig/ember@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@tsconfig/ember/-/ember-1.0.1.tgz#d7556d81f108438c17e4030acb4e1be6b2974e88" + integrity sha512-aPzLw5BfQxsFPrh5fNDOK4SbSkp2q5fMlrKVeniVjMz1lAcyOh2eH5THkKKcBi1YN1/fbMdAWN/dKGW6lg2+8g== + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -2003,7 +2008,14 @@ dependencies: "@types/ember__object" "*" -"@types/ember__string@*", "@types/ember__string@3.0.10": +"@types/ember__string@*", "@types/ember__string@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@types/ember__string/-/ember__string-3.16.0.tgz#6c5389b6d88a38366f421f4502cc416b82890620" + integrity sha512-zmOuSnvS+xKr7kqyRkc9xghWsqqTcP//9soK2KWVhzQltosmpNdkoy+M2upaSZAzhL7wqiUzX99F1ZMDCkwknQ== + dependencies: + "@types/ember__template" "*" + +"@types/ember__string@3.0.10": version "3.0.10" resolved "https://registry.yarnpkg.com/@types/ember__string/-/ember__string-3.0.10.tgz#17f93520c09426fe16519af86c9a1ea4e1ebdb91" integrity sha512-dxbW06IqPdieA4SEyUfyCUnL8iqUnzdcLUtrfkf8g+DSP2K/RGiexfG6w2NOyOetq8gw8F/WUpNYfMmBcB6Smw== @@ -2025,6 +2037,17 @@ "@types/ember__test-helpers" "*" "@types/htmlbars-inline-precompile" "*" +"@types/ember__test-helpers@2.6.1": + version "2.6.1" + resolved "https://registry.yarnpkg.com/@types/ember__test-helpers/-/ember__test-helpers-2.6.1.tgz#2835bc60fd7daa93292d669fa9b61706836fe2e7" + integrity sha512-d2RShuBSaBzp04nt8ad+mNE1F6rbIcIIud8WFUVQqGSUGHuZQUq1051Jza12ksCUnXduyE/J9UDjyZvNKOHeBQ== + dependencies: + "@types/ember-resolver" "*" + "@types/ember__application" "*" + "@types/ember__error" "*" + "@types/ember__test-helpers" "*" + "@types/htmlbars-inline-precompile" "*" + "@types/ember__test@*", "@types/ember__test@4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/ember__test/-/ember__test-4.0.1.tgz#9ef25c8ebda6921daa3a16b7265be025eadfaa7b" @@ -2099,7 +2122,7 @@ dependencies: "@types/node" "*" -"@types/fs-extra@^8.1.0": +"@types/fs-extra@^8.0.1", "@types/fs-extra@^8.1.0": version "8.1.2" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.2.tgz#7125cc2e4bdd9bd2fc83005ffdb1d0ba00cca61f" integrity sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg== @@ -2908,18 +2931,6 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -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-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" @@ -4157,6 +4168,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== +colorette@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -4248,6 +4264,21 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +concurrently@7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-7.2.1.tgz#88b144060443403060aad46f837dd17451f7e55e" + integrity sha512-7cab/QyqipqghrVr9qZmoWbidu0nHsmxrpNqQ7r/67vfl1DWJElexehQnTH1p+87tDkihaAjM79xTZyBQh7HLw== + dependencies: + chalk "^4.1.0" + date-fns "^2.16.1" + lodash "^4.17.21" + rxjs "^6.6.3" + shell-quote "^1.7.3" + spawn-command "^0.0.2-1" + supports-color "^8.1.0" + tree-kill "^1.2.2" + yargs "^17.3.1" + config-chain@^1.1.11: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" @@ -4511,7 +4542,7 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -date-fns@^2.29.2: +date-fns@^2.16.1, date-fns@^2.29.2: version "2.29.3" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== @@ -5811,7 +5842,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, eslint-visitor-keys@^1.3.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== @@ -6901,6 +6932,20 @@ globby@10.0.0: merge2 "^1.2.3" slash "^3.0.0" +globby@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22" + integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + globby@13.1.2, globby@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" @@ -7727,6 +7772,11 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" + integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== + 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" @@ -10078,6 +10128,11 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" +prettier@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" + integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== + prettier@2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" @@ -10613,7 +10668,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.1, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0: +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.1, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -10708,6 +10763,17 @@ rollup-plugin-copy-assets@^2.0.3: dependencies: fs-extra "^7.0.1" +rollup-plugin-copy@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-copy/-/rollup-plugin-copy-3.4.0.tgz#f1228a3ffb66ffad8606e2f3fb7ff23141ed3286" + integrity sha512-rGUmYYsYsceRJRqLVlE9FivJMxJ7X6jDlP79fmFkL8sJs7VVMSVyA2yfyL+PGyO/vJs4A87hwhgVfz61njI+uQ== + dependencies: + "@types/fs-extra" "^8.0.1" + colorette "^1.1.0" + fs-extra "^8.1.0" + globby "10.0.1" + is-plain-object "^3.0.0" + rollup-plugin-delete@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/rollup-plugin-delete/-/rollup-plugin-delete-2.0.0.tgz#262acf80660d48c3b167fb0baabd0c3ab985c153" @@ -10765,7 +10831,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^6.4.0, rxjs@^6.6.0: +rxjs@^6.4.0, rxjs@^6.6.0, rxjs@^6.6.3: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -10988,7 +11054,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.6.1, shell-quote@^1.7.3: version "1.7.4" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== @@ -11120,7 +11186,7 @@ socket.io-parser@~4.2.0: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" -socket.io@4.5.3, socket.io@^4.1.2: +socket.io@^4.1.2: version "4.5.3" resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.3.tgz#44dffea48d7f5aa41df4a66377c386b953bc521c" integrity sha512-zdpnnKU+H6mOp7nYRXH4GNv1ux6HL6+lHL8g7Ds7Lj8CkdK1jJK/dlwsKDculbyOHifcJ0Pr/yeXnZQ5GeFrcg== @@ -11253,6 +11319,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-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -11526,7 +11597,7 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.0.0, supports-color@^8.1.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -11840,6 +11911,11 @@ tracked-maps-and-sets@^3.0.1: ember-cli-typescript "^4.2.1" ember-tracked-storage-polyfill "1.0.0" +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" @@ -12719,7 +12795,7 @@ yargs@^16.0.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.0.1, yargs@^17.1.0, yargs@^17.5.1: +yargs@^17.0.1, yargs@^17.1.0, yargs@^17.3.1, yargs@^17.5.1: version "17.6.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==