diff --git a/.eslintrc b/.eslintrc
deleted file mode 100644
index ac403ef..0000000
--- a/.eslintrc
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "globals": {
- "Stripe": true
- },
- "extends": "eslint-config-discourse"
-}
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 0000000..be1a9f3
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1 @@
+module.exports = require("@discourse/lint-configs/eslint");
diff --git a/.prettierrc b/.prettierrc
deleted file mode 100644
index 0967ef4..0000000
--- a/.prettierrc
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/.prettierrc.cjs b/.prettierrc.cjs
new file mode 100644
index 0000000..57f647b
--- /dev/null
+++ b/.prettierrc.cjs
@@ -0,0 +1 @@
+module.exports = require("@discourse/lint-configs/prettier");
diff --git a/.template-lintrc.cjs b/.template-lintrc.cjs
new file mode 100644
index 0000000..5355ea0
--- /dev/null
+++ b/.template-lintrc.cjs
@@ -0,0 +1 @@
+module.exports = require("@discourse/lint-configs/template-lint");
diff --git a/.template-lintrc.js b/.template-lintrc.js
deleted file mode 100644
index a558b8e..0000000
--- a/.template-lintrc.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = {
- plugins: ["ember-template-lint-plugin-discourse"],
- extends: "discourse:recommended",
-};
diff --git a/Gemfile.lock b/Gemfile.lock
index 8e05f5a..c8f6ddb 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -8,35 +8,45 @@ GEM
remote: https://rubygems.org/
specs:
ast (2.4.2)
- json (2.6.2)
- parallel (1.22.1)
- parser (3.1.2.1)
+ json (2.7.1)
+ language_server-protocol (3.17.0.3)
+ parallel (1.24.0)
+ parser (3.3.0.4)
ast (~> 2.4.1)
- prettier_print (1.2.0)
+ racc
+ prettier_print (1.2.1)
+ racc (1.7.3)
rainbow (3.1.1)
- regexp_parser (2.6.0)
- rexml (3.2.5)
- rubocop (1.36.0)
+ regexp_parser (2.9.0)
+ rexml (3.2.6)
+ rubocop (1.60.0)
json (~> 2.3)
+ language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
- parser (>= 3.1.2.1)
+ parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
- rubocop-ast (>= 1.20.1, < 2.0)
+ rubocop-ast (>= 1.30.0, < 2.0)
ruby-progressbar (~> 1.7)
- unicode-display_width (>= 1.4.0, < 3.0)
- rubocop-ast (1.21.0)
- parser (>= 3.1.1.0)
- rubocop-discourse (3.0)
- rubocop (>= 1.1.0)
- rubocop-rspec (>= 2.0.0)
- rubocop-rspec (2.13.2)
- rubocop (~> 1.33)
- ruby-progressbar (1.11.0)
- syntax_tree (5.1.0)
+ unicode-display_width (>= 2.4.0, < 3.0)
+ rubocop-ast (1.30.0)
+ parser (>= 3.2.1.0)
+ rubocop-capybara (2.20.0)
+ rubocop (~> 1.41)
+ rubocop-discourse (3.6.0)
+ rubocop (>= 1.59.0)
+ rubocop-rspec (>= 2.25.0)
+ rubocop-factory_bot (2.25.1)
+ rubocop (~> 1.41)
+ rubocop-rspec (2.26.1)
+ rubocop (~> 1.40)
+ rubocop-capybara (~> 2.17)
+ rubocop-factory_bot (~> 2.22)
+ ruby-progressbar (1.13.0)
+ syntax_tree (6.2.0)
prettier_print (>= 1.2.0)
- unicode-display_width (2.3.0)
+ unicode-display_width (2.5.0)
PLATFORMS
ruby
@@ -47,4 +57,4 @@ DEPENDENCIES
translations-manager!
BUNDLED WITH
- 2.3.4
+ 2.5.4
diff --git a/assets/javascripts/discourse/components/campaign-banner.js b/assets/javascripts/discourse/components/campaign-banner.js
index 064f4af..41e34f8 100644
--- a/assets/javascripts/discourse/components/campaign-banner.js
+++ b/assets/javascripts/discourse/components/campaign-banner.js
@@ -1,11 +1,11 @@
-import { action } from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
-import { equal } from "@ember/object/computed";
-import { setting } from "discourse/lib/computed";
import Component from "@ember/component";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import { action } from "@ember/object";
+import { equal } from "@ember/object/computed";
import { later } from "@ember/runloop";
import { inject as service } from "@ember/service";
+import { ajax } from "discourse/lib/ajax";
+import { setting } from "discourse/lib/computed";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
const SIDEBAR_BODY_CLASS = "subscription-campaign-sidebar";
@@ -96,6 +96,7 @@ export default Component.extend({
},
willDestroyElement() {
+ this._super(...arguments);
document.body.classList.remove(SIDEBAR_BODY_CLASS);
},
diff --git a/assets/javascripts/discourse/components/modal/admin-cancel-subscription.gjs b/assets/javascripts/discourse/components/modal/admin-cancel-subscription.gjs
index b7f39af..2330e20 100644
--- a/assets/javascripts/discourse/components/modal/admin-cancel-subscription.gjs
+++ b/assets/javascripts/discourse/components/modal/admin-cancel-subscription.gjs
@@ -1,10 +1,10 @@
+import Component from "@glimmer/component";
+import { tracked } from "@glimmer/tracking";
+import { Input } from "@ember/component";
+import { fn, hash } from "@ember/helper";
import DButton from "discourse/components/d-button";
import DModal from "discourse/components/d-modal";
-import Component from "@glimmer/component";
-import { fn, hash } from "@ember/helper";
import i18n from "discourse-common/helpers/i18n";
-import { Input } from "@ember/component";
-import { tracked } from "@glimmer/tracking";
export default class AdminCancelSubscription extends Component {
@tracked refund;
diff --git a/assets/javascripts/discourse/components/product-list.js b/assets/javascripts/discourse/components/product-list.js
index 11457ee..015c6a0 100644
--- a/assets/javascripts/discourse/components/product-list.js
+++ b/assets/javascripts/discourse/components/product-list.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
import Component from "@ember/component";
+import { isEmpty } from "@ember/utils";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
classNames: ["product-list"],
diff --git a/assets/javascripts/discourse/components/subscribe-ca-province-select.js b/assets/javascripts/discourse/components/subscribe-ca-province-select.js
index 687f063..ce563c3 100644
--- a/assets/javascripts/discourse/components/subscribe-ca-province-select.js
+++ b/assets/javascripts/discourse/components/subscribe-ca-province-select.js
@@ -1,6 +1,6 @@
-import ComboBoxComponent from "select-kit/components/combo-box";
import { computed } from "@ember/object";
import I18n from "I18n";
+import ComboBoxComponent from "select-kit/components/combo-box";
export default ComboBoxComponent.extend({
pluginApiIdentifiers: ["subscribe-ca-province-select"],
diff --git a/assets/javascripts/discourse/components/subscribe-card.js b/assets/javascripts/discourse/components/subscribe-card.js
index 58dd4da..8ba057f 100644
--- a/assets/javascripts/discourse/components/subscribe-card.js
+++ b/assets/javascripts/discourse/components/subscribe-card.js
@@ -24,5 +24,8 @@ export default Component.extend({
},
});
},
- didDestroyElement() {},
+
+ didDestroyElement() {
+ this._super(...arguments);
+ },
});
diff --git a/assets/javascripts/discourse/components/subscribe-country-select.js b/assets/javascripts/discourse/components/subscribe-country-select.js
index 65c35b5..0b7293e 100644
--- a/assets/javascripts/discourse/components/subscribe-country-select.js
+++ b/assets/javascripts/discourse/components/subscribe-country-select.js
@@ -1,6 +1,6 @@
-import ComboBoxComponent from "select-kit/components/combo-box";
import { computed } from "@ember/object";
import I18n from "I18n";
+import ComboBoxComponent from "select-kit/components/combo-box";
export default ComboBoxComponent.extend({
pluginApiIdentifiers: ["subscribe-country-select"],
diff --git a/assets/javascripts/discourse/components/subscribe-us-state-select.js b/assets/javascripts/discourse/components/subscribe-us-state-select.js
index fe7ab21..4342e69 100644
--- a/assets/javascripts/discourse/components/subscribe-us-state-select.js
+++ b/assets/javascripts/discourse/components/subscribe-us-state-select.js
@@ -1,6 +1,6 @@
-import ComboBoxComponent from "select-kit/components/combo-box";
import { computed } from "@ember/object";
import I18n from "I18n";
+import ComboBoxComponent from "select-kit/components/combo-box";
export default ComboBoxComponent.extend({
pluginApiIdentifiers: ["subscribe-us-state-select"],
diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-coupons.js b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-coupons.js
index 14ea1d7..4d76965 100644
--- a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-coupons.js
+++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-coupons.js
@@ -1,6 +1,6 @@
import Controller from "@ember/controller";
-import AdminCoupon from "discourse/plugins/discourse-subscriptions/discourse/models/admin-coupon";
import { popupAjaxError } from "discourse/lib/ajax-error";
+import AdminCoupon from "discourse/plugins/discourse-subscriptions/discourse/models/admin-coupon";
export default Controller.extend({
creating: null,
diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-plans-show.js b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-plans-show.js
index 13a4867..859bfae 100644
--- a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-plans-show.js
+++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-plans-show.js
@@ -1,6 +1,6 @@
import Controller from "@ember/controller";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import { inject as service } from "@ember/service";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
router: service(),
diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-products-show-plans-show.js b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-products-show-plans-show.js
index 738aa7a..c96cddb 100644
--- a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-products-show-plans-show.js
+++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-products-show-plans-show.js
@@ -1,8 +1,8 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import DiscourseURL from "discourse/lib/url";
import Controller from "@ember/controller";
import { alias } from "@ember/object/computed";
import { popupAjaxError } from "discourse/lib/ajax-error";
+import DiscourseURL from "discourse/lib/url";
+import discourseComputed from "discourse-common/utils/decorators";
const RECURRING = "recurring";
const ONE_TIME = "one_time";
diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-products-show.js b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-products-show.js
index b5b3360..982342f 100644
--- a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-products-show.js
+++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-products-show.js
@@ -1,6 +1,6 @@
-import { popupAjaxError } from "discourse/lib/ajax-error";
import Controller from "@ember/controller";
import { inject as service } from "@ember/service";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
router: service(),
diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-subscriptions.js b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-subscriptions.js
index d2b3f87..3c294e6 100644
--- a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-subscriptions.js
+++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-subscriptions.js
@@ -1,9 +1,9 @@
-import AdminCancelSubscription from "../components/modal/admin-cancel-subscription";
-import AdminSubscription from "../models/admin-subscription";
import Controller from "@ember/controller";
import { action } from "@ember/object";
import { inject as service } from "@ember/service";
import I18n from "discourse-i18n";
+import AdminCancelSubscription from "../components/modal/admin-cancel-subscription";
+import AdminSubscription from "../models/admin-subscription";
export default Controller.extend({
modal: service(),
diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions.js b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions.js
index 018c45f..0654ee4 100644
--- a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions.js
+++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions.js
@@ -1,11 +1,11 @@
-import { action } from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import Controller from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
-import I18n from "I18n";
+import { action } from "@ember/object";
import { inject as service } from "@ember/service";
import { htmlSafe } from "@ember/template";
+import { ajax } from "discourse/lib/ajax";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import discourseComputed from "discourse-common/utils/decorators";
+import I18n from "I18n";
export default Controller.extend({
loading: false,
diff --git a/assets/javascripts/discourse/controllers/subscribe-index.js b/assets/javascripts/discourse/controllers/subscribe-index.js
index 6a5f0ca..6a5d820 100644
--- a/assets/javascripts/discourse/controllers/subscribe-index.js
+++ b/assets/javascripts/discourse/controllers/subscribe-index.js
@@ -1,6 +1,6 @@
import Controller from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
import User from "discourse/models/user";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend({
@discourseComputed()
diff --git a/assets/javascripts/discourse/controllers/subscribe-show.js b/assets/javascripts/discourse/controllers/subscribe-show.js
index 7693e5d..ef688e1 100644
--- a/assets/javascripts/discourse/controllers/subscribe-show.js
+++ b/assets/javascripts/discourse/controllers/subscribe-show.js
@@ -1,10 +1,11 @@
+/* global Stripe */
import Controller from "@ember/controller";
+import { not } from "@ember/object/computed";
+import { inject as service } from "@ember/service";
+import discourseComputed from "discourse-common/utils/decorators";
+import I18n from "I18n";
import Subscription from "discourse/plugins/discourse-subscriptions/discourse/models/subscription";
import Transaction from "discourse/plugins/discourse-subscriptions/discourse/models/transaction";
-import I18n from "I18n";
-import { not } from "@ember/object/computed";
-import discourseComputed from "discourse-common/utils/decorators";
-import { inject as service } from "@ember/service";
export default Controller.extend({
dialog: service(),
diff --git a/assets/javascripts/discourse/controllers/user-billing-subscriptions-card.js b/assets/javascripts/discourse/controllers/user-billing-subscriptions-card.js
index b6949a6..78c6872 100644
--- a/assets/javascripts/discourse/controllers/user-billing-subscriptions-card.js
+++ b/assets/javascripts/discourse/controllers/user-billing-subscriptions-card.js
@@ -1,14 +1,17 @@
+/* global Stripe */
import Controller from "@ember/controller";
import { action } from "@ember/object";
+import { inject as service } from "@ember/service";
import { ajax } from "discourse/lib/ajax";
import { popupAjaxError } from "discourse/lib/ajax-error";
import I18n from "I18n";
-import { inject as service } from "@ember/service";
export default Controller.extend({
dialog: service(),
+
loading: false,
saved: false,
+
init() {
this._super(...arguments);
this.set(
diff --git a/assets/javascripts/discourse/helpers/format-unix-date.js b/assets/javascripts/discourse/helpers/format-unix-date.js
index 6e06df8..3a1b786 100644
--- a/assets/javascripts/discourse/helpers/format-unix-date.js
+++ b/assets/javascripts/discourse/helpers/format-unix-date.js
@@ -1,5 +1,5 @@
-import { autoUpdatingRelativeAge } from "discourse/lib/formatter";
import { htmlSafe } from "@ember/template";
+import { autoUpdatingRelativeAge } from "discourse/lib/formatter";
export default function formatUnixDate(timestamp) {
if (timestamp) {
diff --git a/assets/javascripts/discourse/initializers/setup-subscriptions.js b/assets/javascripts/discourse/initializers/setup-subscriptions.js
index 6ece5aa..42339a9 100644
--- a/assets/javascripts/discourse/initializers/setup-subscriptions.js
+++ b/assets/javascripts/discourse/initializers/setup-subscriptions.js
@@ -5,7 +5,7 @@ export default {
name: "setup-subscriptions",
initialize(container) {
withPluginApi("0.8.11", (api) => {
- const siteSettings = container.lookup("site-settings:main");
+ const siteSettings = container.lookup("service:site-settings");
const isNavLinkEnabled =
siteSettings.discourse_subscriptions_extra_nav_subscribe;
if (isNavLinkEnabled) {
diff --git a/assets/javascripts/discourse/models/admin-coupon.js b/assets/javascripts/discourse/models/admin-coupon.js
index e3b12d5..3a2d49e 100644
--- a/assets/javascripts/discourse/models/admin-coupon.js
+++ b/assets/javascripts/discourse/models/admin-coupon.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
import discourseComputed from "discourse-common/utils/decorators";
const AdminCoupon = EmberObject.extend({
diff --git a/assets/javascripts/discourse/models/admin-plan.js b/assets/javascripts/discourse/models/admin-plan.js
index bff7d04..dd45f43 100644
--- a/assets/javascripts/discourse/models/admin-plan.js
+++ b/assets/javascripts/discourse/models/admin-plan.js
@@ -1,6 +1,6 @@
-import Plan from "discourse/plugins/discourse-subscriptions/discourse/models/plan";
-import discourseComputed from "discourse-common/utils/decorators";
import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import Plan from "discourse/plugins/discourse-subscriptions/discourse/models/plan";
const AdminPlan = Plan.extend({
isNew: false,
diff --git a/assets/javascripts/discourse/models/admin-product.js b/assets/javascripts/discourse/models/admin-product.js
index 19a967d..61d5de6 100644
--- a/assets/javascripts/discourse/models/admin-product.js
+++ b/assets/javascripts/discourse/models/admin-product.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
const AdminProduct = EmberObject.extend({
isNew: false,
diff --git a/assets/javascripts/discourse/models/admin-subscription.js b/assets/javascripts/discourse/models/admin-subscription.js
index a8a5768..a8e185b 100644
--- a/assets/javascripts/discourse/models/admin-subscription.js
+++ b/assets/javascripts/discourse/models/admin-subscription.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
import getURL from "discourse-common/lib/get-url";
+import discourseComputed from "discourse-common/utils/decorators";
const AdminSubscription = EmberObject.extend({
@discourseComputed("status")
diff --git a/assets/javascripts/discourse/models/subscription.js b/assets/javascripts/discourse/models/subscription.js
index 11f310d..62d3afa 100644
--- a/assets/javascripts/discourse/models/subscription.js
+++ b/assets/javascripts/discourse/models/subscription.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
const Subscription = EmberObject.extend({
@discourseComputed("status")
diff --git a/assets/javascripts/discourse/models/user-payment.js b/assets/javascripts/discourse/models/user-payment.js
index 5494e26..0aacab6 100644
--- a/assets/javascripts/discourse/models/user-payment.js
+++ b/assets/javascripts/discourse/models/user-payment.js
@@ -1,6 +1,6 @@
import EmberObject from "@ember/object";
-import discourseComputed from "discourse-common/utils/decorators";
import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
const UserPayment = EmberObject.extend({
@discourseComputed("amount")
diff --git a/assets/javascripts/discourse/models/user-subscription.js b/assets/javascripts/discourse/models/user-subscription.js
index 7709ae3..b815da9 100644
--- a/assets/javascripts/discourse/models/user-subscription.js
+++ b/assets/javascripts/discourse/models/user-subscription.js
@@ -1,8 +1,8 @@
import EmberObject from "@ember/object";
-import discourseComputed from "discourse-common/utils/decorators";
import { ajax } from "discourse/lib/ajax";
-import Plan from "discourse/plugins/discourse-subscriptions/discourse/models/plan";
+import discourseComputed from "discourse-common/utils/decorators";
import I18n from "I18n";
+import Plan from "discourse/plugins/discourse-subscriptions/discourse/models/plan";
const UserSubscription = EmberObject.extend({
@discourseComputed("status")
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-coupons.js b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-coupons.js
index eb1a545..369e454 100644
--- a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-coupons.js
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-coupons.js
@@ -1,6 +1,6 @@
+import { action } from "@ember/object";
import Route from "@ember/routing/route";
import AdminCoupon from "discourse/plugins/discourse-subscriptions/discourse/models/admin-coupon";
-import { action } from "@ember/object";
export default Route.extend({
model() {
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-index.js b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-index.js
index 38793e9..af5635d 100644
--- a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-index.js
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-index.js
@@ -1,8 +1,8 @@
-import Route from "@ember/routing/route";
-import AdminProduct from "discourse/plugins/discourse-subscriptions/discourse/models/admin-product";
-import I18n from "I18n";
import { action } from "@ember/object";
+import Route from "@ember/routing/route";
import { inject as service } from "@ember/service";
+import I18n from "I18n";
+import AdminProduct from "discourse/plugins/discourse-subscriptions/discourse/models/admin-product";
export default Route.extend({
dialog: service(),
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-show-plans-show.js b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-show-plans-show.js
index 0cb3ab7..495f19c 100644
--- a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-show-plans-show.js
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-show-plans-show.js
@@ -1,7 +1,7 @@
import Route from "@ember/routing/route";
-import AdminPlan from "discourse/plugins/discourse-subscriptions/discourse/models/admin-plan";
-import Group from "discourse/models/group";
import { hash } from "rsvp";
+import Group from "discourse/models/group";
+import AdminPlan from "discourse/plugins/discourse-subscriptions/discourse/models/admin-plan";
export default Route.extend({
model(params) {
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-show.js b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-show.js
index 028074f..facadf3 100644
--- a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-show.js
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-show.js
@@ -1,10 +1,10 @@
-import Route from "@ember/routing/route";
-import AdminProduct from "discourse/plugins/discourse-subscriptions/discourse/models/admin-product";
-import AdminPlan from "discourse/plugins/discourse-subscriptions/discourse/models/admin-plan";
-import I18n from "I18n";
-import { hash } from "rsvp";
import { action } from "@ember/object";
+import Route from "@ember/routing/route";
import { inject as service } from "@ember/service";
+import { hash } from "rsvp";
+import I18n from "I18n";
+import AdminPlan from "discourse/plugins/discourse-subscriptions/discourse/models/admin-plan";
+import AdminProduct from "discourse/plugins/discourse-subscriptions/discourse/models/admin-product";
export default Route.extend({
dialog: service(),
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions.js b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions.js
index 4ff8f56..97e416c 100644
--- a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions.js
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions.js
@@ -1,5 +1,5 @@
-import Route from "@ember/routing/route";
import { action } from "@ember/object";
+import Route from "@ember/routing/route";
import { inject as service } from "@ember/service";
export default Route.extend({
diff --git a/assets/javascripts/discourse/routes/subscribe-index.js b/assets/javascripts/discourse/routes/subscribe-index.js
index 8923fdf..4483df4 100644
--- a/assets/javascripts/discourse/routes/subscribe-index.js
+++ b/assets/javascripts/discourse/routes/subscribe-index.js
@@ -1,6 +1,6 @@
import Route from "@ember/routing/route";
-import Product from "discourse/plugins/discourse-subscriptions/discourse/models/product";
import { inject as service } from "@ember/service";
+import Product from "discourse/plugins/discourse-subscriptions/discourse/models/product";
export default Route.extend({
router: service(),
diff --git a/assets/javascripts/discourse/routes/subscribe-show.js b/assets/javascripts/discourse/routes/subscribe-show.js
index b371868..0b2255e 100644
--- a/assets/javascripts/discourse/routes/subscribe-show.js
+++ b/assets/javascripts/discourse/routes/subscribe-show.js
@@ -1,6 +1,6 @@
import Route from "@ember/routing/route";
-import Product from "discourse/plugins/discourse-subscriptions/discourse/models/product";
import Plan from "discourse/plugins/discourse-subscriptions/discourse/models/plan";
+import Product from "discourse/plugins/discourse-subscriptions/discourse/models/product";
import Subscription from "discourse/plugins/discourse-subscriptions/discourse/models/subscription";
export default Route.extend({
diff --git a/assets/javascripts/discourse/routes/user-billing-subscriptions-index.js b/assets/javascripts/discourse/routes/user-billing-subscriptions-index.js
index 0debc89..bc567c5 100644
--- a/assets/javascripts/discourse/routes/user-billing-subscriptions-index.js
+++ b/assets/javascripts/discourse/routes/user-billing-subscriptions-index.js
@@ -1,8 +1,8 @@
-import Route from "@ember/routing/route";
-import UserSubscription from "discourse/plugins/discourse-subscriptions/discourse/models/user-subscription";
-import I18n from "I18n";
import { action } from "@ember/object";
+import Route from "@ember/routing/route";
import { inject as service } from "@ember/service";
+import I18n from "I18n";
+import UserSubscription from "discourse/plugins/discourse-subscriptions/discourse/models/user-subscription";
export default Route.extend({
dialog: service(),
diff --git a/assets/javascripts/discourse/routes/user-billing.js b/assets/javascripts/discourse/routes/user-billing.js
index 25018c7..d1c1ac3 100644
--- a/assets/javascripts/discourse/routes/user-billing.js
+++ b/assets/javascripts/discourse/routes/user-billing.js
@@ -1,11 +1,14 @@
import Route from "@ember/routing/route";
+import { inject as service } from "@ember/service";
export default Route.extend({
+ router: service(),
+
templateName: "user/billing",
setupController(controller, model) {
if (this.currentUser.id !== this.modelFor("user").id) {
- this.replaceWith("userActivity");
+ this.router.replaceWith("userActivity");
} else {
controller.setProperties({ model });
}
diff --git a/assets/javascripts/discourse/templates/user/billing.hbs b/assets/javascripts/discourse/templates/user/billing.hbs
index 42ff18c..1d6086f 100644
--- a/assets/javascripts/discourse/templates/user/billing.hbs
+++ b/assets/javascripts/discourse/templates/user/billing.hbs
@@ -1,12 +1,10 @@
-
+{{body-class "user-billing-page"}}
+
+
+
{{outlet}}
diff --git a/lib/tasks/subscriptions_import.rake b/lib/tasks/subscriptions_import.rake
index 9c78ab7..3dd116f 100644
--- a/lib/tasks/subscriptions_import.rake
+++ b/lib/tasks/subscriptions_import.rake
@@ -90,14 +90,14 @@ def import_subscriptions(procourse_import)
product_ids = DiscourseSubscriptions::Product.all.pluck(:external_id)
all_customers = get_stripe_customers
- puts "Total available Stripe Customers: #{all_customers.length.to_s}, the first of which is customer id: #{all_customers[0][:description]}"
+ puts "Total available Stripe Customers: #{all_customers.length}, the first of which is customer id: #{all_customers[0][:description]}"
subscriptions = get_stripe_subscriptions
- puts "Total Active Subscriptions available: #{subscriptions.length.to_s}"
+ puts "Total Active Subscriptions available: #{subscriptions.length}"
subscriptions_for_products =
subscriptions.select { |sub| product_ids.include?(sub[:items][:data][0][:price][:product]) }
- puts "Total Subscriptions matching Products to Import: #{subscriptions_for_products.length.to_s}"
+ puts "Total Subscriptions matching Products to Import: #{subscriptions_for_products.length}"
subscriptions_for_products.each do |subscription|
product_id = subscription[:items][:data][0][:plan][:product]
diff --git a/package.json b/package.json
index 43f8c31..69e06f9 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,10 @@
{
"name": "discourse-subscriptions",
- "version": "1.0.0",
- "repository": "https://github.com/discourse/discourse-subscriptions",
- "author": "Discourse",
- "license": "MIT",
+ "private": true,
"devDependencies": {
- "eslint-config-discourse": "^3.4.0"
+ "@discourse/lint-configs": "^1.3.5",
+ "ember-template-lint": "^5.13.0",
+ "eslint": "^8.56.0",
+ "prettier": "^2.8.8"
}
}
diff --git a/plugin.rb b/plugin.rb
index c745f0f..c39b69a 100644
--- a/plugin.rb
+++ b/plugin.rb
@@ -6,7 +6,6 @@
# version: 2.8.1
# url: https://github.com/discourse/discourse-subscriptions
# authors: Rimian Perkins, Justin DiRose
-# transpile_js: true
enabled_site_setting :discourse_subscriptions_enabled
diff --git a/spec/models/customer_spec.rb b/spec/models/customer_spec.rb
index 7f4e826..a760ee0 100644
--- a/spec/models/customer_spec.rb
+++ b/spec/models/customer_spec.rb
@@ -2,25 +2,23 @@
require "rails_helper"
-module DiscourseSubscriptions
- RSpec.describe Customer do
- let(:user) { Fabricate(:user) }
- let(:stripe_customer) { { id: "cus_id4567" } }
+RSpec.describe DiscourseSubscriptions::Customer do
+ let(:user) { Fabricate(:user) }
+ let(:stripe_customer) { { id: "cus_id4567" } }
- it "has a table name" do
- expect(described_class.table_name).to eq "discourse_subscriptions_customers"
- end
+ it "has a table name" do
+ expect(described_class.table_name).to eq "discourse_subscriptions_customers"
+ end
- it "creates" do
- customer = described_class.create_customer(user, stripe_customer)
- expect(customer.customer_id).to eq "cus_id4567"
- expect(customer.user_id).to eq user.id
- end
+ it "creates" do
+ customer = described_class.create_customer(user, stripe_customer)
+ expect(customer.customer_id).to eq "cus_id4567"
+ expect(customer.user_id).to eq user.id
+ end
- it "has a user scope" do
- described_class.create_customer(user, stripe_customer)
- customer = described_class.find_user(user)
- expect(customer.customer_id).to eq "cus_id4567"
- end
+ it "has a user scope" do
+ described_class.create_customer(user, stripe_customer)
+ customer = described_class.find_user(user)
+ expect(customer.customer_id).to eq "cus_id4567"
end
end
diff --git a/spec/requests/admin/coupons_controller_spec.rb b/spec/requests/admin/coupons_controller_spec.rb
index 078726c..749793d 100644
--- a/spec/requests/admin/coupons_controller_spec.rb
+++ b/spec/requests/admin/coupons_controller_spec.rb
@@ -2,87 +2,83 @@
require "rails_helper"
-module DiscourseSubscriptions
- RSpec.describe Admin::CouponsController do
- it "is a subclass of AdminController" do
- expect(DiscourseSubscriptions::Admin::CouponsController < ::Admin::AdminController).to eq(
- true,
- )
- end
+RSpec.describe DiscourseSubscriptions::Admin::CouponsController do
+ it "is a subclass of AdminController" do
+ expect(DiscourseSubscriptions::Admin::CouponsController < ::Admin::AdminController).to eq(true)
+ end
+
+ context "when unauthenticated" do
+ it "does nothing" do
+ ::Stripe::PromotionCode.expects(:list).never
+ get "/s/admin/coupons.json"
+ expect(response.status).to eq(404)
+ end
+ end
+
+ context "when authenticated" do
+ let(:admin) { Fabricate(:admin) }
+
+ before { sign_in(admin) }
+
+ describe "#index" do
+ it "returns a list of promo codes" do
+ ::Stripe::PromotionCode
+ .expects(:list)
+ .with({ limit: 100 })
+ .returns({ data: [{ id: "promo_123", coupon: { valid: true } }] })
- context "when unauthenticated" do
- it "does nothing" do
- ::Stripe::PromotionCode.expects(:list).never
get "/s/admin/coupons.json"
- expect(response.status).to eq(404)
+ expect(response.status).to eq(200)
+ expect(response.parsed_body[0]["id"]).to eq("promo_123")
+ end
+
+ it "only returns valid promo codes" do
+ ::Stripe::PromotionCode
+ .expects(:list)
+ .with({ limit: 100 })
+ .returns({ data: [{ id: "promo_123", coupon: { valid: false } }] })
+
+ get "/s/admin/coupons.json"
+ expect(response.status).to eq(200)
+ expect(response.parsed_body).to be_blank
end
end
- context "when authenticated" do
- let(:admin) { Fabricate(:admin) }
+ describe "#create" do
+ it "creates a coupon with an amount off" do
+ ::Stripe::Coupon.expects(:create).returns(id: "coup_123")
+ ::Stripe::PromotionCode.expects(:create).returns(
+ { code: "p123", coupon: { amount_off: 2000 } },
+ )
- before { sign_in(admin) }
-
- describe "#index" do
- it "returns a list of promo codes" do
- ::Stripe::PromotionCode
- .expects(:list)
- .with({ limit: 100 })
- .returns({ data: [{ id: "promo_123", coupon: { valid: true } }] })
-
- get "/s/admin/coupons.json"
- expect(response.status).to eq(200)
- expect(response.parsed_body[0]["id"]).to eq("promo_123")
- end
-
- it "only returns valid promo codes" do
- ::Stripe::PromotionCode
- .expects(:list)
- .with({ limit: 100 })
- .returns({ data: [{ id: "promo_123", coupon: { valid: false } }] })
-
- get "/s/admin/coupons.json"
- expect(response.status).to eq(200)
- expect(response.parsed_body).to be_blank
- end
+ post "/s/admin/coupons.json",
+ params: {
+ promo: "p123",
+ discount_type: "amount",
+ discount: "2000",
+ active: true,
+ }
+ expect(response.status).to eq(200)
+ expect(response.parsed_body["code"]).to eq("p123")
+ expect(response.parsed_body["coupon"]["amount_off"]).to eq(2000)
end
- describe "#create" do
- it "creates a coupon with an amount off" do
- ::Stripe::Coupon.expects(:create).returns(id: "coup_123")
- ::Stripe::PromotionCode.expects(:create).returns(
- { code: "p123", coupon: { amount_off: 2000 } },
- )
+ it "creates a coupon with a percent off" do
+ ::Stripe::Coupon.expects(:create).returns(id: "coup_123")
+ ::Stripe::PromotionCode.expects(:create).returns(
+ { code: "p123", coupon: { percent_off: 20 } },
+ )
- post "/s/admin/coupons.json",
- params: {
- promo: "p123",
- discount_type: "amount",
- discount: "2000",
- active: true,
- }
- expect(response.status).to eq(200)
- expect(response.parsed_body["code"]).to eq("p123")
- expect(response.parsed_body["coupon"]["amount_off"]).to eq(2000)
- end
-
- it "creates a coupon with a percent off" do
- ::Stripe::Coupon.expects(:create).returns(id: "coup_123")
- ::Stripe::PromotionCode.expects(:create).returns(
- { code: "p123", coupon: { percent_off: 20 } },
- )
-
- post "/s/admin/coupons.json",
- params: {
- promo: "p123",
- discount_type: "percent",
- discount: "20",
- active: true,
- }
- expect(response.status).to eq(200)
- expect(response.parsed_body["code"]).to eq("p123")
- expect(response.parsed_body["coupon"]["percent_off"]).to eq(20)
- end
+ post "/s/admin/coupons.json",
+ params: {
+ promo: "p123",
+ discount_type: "percent",
+ discount: "20",
+ active: true,
+ }
+ expect(response.status).to eq(200)
+ expect(response.parsed_body["code"]).to eq("p123")
+ expect(response.parsed_body["coupon"]["percent_off"]).to eq(20)
end
end
end
diff --git a/spec/requests/admin/plans_controller_spec.rb b/spec/requests/admin/plans_controller_spec.rb
index c4b546a..79d348e 100644
--- a/spec/requests/admin/plans_controller_spec.rb
+++ b/spec/requests/admin/plans_controller_spec.rb
@@ -2,172 +2,166 @@
require "rails_helper"
-module DiscourseSubscriptions
- module Admin
- RSpec.describe PlansController do
- it "is a subclass of AdminController" do
- expect(DiscourseSubscriptions::Admin::PlansController < ::Admin::AdminController).to eq(
- true,
- )
+RSpec.describe DiscourseSubscriptions::Admin::PlansController do
+ it "is a subclass of AdminController" do
+ expect(DiscourseSubscriptions::Admin::PlansController < ::Admin::AdminController).to eq(true)
+ end
+
+ context "when not authenticated" do
+ describe "index" do
+ it "does not get the plans" do
+ ::Stripe::Price.expects(:list).never
+ get "/s/admin/plans.json"
end
- context "when not authenticated" do
- describe "index" do
- it "does not get the plans" do
- ::Stripe::Price.expects(:list).never
- get "/s/admin/plans.json"
- end
+ it "not ok" do
+ get "/s/admin/plans.json"
+ expect(response.status).to eq 404
+ end
+ end
- it "not ok" do
- get "/s/admin/plans.json"
- expect(response.status).to eq 404
- end
- end
-
- describe "create" do
- it "does not create a plan" do
- ::Stripe::Price.expects(:create).never
- post "/s/admin/plans.json", params: { name: "Rick Astley", amount: 1, interval: "week" }
- end
-
- it "is not ok" do
- post "/s/admin/plans.json", params: { name: "Rick Astley", amount: 1, interval: "week" }
- expect(response.status).to eq 404
- end
- end
-
- describe "show" do
- it "does not show the plan" do
- ::Stripe::Price.expects(:retrieve).never
- get "/s/admin/plans/plan_12345.json"
- end
-
- it "is not ok" do
- get "/s/admin/plans/plan_12345.json"
- expect(response.status).to eq 404
- end
- end
-
- describe "update" do
- it "does not update a plan" do
- ::Stripe::Price.expects(:update).never
- delete "/s/admin/plans/plan_12345.json"
- end
- end
+ describe "create" do
+ it "does not create a plan" do
+ ::Stripe::Price.expects(:create).never
+ post "/s/admin/plans.json", params: { name: "Rick Astley", amount: 1, interval: "week" }
end
- context "when authenticated" do
- let(:admin) { Fabricate(:admin) }
+ it "is not ok" do
+ post "/s/admin/plans.json", params: { name: "Rick Astley", amount: 1, interval: "week" }
+ expect(response.status).to eq 404
+ end
+ end
- before { sign_in(admin) }
+ describe "show" do
+ it "does not show the plan" do
+ ::Stripe::Price.expects(:retrieve).never
+ get "/s/admin/plans/plan_12345.json"
+ end
- describe "index" do
- it "lists the plans" do
- ::Stripe::Price.expects(:list).with(nil)
- get "/s/admin/plans.json"
- end
+ it "is not ok" do
+ get "/s/admin/plans/plan_12345.json"
+ expect(response.status).to eq 404
+ end
+ end
- it "lists the plans for the product" do
- ::Stripe::Price.expects(:list).with({ product: "prod_id123" })
- get "/s/admin/plans.json", params: { product_id: "prod_id123" }
- end
- end
+ describe "update" do
+ it "does not update a plan" do
+ ::Stripe::Price.expects(:update).never
+ delete "/s/admin/plans/plan_12345.json"
+ end
+ end
+ end
- describe "show" do
- it "shows a plan" do
- ::Stripe::Price.expects(:retrieve).with("plan_12345").returns(currency: "aud")
- get "/s/admin/plans/plan_12345.json"
- expect(response.status).to eq 200
- end
+ context "when authenticated" do
+ let(:admin) { Fabricate(:admin) }
- it "upcases the currency" do
- ::Stripe::Price
- .expects(:retrieve)
- .with("plan_12345")
- .returns(currency: "aud", recurring: { interval: "year" })
- get "/s/admin/plans/plan_12345.json"
+ before { sign_in(admin) }
- plan = response.parsed_body
- expect(plan["currency"]).to eq "AUD"
- expect(plan["interval"]).to eq "year"
- end
- end
+ describe "index" do
+ it "lists the plans" do
+ ::Stripe::Price.expects(:list).with(nil)
+ get "/s/admin/plans.json"
+ end
- describe "create" do
- it "creates a plan with a nickname" do
- ::Stripe::Price.expects(:create).with(has_entry(:nickname, "Veg"))
- post "/s/admin/plans.json", params: { nickname: "Veg", metadata: { group_name: "" } }
- end
+ it "lists the plans for the product" do
+ ::Stripe::Price.expects(:list).with({ product: "prod_id123" })
+ get "/s/admin/plans.json", params: { product_id: "prod_id123" }
+ end
+ end
- it "creates a plan with a currency" do
- ::Stripe::Price.expects(:create).with(has_entry(:currency, "AUD"))
- post "/s/admin/plans.json", params: { currency: "AUD", metadata: { group_name: "" } }
- end
+ describe "show" do
+ it "shows a plan" do
+ ::Stripe::Price.expects(:retrieve).with("plan_12345").returns(currency: "aud")
+ get "/s/admin/plans/plan_12345.json"
+ expect(response.status).to eq 200
+ end
- it "creates a plan with an interval" do
- ::Stripe::Price.expects(:create).with(has_entry(recurring: { interval: "week" }))
- post "/s/admin/plans.json",
- params: {
- type: "recurring",
- interval: "week",
- metadata: {
- group_name: "",
- },
- }
- end
+ it "upcases the currency" do
+ ::Stripe::Price
+ .expects(:retrieve)
+ .with("plan_12345")
+ .returns(currency: "aud", recurring: { interval: "year" })
+ get "/s/admin/plans/plan_12345.json"
- it "creates a plan as a one-time purchase" do
- ::Stripe::Price.expects(:create).with(Not(has_key(:recurring)))
- post "/s/admin/plans.json", params: { metadata: { group_name: "" } }
- end
+ plan = response.parsed_body
+ expect(plan["currency"]).to eq "AUD"
+ expect(plan["interval"]).to eq "year"
+ end
+ end
- it "creates a plan with an amount" do
- ::Stripe::Price.expects(:create).with(has_entry(:unit_amount, "102"))
- post "/s/admin/plans.json", params: { amount: "102", metadata: { group_name: "" } }
- end
+ describe "create" do
+ it "creates a plan with a nickname" do
+ ::Stripe::Price.expects(:create).with(has_entry(:nickname, "Veg"))
+ post "/s/admin/plans.json", params: { nickname: "Veg", metadata: { group_name: "" } }
+ end
- it "creates a plan with a product" do
- ::Stripe::Price.expects(:create).with(has_entry(product: "prod_walterwhite"))
- post "/s/admin/plans.json",
- params: {
- product: "prod_walterwhite",
- metadata: {
- group_name: "",
- },
- }
- end
+ it "creates a plan with a currency" do
+ ::Stripe::Price.expects(:create).with(has_entry(:currency, "AUD"))
+ post "/s/admin/plans.json", params: { currency: "AUD", metadata: { group_name: "" } }
+ end
- it "creates a plan with an active status" do
- ::Stripe::Price.expects(:create).with(has_entry(:active, "false"))
- post "/s/admin/plans.json", params: { active: "false", metadata: { group_name: "" } }
- end
+ it "creates a plan with an interval" do
+ ::Stripe::Price.expects(:create).with(has_entry(recurring: { interval: "week" }))
+ post "/s/admin/plans.json",
+ params: {
+ type: "recurring",
+ interval: "week",
+ metadata: {
+ group_name: "",
+ },
+ }
+ end
- # TODO: Need to fix the metadata tests
- # I think mocha has issues with the metadata fields here.
+ it "creates a plan as a one-time purchase" do
+ ::Stripe::Price.expects(:create).with(Not(has_key(:recurring)))
+ post "/s/admin/plans.json", params: { metadata: { group_name: "" } }
+ end
- #it 'has metadata' do
- # ::Stripe::Price.expects(:create).with(has_entry(:group_name, "discourse-user-group-name"))
- # post "/s/admin/plans.json", params: { amount: "100", metadata: { group_name: 'discourse-user-group-name' } }
- #end
+ it "creates a plan with an amount" do
+ ::Stripe::Price.expects(:create).with(has_entry(:unit_amount, "102"))
+ post "/s/admin/plans.json", params: { amount: "102", metadata: { group_name: "" } }
+ end
- #it "creates a plan with a trial period" do
- # ::Stripe::Price.expects(:create).with(has_entry(trial_period_days: '14'))
- # post "/s/admin/plans.json", params: { trial_period_days: '14' }
- #end
- end
+ it "creates a plan with a product" do
+ ::Stripe::Price.expects(:create).with(has_entry(product: "prod_walterwhite"))
+ post "/s/admin/plans.json",
+ params: {
+ product: "prod_walterwhite",
+ metadata: {
+ group_name: "",
+ },
+ }
+ end
- describe "update" do
- it "updates a plan" do
- ::Stripe::Price.expects(:update)
- patch "/s/admin/plans/plan_12345.json",
- params: {
- trial_period_days: "14",
- metadata: {
- group_name: "discourse-user-group-name",
- },
- }
- end
- end
+ it "creates a plan with an active status" do
+ ::Stripe::Price.expects(:create).with(has_entry(:active, "false"))
+ post "/s/admin/plans.json", params: { active: "false", metadata: { group_name: "" } }
+ end
+
+ # TODO: Need to fix the metadata tests
+ # I think mocha has issues with the metadata fields here.
+
+ #it 'has metadata' do
+ # ::Stripe::Price.expects(:create).with(has_entry(:group_name, "discourse-user-group-name"))
+ # post "/s/admin/plans.json", params: { amount: "100", metadata: { group_name: 'discourse-user-group-name' } }
+ #end
+
+ #it "creates a plan with a trial period" do
+ # ::Stripe::Price.expects(:create).with(has_entry(trial_period_days: '14'))
+ # post "/s/admin/plans.json", params: { trial_period_days: '14' }
+ #end
+ end
+
+ describe "update" do
+ it "updates a plan" do
+ ::Stripe::Price.expects(:update)
+ patch "/s/admin/plans/plan_12345.json",
+ params: {
+ trial_period_days: "14",
+ metadata: {
+ group_name: "discourse-user-group-name",
+ },
+ }
end
end
end
diff --git a/spec/requests/admin/products_controller_spec.rb b/spec/requests/admin/products_controller_spec.rb
index 541e821..f9f1650 100644
--- a/spec/requests/admin/products_controller_spec.rb
+++ b/spec/requests/admin/products_controller_spec.rb
@@ -2,132 +2,126 @@
require "rails_helper"
-module DiscourseSubscriptions
- module Admin
- RSpec.describe ProductsController do
- it "is a subclass of AdminController" do
- expect(DiscourseSubscriptions::Admin::ProductsController < ::Admin::AdminController).to eq(
- true,
+RSpec.describe DiscourseSubscriptions::Admin::ProductsController do
+ it "is a subclass of AdminController" do
+ expect(DiscourseSubscriptions::Admin::ProductsController < ::Admin::AdminController).to eq(true)
+ end
+
+ context "when unauthenticated" do
+ it "does not list the products" do
+ ::Stripe::Product.expects(:list).never
+ get "/s/admin/products.json"
+ expect(response.status).to eq(404)
+ end
+
+ it "does not create the product" do
+ ::Stripe::Product.expects(:create).never
+ post "/s/admin/products.json"
+ expect(response.status).to eq(404)
+ end
+
+ it "does not show the product" do
+ ::Stripe::Product.expects(:retrieve).never
+ get "/s/admin/products/prod_qwerty123.json"
+ expect(response.status).to eq(404)
+ end
+
+ it "does not update the product" do
+ ::Stripe::Product.expects(:update).never
+ put "/s/admin/products/prod_qwerty123.json"
+ expect(response.status).to eq(404)
+ end
+
+ it "does not delete the product" do
+ ::Stripe::Product.expects(:delete).never
+ delete "/s/admin/products/u2.json"
+ expect(response.status).to eq(404)
+ end
+ end
+
+ context "when authenticated" do
+ let(:admin) { Fabricate(:admin) }
+
+ before { sign_in(admin) }
+
+ describe "index" do
+ it "gets the empty products" do
+ SiteSetting.discourse_subscriptions_public_key = "public-key"
+ SiteSetting.discourse_subscriptions_secret_key = "secret-key"
+ get "/s/admin/products.json"
+ expect(response.parsed_body).to be_empty
+ end
+ end
+
+ describe "create" do
+ it "is of product type service" do
+ ::Stripe::Product.expects(:create).with(has_entry(:type, "service"))
+ post "/s/admin/products.json", params: {}
+ end
+
+ it "has a name" do
+ ::Stripe::Product.expects(:create).with(has_entry(:name, "Jesse Pinkman"))
+ post "/s/admin/products.json", params: { name: "Jesse Pinkman" }
+ end
+
+ it "has an active attribute" do
+ ::Stripe::Product.expects(:create).with(has_entry(active: "false"))
+ post "/s/admin/products.json", params: { active: "false" }
+ end
+
+ it "has a statement descriptor" do
+ ::Stripe::Product.expects(:create).with(
+ has_entry(statement_descriptor: "Blessed are the cheesemakers"),
)
+ post "/s/admin/products.json",
+ params: {
+ statement_descriptor: "Blessed are the cheesemakers",
+ }
end
- context "when unauthenticated" do
- it "does not list the products" do
- ::Stripe::Product.expects(:list).never
- get "/s/admin/products.json"
- expect(response.status).to eq(404)
- end
-
- it "does not create the product" do
- ::Stripe::Product.expects(:create).never
- post "/s/admin/products.json"
- expect(response.status).to eq(404)
- end
-
- it "does not show the product" do
- ::Stripe::Product.expects(:retrieve).never
- get "/s/admin/products/prod_qwerty123.json"
- expect(response.status).to eq(404)
- end
-
- it "does not update the product" do
- ::Stripe::Product.expects(:update).never
- put "/s/admin/products/prod_qwerty123.json"
- expect(response.status).to eq(404)
- end
-
- it "does not delete the product" do
- ::Stripe::Product.expects(:delete).never
- delete "/s/admin/products/u2.json"
- expect(response.status).to eq(404)
- end
+ it "has no statement descriptor if empty" do
+ ::Stripe::Product.expects(:create).with(has_key(:statement_descriptor)).never
+ post "/s/admin/products.json", params: { statement_descriptor: "" }
end
- context "when authenticated" do
- let(:admin) { Fabricate(:admin) }
+ it "has metadata" do
+ ::Stripe::Product.expects(:create).with(
+ has_entry(
+ metadata: {
+ description: "Oi, I think he just said bless be all the bignoses!",
+ repurchaseable: "false",
+ },
+ ),
+ )
- before { sign_in(admin) }
+ post "/s/admin/products.json",
+ params: {
+ metadata: {
+ description: "Oi, I think he just said bless be all the bignoses!",
+ repurchaseable: "false",
+ },
+ }
+ end
+ end
- describe "index" do
- it "gets the empty products" do
- SiteSetting.discourse_subscriptions_public_key = "public-key"
- SiteSetting.discourse_subscriptions_secret_key = "secret-key"
- get "/s/admin/products.json"
- expect(response.parsed_body).to be_empty
- end
- end
+ describe "show" do
+ it "retrieves the product" do
+ ::Stripe::Product.expects(:retrieve).with("prod_walterwhite")
+ get "/s/admin/products/prod_walterwhite.json"
+ end
+ end
- describe "create" do
- it "is of product type service" do
- ::Stripe::Product.expects(:create).with(has_entry(:type, "service"))
- post "/s/admin/products.json", params: {}
- end
+ describe "update" do
+ it "updates the product" do
+ ::Stripe::Product.expects(:update)
+ patch "/s/admin/products/prod_walterwhite.json", params: {}
+ end
+ end
- it "has a name" do
- ::Stripe::Product.expects(:create).with(has_entry(:name, "Jesse Pinkman"))
- post "/s/admin/products.json", params: { name: "Jesse Pinkman" }
- end
-
- it "has an active attribute" do
- ::Stripe::Product.expects(:create).with(has_entry(active: "false"))
- post "/s/admin/products.json", params: { active: "false" }
- end
-
- it "has a statement descriptor" do
- ::Stripe::Product.expects(:create).with(
- has_entry(statement_descriptor: "Blessed are the cheesemakers"),
- )
- post "/s/admin/products.json",
- params: {
- statement_descriptor: "Blessed are the cheesemakers",
- }
- end
-
- it "has no statement descriptor if empty" do
- ::Stripe::Product.expects(:create).with(has_key(:statement_descriptor)).never
- post "/s/admin/products.json", params: { statement_descriptor: "" }
- end
-
- it "has metadata" do
- ::Stripe::Product.expects(:create).with(
- has_entry(
- metadata: {
- description: "Oi, I think he just said bless be all the bignoses!",
- repurchaseable: "false",
- },
- ),
- )
-
- post "/s/admin/products.json",
- params: {
- metadata: {
- description: "Oi, I think he just said bless be all the bignoses!",
- repurchaseable: "false",
- },
- }
- end
- end
-
- describe "show" do
- it "retrieves the product" do
- ::Stripe::Product.expects(:retrieve).with("prod_walterwhite")
- get "/s/admin/products/prod_walterwhite.json"
- end
- end
-
- describe "update" do
- it "updates the product" do
- ::Stripe::Product.expects(:update)
- patch "/s/admin/products/prod_walterwhite.json", params: {}
- end
- end
-
- describe "delete" do
- it "deletes the product" do
- ::Stripe::Product.expects(:delete).with("prod_walterwhite")
- delete "/s/admin/products/prod_walterwhite.json"
- end
- end
+ describe "delete" do
+ it "deletes the product" do
+ ::Stripe::Product.expects(:delete).with("prod_walterwhite")
+ delete "/s/admin/products/prod_walterwhite.json"
end
end
end
diff --git a/spec/requests/admin/subscriptions_controller_spec.rb b/spec/requests/admin/subscriptions_controller_spec.rb
index 82ec198..488cfba 100644
--- a/spec/requests/admin/subscriptions_controller_spec.rb
+++ b/spec/requests/admin/subscriptions_controller_spec.rb
@@ -2,141 +2,139 @@
require "rails_helper"
-module DiscourseSubscriptions
- RSpec.describe Admin::SubscriptionsController do
- it "is a subclass of AdminController" do
- expect(
- DiscourseSubscriptions::Admin::SubscriptionsController < ::Admin::AdminController,
- ).to eq(true)
+RSpec.describe DiscourseSubscriptions::Admin::SubscriptionsController do
+ it "is a subclass of AdminController" do
+ expect(DiscourseSubscriptions::Admin::SubscriptionsController < ::Admin::AdminController).to eq(
+ true,
+ )
+ end
+
+ let(:user) { Fabricate(:user) }
+ let(:customer) do
+ Fabricate(:customer, user_id: user.id, customer_id: "c_123", product_id: "pr_34578")
+ end
+
+ before do
+ Fabricate(:subscription, external_id: "sub_12345", customer_id: customer.id)
+ Fabricate(:subscription, external_id: "sub_77777", customer_id: customer.id)
+ end
+
+ context "when unauthenticated" do
+ it "does nothing" do
+ ::Stripe::Subscription.expects(:list).never
+ get "/s/admin/subscriptions.json"
+ expect(response.status).to eq(404)
end
- let(:user) { Fabricate(:user) }
- let(:customer) do
- Fabricate(:customer, user_id: user.id, customer_id: "c_123", product_id: "pr_34578")
+ it "does not destroy a subscription" do
+ ::Stripe::Subscription.expects(:delete).never
+ patch "/s/admin/subscriptions/sub_12345.json"
end
+ end
- before do
- Fabricate(:subscription, external_id: "sub_12345", customer_id: customer.id)
- Fabricate(:subscription, external_id: "sub_77777", customer_id: customer.id)
- end
+ context "when authenticated" do
+ let(:admin) { Fabricate(:admin) }
- context "when unauthenticated" do
- it "does nothing" do
- ::Stripe::Subscription.expects(:list).never
+ before { sign_in(admin) }
+
+ describe "index" do
+ before do
+ SiteSetting.discourse_subscriptions_public_key = "public-key"
+ SiteSetting.discourse_subscriptions_secret_key = "secret-key"
+ end
+
+ it "gets the subscriptions and products" do
+ ::Stripe::Subscription
+ .expects(:list)
+ .with(expand: ["data.plan.product"], limit: 10, starting_after: nil)
+ .returns(has_more: false, data: [{ id: "sub_12345" }, { id: "sub_nope" }])
get "/s/admin/subscriptions.json"
- expect(response.status).to eq(404)
+ subscriptions = response.parsed_body["data"][0]["id"]
+
+ expect(response.status).to eq(200)
+ expect(subscriptions).to eq("sub_12345")
end
- it "does not destroy a subscription" do
- ::Stripe::Subscription.expects(:delete).never
- patch "/s/admin/subscriptions/sub_12345.json"
+ it "handles starting at a different point in the set" do
+ ::Stripe::Subscription
+ .expects(:list)
+ .with(expand: ["data.plan.product"], limit: 10, starting_after: "sub_nope")
+ .returns(has_more: false, data: [{ id: "sub_77777" }, { id: "sub_yepnoep" }])
+ get "/s/admin/subscriptions.json", params: { last_record: "sub_nope" }
+ subscriptions = response.parsed_body["data"][0]["id"]
+
+ expect(response.status).to eq(200)
+ expect(subscriptions).to eq("sub_77777")
end
end
- context "when authenticated" do
- let(:admin) { Fabricate(:admin) }
+ describe "destroy" do
+ let(:group) { Fabricate(:group, name: "subscribers") }
- before { sign_in(admin) }
+ before { group.add(user) }
- describe "index" do
- before do
- SiteSetting.discourse_subscriptions_public_key = "public-key"
- SiteSetting.discourse_subscriptions_secret_key = "secret-key"
- end
+ it "deletes a customer" do
+ ::Stripe::Subscription
+ .expects(:delete)
+ .with("sub_12345")
+ .returns(plan: { product: "pr_34578" }, customer: "c_123")
- it "gets the subscriptions and products" do
- ::Stripe::Subscription
- .expects(:list)
- .with(expand: ["data.plan.product"], limit: 10, starting_after: nil)
- .returns(has_more: false, data: [{ id: "sub_12345" }, { id: "sub_nope" }])
- get "/s/admin/subscriptions.json"
- subscriptions = response.parsed_body["data"][0]["id"]
-
- expect(response.status).to eq(200)
- expect(subscriptions).to eq("sub_12345")
- end
-
- it "handles starting at a different point in the set" do
- ::Stripe::Subscription
- .expects(:list)
- .with(expand: ["data.plan.product"], limit: 10, starting_after: "sub_nope")
- .returns(has_more: false, data: [{ id: "sub_77777" }, { id: "sub_yepnoep" }])
- get "/s/admin/subscriptions.json", params: { last_record: "sub_nope" }
- subscriptions = response.parsed_body["data"][0]["id"]
-
- expect(response.status).to eq(200)
- expect(subscriptions).to eq("sub_77777")
- end
+ expect { delete "/s/admin/subscriptions/sub_12345.json" }.to change {
+ DiscourseSubscriptions::Customer.count
+ }.by(-1)
end
- describe "destroy" do
- let(:group) { Fabricate(:group, name: "subscribers") }
-
- before { group.add(user) }
-
- it "deletes a customer" do
- ::Stripe::Subscription
- .expects(:delete)
- .with("sub_12345")
- .returns(plan: { product: "pr_34578" }, customer: "c_123")
-
- expect { delete "/s/admin/subscriptions/sub_12345.json" }.to change {
- DiscourseSubscriptions::Customer.count
- }.by(-1)
- end
-
- it "removes the user from the group" do
- ::Stripe::Subscription
- .expects(:delete)
- .with("sub_12345")
- .returns(
- plan: {
- product: "pr_34578",
- metadata: {
- group_name: "subscribers",
- },
+ it "removes the user from the group" do
+ ::Stripe::Subscription
+ .expects(:delete)
+ .with("sub_12345")
+ .returns(
+ plan: {
+ product: "pr_34578",
+ metadata: {
+ group_name: "subscribers",
},
- customer: "c_123",
- )
+ },
+ customer: "c_123",
+ )
- expect { delete "/s/admin/subscriptions/sub_12345.json" }.to change {
- user.groups.count
- }.by(-1)
- end
+ expect { delete "/s/admin/subscriptions/sub_12345.json" }.to change {
+ user.groups.count
+ }.by(-1)
+ end
- it "does not remove the user from the group" do
- ::Stripe::Subscription
- .expects(:delete)
- .with("sub_12345")
- .returns(
- plan: {
- product: "pr_34578",
- metadata: {
- group_name: "group_does_not_exist",
- },
+ it "does not remove the user from the group" do
+ ::Stripe::Subscription
+ .expects(:delete)
+ .with("sub_12345")
+ .returns(
+ plan: {
+ product: "pr_34578",
+ metadata: {
+ group_name: "group_does_not_exist",
},
- customer: "c_123",
- )
+ },
+ customer: "c_123",
+ )
- expect { delete "/s/admin/subscriptions/sub_12345.json" }.not_to change {
- user.groups.count
- }
- end
+ expect { delete "/s/admin/subscriptions/sub_12345.json" }.not_to change {
+ user.groups.count
+ }
+ end
- it "refunds if params[:refund] present" do
- ::Stripe::Subscription
- .expects(:delete)
- .with("sub_12345")
- .returns(plan: { product: "pr_34578" }, customer: "c_123")
- ::Stripe::Subscription
- .expects(:retrieve)
- .with("sub_12345")
- .returns(latest_invoice: "in_123")
- ::Stripe::Invoice.expects(:retrieve).with("in_123").returns(payment_intent: "pi_123")
- ::Stripe::Refund.expects(:create).with({ payment_intent: "pi_123" })
+ it "refunds if params[:refund] present" do
+ ::Stripe::Subscription
+ .expects(:delete)
+ .with("sub_12345")
+ .returns(plan: { product: "pr_34578" }, customer: "c_123")
+ ::Stripe::Subscription
+ .expects(:retrieve)
+ .with("sub_12345")
+ .returns(latest_invoice: "in_123")
+ ::Stripe::Invoice.expects(:retrieve).with("in_123").returns(payment_intent: "pi_123")
+ ::Stripe::Refund.expects(:create).with({ payment_intent: "pi_123" })
- delete "/s/admin/subscriptions/sub_12345.json", params: { refund: true }
- end
+ delete "/s/admin/subscriptions/sub_12345.json", params: { refund: true }
end
end
end
diff --git a/spec/requests/admin_controller_spec.rb b/spec/requests/admin_controller_spec.rb
index cebf5db..e5b4697 100644
--- a/spec/requests/admin_controller_spec.rb
+++ b/spec/requests/admin_controller_spec.rb
@@ -2,19 +2,17 @@
require "rails_helper"
-module DiscourseSubscriptions
- RSpec.describe AdminController do
- let(:admin) { Fabricate(:admin) }
+RSpec.describe DiscourseSubscriptions::AdminController do
+ let(:admin) { Fabricate(:admin) }
- before { sign_in(admin) }
+ before { sign_in(admin) }
- it "is a subclass of AdminController" do
- expect(DiscourseSubscriptions::AdminController < ::Admin::AdminController).to eq(true)
- end
+ it "is a subclass of AdminController" do
+ expect(DiscourseSubscriptions::AdminController < ::Admin::AdminController).to eq(true)
+ end
- it "is ok" do
- get "/s/admin.json"
- expect(response.status).to eq(200)
- end
+ it "is ok" do
+ get "/s/admin.json"
+ expect(response.status).to eq(200)
end
end
diff --git a/spec/requests/hooks_controller_spec.rb b/spec/requests/hooks_controller_spec.rb
index b016607..08247f4 100644
--- a/spec/requests/hooks_controller_spec.rb
+++ b/spec/requests/hooks_controller_spec.rb
@@ -2,109 +2,105 @@
require "rails_helper"
-module DiscourseSubscriptions
- RSpec.describe HooksController do
- before { SiteSetting.discourse_subscriptions_webhook_secret = "zascharoo" }
+RSpec.describe DiscourseSubscriptions::HooksController do
+ before { SiteSetting.discourse_subscriptions_webhook_secret = "zascharoo" }
- it "contructs a webhook event" do
- payload = "we-want-a-shrubbery"
- headers = { HTTP_STRIPE_SIGNATURE: "stripe-webhook-signature" }
+ it "constructs a webhook event" do
+ payload = "we-want-a-shrubbery"
+ headers = { HTTP_STRIPE_SIGNATURE: "stripe-webhook-signature" }
- ::Stripe::Webhook
- .expects(:construct_event)
- .with("we-want-a-shrubbery", "stripe-webhook-signature", "zascharoo")
- .returns(type: "something")
+ ::Stripe::Webhook
+ .expects(:construct_event)
+ .with("we-want-a-shrubbery", "stripe-webhook-signature", "zascharoo")
+ .returns(type: "something")
- post "/s/hooks.json", params: payload, headers: headers
+ post "/s/hooks.json", params: payload, headers: headers
- expect(response.status).to eq 200
+ expect(response.status).to eq 200
+ end
+
+ describe "event types" do
+ let(:user) { Fabricate(:user) }
+ let(:customer) do
+ Fabricate(:customer, customer_id: "c_575768", product_id: "p_8654", user_id: user.id)
end
+ let(:group) { Fabricate(:group, name: "subscribers-group") }
- describe "event types" do
- let(:user) { Fabricate(:user) }
- let(:customer) do
- Fabricate(:customer, customer_id: "c_575768", product_id: "p_8654", user_id: user.id)
- end
- let(:group) { Fabricate(:group, name: "subscribers-group") }
-
- let(:event_data) do
- {
- object: {
- customer: customer.customer_id,
- plan: {
- product: customer.product_id,
- metadata: {
- group_name: group.name,
- },
+ let(:event_data) do
+ {
+ object: {
+ customer: customer.customer_id,
+ plan: {
+ product: customer.product_id,
+ metadata: {
+ group_name: group.name,
},
},
- }
+ },
+ }
+ end
+
+ describe "customer.subscription.updated" do
+ before do
+ event = { type: "customer.subscription.updated", data: event_data }
+
+ ::Stripe::Webhook.stubs(:construct_event).returns(event)
end
- describe "customer.subscription.updated" do
- before do
- event = { type: "customer.subscription.updated", data: event_data }
-
- ::Stripe::Webhook.stubs(:construct_event).returns(event)
- end
-
- it "is successfull" do
- post "/s/hooks.json"
- expect(response.status).to eq 200
- end
-
- describe "completing the subscription" do
- it "does not add the user to the group" do
- event_data[:object][:status] = "incomplete"
- event_data[:previous_attributes] = { status: "incomplete" }
-
- expect { post "/s/hooks.json" }.not_to change { user.groups.count }
-
- expect(response.status).to eq 200
- end
-
- it "does not add the user to the group" do
- event_data[:object][:status] = "incomplete"
- event_data[:previous_attributes] = { status: "something-else" }
-
- expect { post "/s/hooks.json" }.not_to change { user.groups.count }
-
- expect(response.status).to eq 200
- end
-
- it "adds the user to the group when completing the transaction" do
- event_data[:object][:status] = "complete"
- event_data[:previous_attributes] = { status: "incomplete" }
-
- expect { post "/s/hooks.json" }.to change { user.groups.count }.by(1)
-
- expect(response.status).to eq 200
- end
- end
+ it "is successfull" do
+ post "/s/hooks.json"
+ expect(response.status).to eq 200
end
- describe "customer.subscription.deleted" do
- before do
- event = { type: "customer.subscription.deleted", data: event_data }
+ describe "completing the subscription" do
+ it "does not add the user to the group" do
+ event_data[:object][:status] = "incomplete"
+ event_data[:previous_attributes] = { status: "incomplete" }
- ::Stripe::Webhook.stubs(:construct_event).returns(event)
-
- group.add(user)
- end
-
- it "deletes the customer" do
- expect { post "/s/hooks.json" }.to change { DiscourseSubscriptions::Customer.count }.by(
- -1,
- )
+ expect { post "/s/hooks.json" }.not_to change { user.groups.count }
expect(response.status).to eq 200
end
- it "removes the user from the group" do
- expect { post "/s/hooks.json" }.to change { user.groups.count }.by(-1)
+ it "does not add the user to the group" do
+ event_data[:object][:status] = "incomplete"
+ event_data[:previous_attributes] = { status: "something-else" }
+
+ expect { post "/s/hooks.json" }.not_to change { user.groups.count }
expect(response.status).to eq 200
end
+
+ it "adds the user to the group when completing the transaction" do
+ event_data[:object][:status] = "complete"
+ event_data[:previous_attributes] = { status: "incomplete" }
+
+ expect { post "/s/hooks.json" }.to change { user.groups.count }.by(1)
+
+ expect(response.status).to eq 200
+ end
+ end
+ end
+
+ describe "customer.subscription.deleted" do
+ before do
+ event = { type: "customer.subscription.deleted", data: event_data }
+
+ ::Stripe::Webhook.stubs(:construct_event).returns(event)
+
+ group.add(user)
+ end
+
+ it "deletes the customer" do
+ expect { post "/s/hooks.json" }.to change { DiscourseSubscriptions::Customer.count }.by(-1)
+
+ expect(response.status).to eq 200
+ end
+
+ it "removes the user from the group" do
+ expect { post "/s/hooks.json" }.to change { user.groups.count }.by(-1)
+
+ expect(response.status).to eq 200
end
end
end
diff --git a/spec/requests/subscribe_controller_spec.rb b/spec/requests/subscribe_controller_spec.rb
index ecb9bab..f564e85 100644
--- a/spec/requests/subscribe_controller_spec.rb
+++ b/spec/requests/subscribe_controller_spec.rb
@@ -2,571 +2,562 @@
require "rails_helper"
-module DiscourseSubscriptions
- RSpec.describe SubscribeController do
- let (:user) {
- Fabricate(:user)
- }
- let (:campaign_user) {
- Fabricate(:user)
- }
+RSpec.describe DiscourseSubscriptions::SubscribeController do
+ let(:user) { Fabricate(:user) }
+ let(:campaign_user) { Fabricate(:user) }
- context "when showing products" do
- let(:product) do
- {
- id: "prodct_23456",
- name: "Very Special Product",
- metadata: {
- description:
- "Many people listened to my phone call with the Ukrainian President while it was being made",
- repurchaseable: false,
+ context "when showing products" do
+ let(:product) do
+ {
+ id: "prodct_23456",
+ name: "Very Special Product",
+ metadata: {
+ description:
+ "Many people listened to my phone call with the Ukrainian President while it was being made",
+ repurchaseable: false,
+ },
+ otherstuff: true,
+ }
+ end
+
+ let(:prices) do
+ {
+ data: [
+ {
+ id: "plan_id123",
+ unit_amount: 1220,
+ currency: "aud",
+ recurring: {
+ interval: "year",
+ },
+ metadata: {
+ },
},
- otherstuff: true,
- }
- end
+ {
+ id: "plan_id234",
+ unit_amount: 1399,
+ currency: "usd",
+ recurring: {
+ interval: "year",
+ },
+ metadata: {
+ },
+ },
+ {
+ id: "plan_id678",
+ unit_amount: 1000,
+ currency: "aud",
+ recurring: {
+ interval: "week",
+ },
+ metadata: {
+ },
+ },
+ ],
+ }
+ end
- let(:prices) do
- {
- data: [
+ let(:product_ids) { ["prodct_23456"] }
+
+ before do
+ sign_in(user)
+ Fabricate(:product, external_id: "prodct_23456")
+ SiteSetting.discourse_subscriptions_public_key = "public-key"
+ SiteSetting.discourse_subscriptions_secret_key = "secret-key"
+ end
+
+ describe "#index" do
+ it "gets products" do
+ ::Stripe::Product
+ .expects(:list)
+ .with({ ids: product_ids, active: true })
+ .returns(data: [product])
+
+ get "/s.json"
+
+ expect(response.parsed_body).to eq(
+ [
{
- id: "plan_id123",
- unit_amount: 1220,
- currency: "aud",
- recurring: {
- interval: "year",
- },
- metadata: {
- },
- },
- {
- id: "plan_id234",
- unit_amount: 1399,
- currency: "usd",
- recurring: {
- interval: "year",
- },
- metadata: {
- },
- },
- {
- id: "plan_id678",
- unit_amount: 1000,
- currency: "aud",
- recurring: {
- interval: "week",
- },
- metadata: {
- },
+ "id" => "prodct_23456",
+ "name" => "Very Special Product",
+ "description" =>
+ PrettyText.cook(
+ "Many people listened to my phone call with the Ukrainian President while it was being made",
+ ),
+ "subscribed" => false,
+ "repurchaseable" => false,
},
],
- }
+ )
end
- let(:product_ids) { ["prodct_23456"] }
+ it "is subscribed" do
+ Fabricate(:customer, product_id: product[:id], user_id: user.id, customer_id: "x")
+ ::Stripe::Product
+ .expects(:list)
+ .with({ ids: product_ids, active: true })
+ .returns(data: [product])
+ get "/s.json"
+ data = response.parsed_body
+ expect(data.first["subscribed"]).to eq true
+ end
+
+ it "is not subscribed" do
+ ::DiscourseSubscriptions::Customer.delete_all
+ ::Stripe::Product
+ .expects(:list)
+ .with({ ids: product_ids, active: true })
+ .returns(data: [product])
+
+ get "/s.json"
+ data = response.parsed_body
+ expect(data.first["subscribed"]).to eq false
+ end
+ end
+
+ describe "#get_contributors" do
before do
- sign_in(user)
- Fabricate(:product, external_id: "prodct_23456")
- SiteSetting.discourse_subscriptions_public_key = "public-key"
- SiteSetting.discourse_subscriptions_secret_key = "secret-key"
+ Fabricate(:product, external_id: "prod_campaign")
+ Fabricate(:customer, product_id: "prodct_23456", user_id: user.id, customer_id: "x")
+ Fabricate(
+ :customer,
+ product_id: "prod_campaign",
+ user_id: campaign_user.id,
+ customer_id: "y",
+ )
end
+ context "when not showing contributors" do
+ it "returns nothing if not set to show contributors" do
+ SiteSetting.discourse_subscriptions_campaign_show_contributors = false
+ get "/s/contributors.json"
- describe "#index" do
- it "gets products" do
- ::Stripe::Product
- .expects(:list)
- .with({ ids: product_ids, active: true })
- .returns(data: [product])
-
- get "/s.json"
-
- expect(response.parsed_body).to eq(
- [
- {
- "id" => "prodct_23456",
- "name" => "Very Special Product",
- "description" =>
- PrettyText.cook(
- "Many people listened to my phone call with the Ukrainian President while it was being made",
- ),
- "subscribed" => false,
- "repurchaseable" => false,
- },
- ],
- )
- end
-
- it "is subscribed" do
- Fabricate(:customer, product_id: product[:id], user_id: user.id, customer_id: "x")
- ::Stripe::Product
- .expects(:list)
- .with({ ids: product_ids, active: true })
- .returns(data: [product])
-
- get "/s.json"
data = response.parsed_body
- expect(data.first["subscribed"]).to eq true
+ expect(data).to be_empty
end
+ end
- it "is not subscribed" do
- ::DiscourseSubscriptions::Customer.delete_all
- ::Stripe::Product
- .expects(:list)
- .with({ ids: product_ids, active: true })
- .returns(data: [product])
+ context "when showing contributors" do
+ before { SiteSetting.discourse_subscriptions_campaign_show_contributors = true }
+
+ it "filters users by campaign product if set" do
+ SiteSetting.discourse_subscriptions_campaign_product = "prod_campaign"
+
+ get "/s/contributors.json"
- get "/s.json"
data = response.parsed_body
- expect(data.first["subscribed"]).to eq false
- end
- end
-
- describe "#get_contributors" do
- before do
- Fabricate(:product, external_id: "prod_campaign")
- Fabricate(:customer, product_id: "prodct_23456", user_id: user.id, customer_id: "x")
- Fabricate(
- :customer,
- product_id: "prod_campaign",
- user_id: campaign_user.id,
- customer_id: "y",
- )
- end
- context "when not showing contributors" do
- it "returns nothing if not set to show contributors" do
- SiteSetting.discourse_subscriptions_campaign_show_contributors = false
- get "/s/contributors.json"
-
- data = response.parsed_body
- expect(data).to be_empty
- end
+ expect(data.first["id"]).to eq campaign_user.id
+ expect(data.length).to eq 1
end
- context "when showing contributors" do
- before { SiteSetting.discourse_subscriptions_campaign_show_contributors = true }
+ it "shows all purchases if campaign product not set" do
+ SiteSetting.discourse_subscriptions_campaign_product = nil
- it "filters users by campaign product if set" do
- SiteSetting.discourse_subscriptions_campaign_product = "prod_campaign"
+ get "/s/contributors.json"
- get "/s/contributors.json"
-
- data = response.parsed_body
- expect(data.first["id"]).to eq campaign_user.id
- expect(data.length).to eq 1
- end
-
- it "shows all purchases if campaign product not set" do
- SiteSetting.discourse_subscriptions_campaign_product = nil
-
- get "/s/contributors.json"
-
- data = response.parsed_body
- expect(data.length).to eq 2
- end
- end
- end
-
- describe "#show" do
- it "retrieves the product" do
- ::Stripe::Product.expects(:retrieve).with("prod_walterwhite").returns(product)
- ::Stripe::Price
- .expects(:list)
- .with(active: true, product: "prod_walterwhite")
- .returns(prices)
- get "/s/prod_walterwhite.json"
-
- expect(response.parsed_body).to eq(
- {
- "product" => {
- "id" => "prodct_23456",
- "name" => "Very Special Product",
- "description" =>
- PrettyText.cook(
- "Many people listened to my phone call with the Ukrainian President while it was being made",
- ),
- "subscribed" => false,
- "repurchaseable" => false,
- },
- "plans" => [
- {
- "currency" => "aud",
- "id" => "plan_id123",
- "recurring" => {
- "interval" => "year",
- },
- "unit_amount" => 1220,
- },
- {
- "currency" => "usd",
- "id" => "plan_id234",
- "recurring" => {
- "interval" => "year",
- },
- "unit_amount" => 1399,
- },
- {
- "currency" => "aud",
- "id" => "plan_id678",
- "recurring" => {
- "interval" => "week",
- },
- "unit_amount" => 1000,
- },
- ],
- },
- )
+ data = response.parsed_body
+ expect(data.length).to eq 2
end
end
end
- context "when creating subscriptions" do
- context "when unauthenticated" do
- it "does not create a subscription" do
- ::Stripe::Customer.expects(:create).never
- ::Stripe::Price.expects(:retrieve).never
- ::Stripe::Subscription.expects(:create).never
- post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ describe "#show" do
+ it "retrieves the product" do
+ ::Stripe::Product.expects(:retrieve).with("prod_walterwhite").returns(product)
+ ::Stripe::Price
+ .expects(:list)
+ .with(active: true, product: "prod_walterwhite")
+ .returns(prices)
+ get "/s/prod_walterwhite.json"
+
+ expect(response.parsed_body).to eq(
+ {
+ "product" => {
+ "id" => "prodct_23456",
+ "name" => "Very Special Product",
+ "description" =>
+ PrettyText.cook(
+ "Many people listened to my phone call with the Ukrainian President while it was being made",
+ ),
+ "subscribed" => false,
+ "repurchaseable" => false,
+ },
+ "plans" => [
+ {
+ "currency" => "aud",
+ "id" => "plan_id123",
+ "recurring" => {
+ "interval" => "year",
+ },
+ "unit_amount" => 1220,
+ },
+ {
+ "currency" => "usd",
+ "id" => "plan_id234",
+ "recurring" => {
+ "interval" => "year",
+ },
+ "unit_amount" => 1399,
+ },
+ {
+ "currency" => "aud",
+ "id" => "plan_id678",
+ "recurring" => {
+ "interval" => "week",
+ },
+ "unit_amount" => 1000,
+ },
+ ],
+ },
+ )
+ end
+ end
+ end
+
+ context "when creating subscriptions" do
+ context "when unauthenticated" do
+ it "does not create a subscription" do
+ ::Stripe::Customer.expects(:create).never
+ ::Stripe::Price.expects(:retrieve).never
+ ::Stripe::Subscription.expects(:create).never
+ post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ end
+ end
+
+ context "when authenticated" do
+ before { sign_in(user) }
+
+ describe "#create" do
+ before { ::Stripe::Customer.expects(:create).returns(id: "cus_1234") }
+
+ it "creates a subscription" do
+ ::Stripe::Price.expects(:retrieve).returns(
+ type: "recurring",
+ product: "product_12345",
+ metadata: {
+ group_name: "awesome",
+ trial_period_days: 0,
+ },
+ )
+
+ ::Stripe::Subscription
+ .expects(:create)
+ .with(
+ customer: "cus_1234",
+ items: [price: "plan_1234"],
+ metadata: {
+ user_id: user.id,
+ username: user.username_lower,
+ },
+ trial_period_days: 0,
+ promotion_code: nil,
+ )
+ .returns(status: "active", customer: "cus_1234")
+
+ expect {
+ post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ }.to change { DiscourseSubscriptions::Customer.count }
+ end
+
+ it "creates a one time payment subscription" do
+ ::Stripe::Price.expects(:retrieve).returns(
+ type: "one_time",
+ product: "product_12345",
+ metadata: {
+ group_name: "awesome",
+ },
+ )
+
+ ::Stripe::InvoiceItem.expects(:create)
+
+ ::Stripe::Invoice.expects(:create).returns(status: "open", id: "in_123")
+
+ ::Stripe::Invoice.expects(:finalize_invoice).returns(
+ id: "in_123",
+ status: "open",
+ payment_intent: "pi_123",
+ )
+
+ ::Stripe::Invoice.expects(:retrieve).returns(
+ id: "in_123",
+ status: "open",
+ payment_intent: "pi_123",
+ )
+
+ ::Stripe::PaymentIntent.expects(:retrieve).returns(status: "successful")
+
+ ::Stripe::Invoice.expects(:pay).returns(status: "paid", customer: "cus_1234")
+
+ expect {
+ post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ }.to change { DiscourseSubscriptions::Customer.count }
+ end
+
+ it "creates a customer model" do
+ ::Stripe::Price.expects(:retrieve).returns(type: "recurring", metadata: {}).twice
+ ::Stripe::Subscription.expects(:create).returns(status: "active", customer: "cus_1234")
+
+ expect {
+ post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ }.to change { DiscourseSubscriptions::Customer.count }
+
+ ::Stripe::Customer.expects(:retrieve).with("cus_1234")
+
+ expect {
+ post "/s/create.json", params: { plan: "plan_5678", source: "tok_5678" }
+ }.not_to change { DiscourseSubscriptions::Customer.count }
+ end
+
+ context "with customer name & address" do
+ it "creates a customer & subscription when a customer address is provided" do
+ ::Stripe::Price.expects(:retrieve).returns(type: "recurring", metadata: {})
+ ::Stripe::Subscription.expects(:create).returns(status: "active", customer: "cus_1234")
+ expect {
+ post "/s/create.json",
+ params: {
+ plan: "plan_1234",
+ source: "tok_1234",
+ cardholder_name: "A. Customer",
+ cardholder_address: {
+ line1: "123 Main Street",
+ city: "Anywhere",
+ state: "VT",
+ country: "US",
+ postal_code: "12345",
+ },
+ }
+ }.to change { DiscourseSubscriptions::Customer.count }
+ end
+ end
+
+ context "with promo code" do
+ context "with invalid code" do
+ it "prevents use of invalid coupon codes" do
+ ::Stripe::Price.expects(:retrieve).returns(
+ type: "recurring",
+ product: "product_12345",
+ metadata: {
+ group_name: "awesome",
+ trial_period_days: 0,
+ },
+ )
+
+ ::Stripe::PromotionCode.expects(:list).with({ code: "invalid" }).returns(data: [])
+
+ post "/s/create.json",
+ params: {
+ plan: "plan_1234",
+ source: "tok_1234",
+ promo: "invalid",
+ }
+
+ data = response.parsed_body
+ expect(data["errors"]).not_to be_blank
+ end
+ end
+
+ context "with valid code" do
+ before do
+ ::Stripe::PromotionCode
+ .expects(:list)
+ .with({ code: "123" })
+ .returns(data: [{ id: "promo123", coupon: { id: "c123" } }])
+ end
+
+ it "applies promo code to recurring subscription" do
+ ::Stripe::Price.expects(:retrieve).returns(
+ type: "recurring",
+ product: "product_12345",
+ metadata: {
+ group_name: "awesome",
+ trial_period_days: 0,
+ },
+ )
+
+ ::Stripe::Subscription
+ .expects(:create)
+ .with(
+ customer: "cus_1234",
+ items: [price: "plan_1234"],
+ metadata: {
+ user_id: user.id,
+ username: user.username_lower,
+ },
+ trial_period_days: 0,
+ promotion_code: "promo123",
+ )
+ .returns(status: "active", customer: "cus_1234")
+
+ expect {
+ post "/s/create.json",
+ params: {
+ plan: "plan_1234",
+ source: "tok_1234",
+ promo: "123",
+ }
+ }.to change { DiscourseSubscriptions::Customer.count }
+ end
+
+ it "applies promo code to one time purchase" do
+ ::Stripe::Price.expects(:retrieve).returns(
+ type: "one_time",
+ product: "product_12345",
+ metadata: {
+ group_name: "awesome",
+ },
+ )
+
+ ::Stripe::InvoiceItem.expects(:create).with(
+ customer: "cus_1234",
+ price: "plan_1234",
+ discounts: [{ coupon: "c123" }],
+ )
+
+ ::Stripe::Invoice.expects(:create).returns(status: "open", id: "in_123")
+
+ ::Stripe::Invoice.expects(:finalize_invoice).returns(
+ id: "in_123",
+ status: "open",
+ payment_intent: "pi_123",
+ )
+
+ ::Stripe::Invoice.expects(:retrieve).returns(
+ id: "in_123",
+ status: "open",
+ payment_intent: "pi_123",
+ )
+
+ ::Stripe::PaymentIntent.expects(:retrieve).returns(status: "successful")
+
+ ::Stripe::Invoice.expects(:pay).returns(status: "paid", customer: "cus_1234")
+
+ expect {
+ post "/s/create.json",
+ params: {
+ plan: "plan_1234",
+ source: "tok_1234",
+ promo: "123",
+ }
+ }.to change { DiscourseSubscriptions::Customer.count }
+ end
+ end
end
end
- context "when authenticated" do
- before { sign_in(user) }
-
- describe "#create" do
- before { ::Stripe::Customer.expects(:create).returns(id: "cus_1234") }
-
- it "creates a subscription" do
+ describe "#finalize strong customer authenticated transaction" do
+ context "with subscription" do
+ it "finalizes the subscription" do
::Stripe::Price.expects(:retrieve).returns(
- type: "recurring",
- product: "product_12345",
+ id: "plan_1234",
+ product: "prod_1234",
metadata: {
- group_name: "awesome",
- trial_period_days: 0,
},
)
-
- ::Stripe::Subscription
- .expects(:create)
- .with(
- customer: "cus_1234",
- items: [price: "plan_1234"],
- metadata: {
- user_id: user.id,
- username: user.username_lower,
- },
- trial_period_days: 0,
- promotion_code: nil,
- )
- .returns(status: "active", customer: "cus_1234")
+ ::Stripe::Subscription.expects(:retrieve).returns(
+ id: "sub_123",
+ customer: "cus_1234",
+ status: "active",
+ )
expect {
- post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ post "/s/finalize.json", params: { plan: "plan_1234", transaction: "sub_1234" }
}.to change { DiscourseSubscriptions::Customer.count }
end
+ end
- it "creates a one time payment subscription" do
+ context "with one-time payment" do
+ it "finalizes the one-time payment" do
::Stripe::Price.expects(:retrieve).returns(
- type: "one_time",
- product: "product_12345",
+ id: "plan_1234",
+ product: "prod_1234",
metadata: {
- group_name: "awesome",
},
)
-
- ::Stripe::InvoiceItem.expects(:create)
-
- ::Stripe::Invoice.expects(:create).returns(status: "open", id: "in_123")
-
- ::Stripe::Invoice.expects(:finalize_invoice).returns(
- id: "in_123",
- status: "open",
- payment_intent: "pi_123",
- )
-
::Stripe::Invoice.expects(:retrieve).returns(
id: "in_123",
- status: "open",
- payment_intent: "pi_123",
+ customer: "cus_1234",
+ status: "paid",
)
- ::Stripe::PaymentIntent.expects(:retrieve).returns(status: "successful")
-
- ::Stripe::Invoice.expects(:pay).returns(status: "paid", customer: "cus_1234")
-
expect {
- post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ post "/s/finalize.json", params: { plan: "plan_1234", transaction: "in_1234" }
}.to change { DiscourseSubscriptions::Customer.count }
end
+ end
+ end
- it "creates a customer model" do
- ::Stripe::Price.expects(:retrieve).returns(type: "recurring", metadata: {}).twice
- ::Stripe::Subscription.expects(:create).returns(status: "active", customer: "cus_1234")
+ describe "user groups" do
+ let(:group_name) { "group-123" }
+ let(:group) { Fabricate(:group, name: group_name) }
- expect {
- post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
- }.to change { DiscourseSubscriptions::Customer.count }
-
- ::Stripe::Customer.expects(:retrieve).with("cus_1234")
-
- expect {
- post "/s/create.json", params: { plan: "plan_5678", source: "tok_5678" }
- }.not_to change { DiscourseSubscriptions::Customer.count }
+ context "with unauthorized group" do
+ before do
+ ::Stripe::Customer.expects(:create).returns(id: "cus_1234")
+ ::Stripe::Subscription.expects(:create).returns(status: "active")
end
- context "with customer name & address" do
- it "creates a customer & subscription when a customer address is provided" do
- ::Stripe::Price.expects(:retrieve).returns(type: "recurring", metadata: {})
- ::Stripe::Subscription.expects(:create).returns(
- status: "active",
- customer: "cus_1234",
- )
- expect {
- post "/s/create.json",
- params: {
- plan: "plan_1234",
- source: "tok_1234",
- cardholder_name: "A. Customer",
- cardholder_address: {
- line1: "123 Main Street",
- city: "Anywhere",
- state: "VT",
- country: "US",
- postal_code: "12345",
- },
- }
- }.to change { DiscourseSubscriptions::Customer.count }
- end
+ it "does not add the user to the admins group" do
+ ::Stripe::Price.expects(:retrieve).returns(
+ type: "recurring",
+ metadata: {
+ group_name: "admins",
+ },
+ )
+ post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ expect(user.admin).to eq false
end
- context "with promo code" do
- context "with invalid code" do
- it "prevents use of invalid coupon codes" do
- ::Stripe::Price.expects(:retrieve).returns(
- type: "recurring",
- product: "product_12345",
- metadata: {
- group_name: "awesome",
- trial_period_days: 0,
- },
- )
-
- ::Stripe::PromotionCode.expects(:list).with({ code: "invalid" }).returns(data: [])
-
- post "/s/create.json",
- params: {
- plan: "plan_1234",
- source: "tok_1234",
- promo: "invalid",
- }
-
- data = response.parsed_body
- expect(data["errors"]).not_to be_blank
- end
- end
-
- context "with valid code" do
- before do
- ::Stripe::PromotionCode
- .expects(:list)
- .with({ code: "123" })
- .returns(data: [{ id: "promo123", coupon: { id: "c123" } }])
- end
-
- it "applies promo code to recurring subscription" do
- ::Stripe::Price.expects(:retrieve).returns(
- type: "recurring",
- product: "product_12345",
- metadata: {
- group_name: "awesome",
- trial_period_days: 0,
- },
- )
-
- ::Stripe::Subscription
- .expects(:create)
- .with(
- customer: "cus_1234",
- items: [price: "plan_1234"],
- metadata: {
- user_id: user.id,
- username: user.username_lower,
- },
- trial_period_days: 0,
- promotion_code: "promo123",
- )
- .returns(status: "active", customer: "cus_1234")
-
- expect {
- post "/s/create.json",
- params: {
- plan: "plan_1234",
- source: "tok_1234",
- promo: "123",
- }
- }.to change { DiscourseSubscriptions::Customer.count }
- end
-
- it "applies promo code to one time purchase" do
- ::Stripe::Price.expects(:retrieve).returns(
- type: "one_time",
- product: "product_12345",
- metadata: {
- group_name: "awesome",
- },
- )
-
- ::Stripe::InvoiceItem.expects(:create).with(
- customer: "cus_1234",
- price: "plan_1234",
- discounts: [{ coupon: "c123" }],
- )
-
- ::Stripe::Invoice.expects(:create).returns(status: "open", id: "in_123")
-
- ::Stripe::Invoice.expects(:finalize_invoice).returns(
- id: "in_123",
- status: "open",
- payment_intent: "pi_123",
- )
-
- ::Stripe::Invoice.expects(:retrieve).returns(
- id: "in_123",
- status: "open",
- payment_intent: "pi_123",
- )
-
- ::Stripe::PaymentIntent.expects(:retrieve).returns(status: "successful")
-
- ::Stripe::Invoice.expects(:pay).returns(status: "paid", customer: "cus_1234")
-
- expect {
- post "/s/create.json",
- params: {
- plan: "plan_1234",
- source: "tok_1234",
- promo: "123",
- }
- }.to change { DiscourseSubscriptions::Customer.count }
- end
- end
+ it "does not add the user to other group" do
+ ::Stripe::Price.expects(:retrieve).returns(
+ type: "recurring",
+ metadata: {
+ group_name: "other",
+ },
+ )
+ post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ expect(user.groups).to be_empty
end
end
- describe "#finalize strong customer authenticated transaction" do
- context "with subscription" do
- it "finalizes the subscription" do
- ::Stripe::Price.expects(:retrieve).returns(
- id: "plan_1234",
- product: "prod_1234",
- metadata: {
- },
- )
- ::Stripe::Subscription.expects(:retrieve).returns(
- id: "sub_123",
- customer: "cus_1234",
- status: "active",
- )
-
- expect {
- post "/s/finalize.json", params: { plan: "plan_1234", transaction: "sub_1234" }
- }.to change { DiscourseSubscriptions::Customer.count }
- end
+ context "when plan has group in metadata" do
+ before do
+ ::Stripe::Customer.expects(:create).returns(id: "cus_1234")
+ ::Stripe::Price.expects(:retrieve).returns(
+ type: "recurring",
+ metadata: {
+ group_name: group_name,
+ },
+ )
end
- context "with one-time payment" do
- it "finalizes the one-time payment" do
- ::Stripe::Price.expects(:retrieve).returns(
- id: "plan_1234",
- product: "prod_1234",
- metadata: {
- },
- )
- ::Stripe::Invoice.expects(:retrieve).returns(
- id: "in_123",
- customer: "cus_1234",
- status: "paid",
- )
+ it "does not add the user to the group when subscription fails" do
+ ::Stripe::Subscription.expects(:create).returns(status: "failed")
- expect {
- post "/s/finalize.json", params: { plan: "plan_1234", transaction: "in_1234" }
- }.to change { DiscourseSubscriptions::Customer.count }
- end
- end
- end
-
- describe "user groups" do
- let(:group_name) { "group-123" }
- let(:group) { Fabricate(:group, name: group_name) }
-
- context "with unauthorized group" do
- before do
- ::Stripe::Customer.expects(:create).returns(id: "cus_1234")
- ::Stripe::Subscription.expects(:create).returns(status: "active")
- end
-
- it "does not add the user to the admins group" do
- ::Stripe::Price.expects(:retrieve).returns(
- type: "recurring",
- metadata: {
- group_name: "admins",
- },
- )
+ expect {
post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
- expect(user.admin).to eq false
- end
+ }.not_to change { group.users.count }
- it "does not add the user to other group" do
- ::Stripe::Price.expects(:retrieve).returns(
- type: "recurring",
- metadata: {
- group_name: "other",
- },
- )
- post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
- expect(user.groups).to be_empty
- end
+ expect(user.groups).to be_empty
end
- context "when plan has group in metadata" do
- before do
- ::Stripe::Customer.expects(:create).returns(id: "cus_1234")
- ::Stripe::Price.expects(:retrieve).returns(
- type: "recurring",
- metadata: {
- group_name: group_name,
- },
- )
- end
+ it "adds the user to the group when the subscription is active" do
+ ::Stripe::Subscription.expects(:create).returns(status: "active")
- it "does not add the user to the group when subscription fails" do
- ::Stripe::Subscription.expects(:create).returns(status: "failed")
+ expect {
+ post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ }.to change { group.users.count }
- expect {
- post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
- }.not_to change { group.users.count }
+ expect(user.groups).not_to be_empty
+ end
- expect(user.groups).to be_empty
- end
+ it "adds the user to the group when the subscription is trialing" do
+ ::Stripe::Subscription.expects(:create).returns(status: "trialing")
- it "adds the user to the group when the subscription is active" do
- ::Stripe::Subscription.expects(:create).returns(status: "active")
+ expect {
+ post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
+ }.to change { group.users.count }
- expect {
- post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
- }.to change { group.users.count }
-
- expect(user.groups).not_to be_empty
- end
-
- it "adds the user to the group when the subscription is trialing" do
- ::Stripe::Subscription.expects(:create).returns(status: "trialing")
-
- expect {
- post "/s/create.json", params: { plan: "plan_1234", source: "tok_1234" }
- }.to change { group.users.count }
-
- expect(user.groups).not_to be_empty
- end
+ expect(user.groups).not_to be_empty
end
end
end
diff --git a/spec/requests/user/payments_controller_spec.rb b/spec/requests/user/payments_controller_spec.rb
index 07196ac..3dcac29 100644
--- a/spec/requests/user/payments_controller_spec.rb
+++ b/spec/requests/user/payments_controller_spec.rb
@@ -2,63 +2,61 @@
require "rails_helper"
-module DiscourseSubscriptions
- RSpec.describe User::PaymentsController do
- it "is a subclass of ApplicationController" do
- expect(DiscourseSubscriptions::User::PaymentsController < ::ApplicationController).to eq(true)
+RSpec.describe DiscourseSubscriptions::User::PaymentsController do
+ it "is a subclass of ApplicationController" do
+ expect(DiscourseSubscriptions::User::PaymentsController < ::ApplicationController).to eq(true)
+ end
+
+ context "when not authenticated" do
+ it "does not get the payment intents" do
+ ::Stripe::PaymentIntent.expects(:list).never
+ get "/s/user/payments.json"
+ expect(response.status).to eq(403)
+ end
+ end
+
+ context "when authenticated" do
+ let(:user) { Fabricate(:user, email: "zasch@example.com") }
+
+ before do
+ sign_in(user)
+ Fabricate(:customer, customer_id: "c_345678", user_id: user.id)
+ Fabricate(:product, external_id: "prod_8675309")
+ Fabricate(:product, external_id: "prod_8675310")
end
- context "when not authenticated" do
- it "does not get the payment intents" do
- ::Stripe::PaymentIntent.expects(:list).never
- get "/s/user/payments.json"
- expect(response.status).to eq(403)
- end
- end
+ it "gets payment intents" do
+ created_time = Time.now
+ ::Stripe::Invoice
+ .expects(:list)
+ .with(customer: "c_345678")
+ .returns(
+ data: [
+ { id: "inv_900007", lines: { data: [plan: { product: "prod_8675309" }] } },
+ { id: "inv_900008", lines: { data: [plan: { product: "prod_8675310" }] } },
+ { id: "inv_900008", lines: { data: [plan: { product: "prod_8675310" }] } },
+ ],
+ )
- context "when authenticated" do
- let(:user) { Fabricate(:user, email: "zasch@example.com") }
+ ::Stripe::PaymentIntent
+ .expects(:list)
+ .with(customer: "c_345678")
+ .returns(
+ data: [
+ { id: "pi_900008", invoice: "inv_900008", created: created_time },
+ { id: "pi_900008", invoice: "inv_900008", created: created_time },
+ { id: "pi_900007", invoice: "inv_900007", created: Time.now },
+ { id: "pi_007", invoice: "inv_007", created: Time.now },
+ ],
+ )
- before do
- sign_in(user)
- Fabricate(:customer, customer_id: "c_345678", user_id: user.id)
- Fabricate(:product, external_id: "prod_8675309")
- Fabricate(:product, external_id: "prod_8675310")
- end
+ get "/s/user/payments.json"
- it "gets payment intents" do
- created_time = Time.now
- ::Stripe::Invoice
- .expects(:list)
- .with(customer: "c_345678")
- .returns(
- data: [
- { id: "inv_900007", lines: { data: [plan: { product: "prod_8675309" }] } },
- { id: "inv_900008", lines: { data: [plan: { product: "prod_8675310" }] } },
- { id: "inv_900008", lines: { data: [plan: { product: "prod_8675310" }] } },
- ],
- )
+ parsed_body = response.parsed_body
+ invoice = parsed_body[0]["invoice"]
- ::Stripe::PaymentIntent
- .expects(:list)
- .with(customer: "c_345678")
- .returns(
- data: [
- { id: "pi_900008", invoice: "inv_900008", created: created_time },
- { id: "pi_900008", invoice: "inv_900008", created: created_time },
- { id: "pi_900007", invoice: "inv_900007", created: Time.now },
- { id: "pi_007", invoice: "inv_007", created: Time.now },
- ],
- )
-
- get "/s/user/payments.json"
-
- parsed_body = response.parsed_body
- invoice = parsed_body[0]["invoice"]
-
- expect(invoice).to eq("inv_900007")
- expect(parsed_body.count).to eq(2)
- end
+ expect(invoice).to eq("inv_900007")
+ expect(parsed_body.count).to eq(2)
end
end
end
diff --git a/spec/requests/user/subscriptions_controller_spec.rb b/spec/requests/user/subscriptions_controller_spec.rb
index d7399c2..a0e62df 100644
--- a/spec/requests/user/subscriptions_controller_spec.rb
+++ b/spec/requests/user/subscriptions_controller_spec.rb
@@ -2,105 +2,103 @@
require "rails_helper"
-module DiscourseSubscriptions
- RSpec.describe User::SubscriptionsController do
- it "is a subclass of ApplicationController" do
- expect(DiscourseSubscriptions::User::SubscriptionsController < ::ApplicationController).to eq(
- true,
- )
+RSpec.describe DiscourseSubscriptions::User::SubscriptionsController do
+ it "is a subclass of ApplicationController" do
+ expect(DiscourseSubscriptions::User::SubscriptionsController < ::ApplicationController).to eq(
+ true,
+ )
+ end
+
+ context "when not authenticated" do
+ it "does not get the subscriptions" do
+ ::Stripe::Customer.expects(:list).never
+ get "/s/user/subscriptions.json"
end
- context "when not authenticated" do
- it "does not get the subscriptions" do
- ::Stripe::Customer.expects(:list).never
+ it "does not destroy a subscription" do
+ ::Stripe::Subscription.expects(:delete).never
+ patch "/s/user/subscriptions/sub_12345.json"
+ end
+
+ it "doesn't update payment method for subscription" do
+ ::Stripe::Subscription.expects(:update).never
+ ::Stripe::PaymentMethod.expects(:attach).never
+ put "/s/user/subscriptions/sub_12345.json", params: { payment_method: "pm_abc123abc" }
+ end
+ end
+
+ context "when authenticated" do
+ let(:user) { Fabricate(:user, email: "beanie@example.com") }
+ let(:customer) do
+ Fabricate(:customer, user_id: user.id, customer_id: "cus_23456", product_id: "prod_123")
+ end
+
+ before do
+ sign_in(user)
+ Fabricate(:subscription, customer_id: customer.id, external_id: "sub_1234")
+ end
+
+ describe "index" do
+ let(:plans) do
+ {
+ data: [
+ { id: "plan_1", product: { name: "ACME Subscriptions" } },
+ { id: "plan_2", product: { name: "ACME Other Subscriptions" } },
+ ],
+ }
+ end
+
+ let(:customers) do
+ {
+ data: [
+ {
+ id: "cus_23456",
+ subscriptions: {
+ data: [
+ { id: "sub_1234", items: { data: [price: { id: "plan_1" }] } },
+ { id: "sub_4567", items: { data: [price: { id: "plan_2" }] } },
+ ],
+ },
+ },
+ ],
+ }
+ end
+
+ it "gets subscriptions" do
+ ::Stripe::Price.expects(:list).with(expand: ["data.product"], limit: 100).returns(plans)
+
+ ::Stripe::Customer
+ .expects(:list)
+ .with(email: user.email, expand: ["data.subscriptions"])
+ .returns(customers)
+
get "/s/user/subscriptions.json"
- end
- it "does not destroy a subscription" do
- ::Stripe::Subscription.expects(:delete).never
- patch "/s/user/subscriptions/sub_12345.json"
- end
+ subscription = response.parsed_body.first
- it "doesn't update payment method for subscription" do
- ::Stripe::Subscription.expects(:update).never
- ::Stripe::PaymentMethod.expects(:attach).never
- put "/s/user/subscriptions/sub_12345.json", params: { payment_method: "pm_abc123abc" }
- end
- end
-
- context "when authenticated" do
- let(:user) { Fabricate(:user, email: "beanie@example.com") }
- let(:customer) do
- Fabricate(:customer, user_id: user.id, customer_id: "cus_23456", product_id: "prod_123")
- end
-
- before do
- sign_in(user)
- Fabricate(:subscription, customer_id: customer.id, external_id: "sub_1234")
- end
-
- describe "index" do
- let(:plans) do
- {
- data: [
- { id: "plan_1", product: { name: "ACME Subscriptions" } },
- { id: "plan_2", product: { name: "ACME Other Subscriptions" } },
- ],
- }
- end
-
- let(:customers) do
- {
- data: [
- {
- id: "cus_23456",
- subscriptions: {
- data: [
- { id: "sub_1234", items: { data: [price: { id: "plan_1" }] } },
- { id: "sub_4567", items: { data: [price: { id: "plan_2" }] } },
- ],
- },
- },
- ],
- }
- end
-
- it "gets subscriptions" do
- ::Stripe::Price.expects(:list).with(expand: ["data.product"], limit: 100).returns(plans)
-
- ::Stripe::Customer
- .expects(:list)
- .with(email: user.email, expand: ["data.subscriptions"])
- .returns(customers)
-
- get "/s/user/subscriptions.json"
-
- subscription = response.parsed_body.first
-
- expect(subscription).to eq(
- "id" => "sub_1234",
- "items" => {
- "data" => [{ "price" => { "id" => "plan_1" } }],
- },
- "plan" => {
- "id" => "plan_1",
- "product" => {
- "name" => "ACME Subscriptions",
- },
- },
+ expect(subscription).to eq(
+ "id" => "sub_1234",
+ "items" => {
+ "data" => [{ "price" => { "id" => "plan_1" } }],
+ },
+ "plan" => {
+ "id" => "plan_1",
"product" => {
"name" => "ACME Subscriptions",
},
- )
- end
+ },
+ "product" => {
+ "name" => "ACME Subscriptions",
+ },
+ )
end
+ end
- describe "update" do
- it "updates the payment method for subscription" do
- ::Stripe::Subscription.expects(:update).once
- ::Stripe::PaymentMethod.expects(:attach).once
- put "/s/user/subscriptions/sub_1234.json", params: { payment_method: "pm_abc123abc" }
- end
+ describe "update" do
+ it "updates the payment method for subscription" do
+ ::Stripe::Subscription.expects(:update).once
+ ::Stripe::PaymentMethod.expects(:attach).once
+ put "/s/user/subscriptions/sub_1234.json", params: { payment_method: "pm_abc123abc" }
end
end
end
diff --git a/spec/serializers/site_serializer_spec.rb b/spec/serializers/site_serializer_spec.rb
index 6ea61e6..096c41e 100644
--- a/spec/serializers/site_serializer_spec.rb
+++ b/spec/serializers/site_serializer_spec.rb
@@ -11,6 +11,7 @@ describe SiteSerializer do
SiteSetting.discourse_subscriptions_enabled = true
SiteSetting.discourse_subscriptions_campaign_enabled = true
end
+
it "is false if the goal_met date is < 7 days old" do
Discourse.redis.set("subscriptions_goal_met_date", 10.days.ago)
data = described_class.new(Site.new(guardian), scope: guardian, root: false).as_json
diff --git a/spec/services/campaign_spec.rb b/spec/services/campaign_spec.rb
index 583420b..116439a 100644
--- a/spec/services/campaign_spec.rb
+++ b/spec/services/campaign_spec.rb
@@ -4,12 +4,8 @@ require "rails_helper"
describe DiscourseSubscriptions::Campaign do
describe "campaign data is refreshed" do
- let (:user) {
- Fabricate(:user)
- }
- let (:user2) {
- Fabricate(:user)
- }
+ let(:user) { Fabricate(:user) }
+ let(:user2) { Fabricate(:user) }
let(:subscription) do
{
id: "sub_1234",
diff --git a/test/javascripts/acceptance/payments-test.js b/test/javascripts/acceptance/payments-test.js
index 06a5f76..b81e79c 100644
--- a/test/javascripts/acceptance/payments-test.js
+++ b/test/javascripts/acceptance/payments-test.js
@@ -1,7 +1,7 @@
-import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
-import { stubStripe } from "discourse/plugins/discourse-subscriptions/helpers/stripe";
import { visit } from "@ember/test-helpers";
import { test } from "qunit";
+import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
+import { stubStripe } from "discourse/plugins/discourse-subscriptions/helpers/stripe";
acceptance("Discourse Subscriptions", function (needs) {
needs.user();
diff --git a/test/javascripts/acceptance/subscribe-test.js b/test/javascripts/acceptance/subscribe-test.js
index 0c75949..d162b43 100644
--- a/test/javascripts/acceptance/subscribe-test.js
+++ b/test/javascripts/acceptance/subscribe-test.js
@@ -1,8 +1,8 @@
-import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
-import { stubStripe } from "discourse/plugins/discourse-subscriptions/helpers/stripe";
import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
import pretender, { response } from "discourse/tests/helpers/create-pretender";
+import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
+import { stubStripe } from "discourse/plugins/discourse-subscriptions/helpers/stripe";
function singleProductPretender() {
pretender.get("/s", () => {
diff --git a/test/javascripts/integration/components/payment-options-test.js b/test/javascripts/integration/components/payment-options-test.js
index 9f68bcd..662108f 100644
--- a/test/javascripts/integration/components/payment-options-test.js
+++ b/test/javascripts/integration/components/payment-options-test.js
@@ -1,8 +1,8 @@
-import { count, discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import hbs from "htmlbars-inline-precompile";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
-import hbs from "htmlbars-inline-precompile";
+import { count, discourseModule } from "discourse/tests/helpers/qunit-helpers";
discourseModule("payment-options", function (hooks) {
setupRenderingTest(hooks);
diff --git a/test/javascripts/integration/components/payment-plan-test.js b/test/javascripts/integration/components/payment-plan-test.js
index 4239374..8b65d1d 100644
--- a/test/javascripts/integration/components/payment-plan-test.js
+++ b/test/javascripts/integration/components/payment-plan-test.js
@@ -1,12 +1,12 @@
+import hbs from "htmlbars-inline-precompile";
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
count,
discourseModule,
query,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import hbs from "htmlbars-inline-precompile";
discourseModule("payment-plan", function (hooks) {
setupRenderingTest(hooks);
diff --git a/yarn.lock b/yarn.lock
index bf66982..aa74ee7 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,20 +2,18 @@
# yarn lockfile v1
-"@ampproject/remapping@^2.1.0":
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
- integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
- dependencies:
- "@jridgewell/gen-mapping" "^0.1.0"
- "@jridgewell/trace-mapping" "^0.3.9"
+"@aashutoshrathi/word-wrap@^1.2.3":
+ version "1.2.6"
+ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
+ integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
-"@babel/code-frame@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
- integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
+"@ampproject/remapping@^2.2.0":
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
+ integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
dependencies:
- "@babel/highlight" "^7.18.6"
+ "@jridgewell/gen-mapping" "^0.3.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
"@babel/code-frame@^7.22.13":
version "7.22.13"
@@ -25,109 +23,97 @@
"@babel/highlight" "^7.22.13"
chalk "^2.4.2"
-"@babel/compat-data@^7.20.5":
- version "7.20.10"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec"
- integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==
-
-"@babel/core@^7.18.5":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f"
- integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==
+"@babel/code-frame@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
+ integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
dependencies:
- "@ampproject/remapping" "^2.1.0"
- "@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.7"
- "@babel/helper-compilation-targets" "^7.20.7"
- "@babel/helper-module-transforms" "^7.20.7"
- "@babel/helpers" "^7.20.7"
- "@babel/parser" "^7.20.7"
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.7"
- "@babel/types" "^7.20.7"
- convert-source-map "^1.7.0"
+ "@babel/highlight" "^7.23.4"
+ chalk "^2.4.2"
+
+"@babel/compat-data@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
+ integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
+
+"@babel/core@^7.18.6", "@babel/core@^7.20.12", "@babel/core@^7.23.7":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f"
+ integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.23.5"
+ "@babel/generator" "^7.23.6"
+ "@babel/helper-compilation-targets" "^7.23.6"
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helpers" "^7.23.7"
+ "@babel/parser" "^7.23.6"
+ "@babel/template" "^7.22.15"
+ "@babel/traverse" "^7.23.7"
+ "@babel/types" "^7.23.6"
+ convert-source-map "^2.0.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
- json5 "^2.2.1"
- semver "^6.3.0"
+ json5 "^2.2.3"
+ semver "^6.3.1"
-"@babel/eslint-parser@^7.18.2":
- version "7.19.1"
- resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4"
- integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==
+"@babel/eslint-parser@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz#7bf0db1c53b54da0c8a12627373554a0828479ca"
+ integrity sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==
dependencies:
"@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
eslint-visitor-keys "^2.1.0"
- semver "^6.3.0"
+ semver "^6.3.1"
-"@babel/generator@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a"
- integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==
+"@babel/generator@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
+ integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
dependencies:
- "@babel/types" "^7.20.7"
- "@jridgewell/gen-mapping" "^0.3.2"
- jsesc "^2.5.1"
-
-"@babel/generator@^7.23.0":
- version "7.23.0"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420"
- integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==
- dependencies:
- "@babel/types" "^7.23.0"
+ "@babel/types" "^7.23.6"
"@jridgewell/gen-mapping" "^0.3.2"
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
-"@babel/helper-annotate-as-pure@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
- integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==
+"@babel/helper-annotate-as-pure@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
+ integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
dependencies:
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.22.5"
-"@babel/helper-compilation-targets@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb"
- integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==
+"@babel/helper-compilation-targets@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
+ integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
dependencies:
- "@babel/compat-data" "^7.20.5"
- "@babel/helper-validator-option" "^7.18.6"
- browserslist "^4.21.3"
+ "@babel/compat-data" "^7.23.5"
+ "@babel/helper-validator-option" "^7.23.5"
+ browserslist "^4.22.2"
lru-cache "^5.1.1"
- semver "^6.3.0"
+ semver "^6.3.1"
-"@babel/helper-create-class-features-plugin@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.7.tgz#d0e1f8d7e4ed5dac0389364d9c0c191d948ade6f"
- integrity sha512-LtoWbDXOaidEf50hmdDqn9g8VEzsorMexoWMQdQODbvmqYmaF23pBP5VNPAGIFHsFQCIeKokDiz3CH5Y2jlY6w==
+"@babel/helper-create-class-features-plugin@^7.23.7":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz#b2e6826e0e20d337143655198b79d58fdc9bd43d"
+ integrity sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
- "@babel/helper-member-expression-to-functions" "^7.20.7"
- "@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/helper-replace-supers" "^7.20.7"
- "@babel/helper-split-export-declaration" "^7.18.6"
-
-"@babel/helper-environment-visitor@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
- integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-member-expression-to-functions" "^7.23.0"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.20"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ semver "^6.3.1"
"@babel/helper-environment-visitor@^7.22.20":
version "7.22.20"
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
-"@babel/helper-function-name@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
- integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
- dependencies:
- "@babel/template" "^7.18.10"
- "@babel/types" "^7.19.0"
-
"@babel/helper-function-name@^7.23.0":
version "7.23.0"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
@@ -143,71 +129,65 @@
dependencies:
"@babel/types" "^7.22.5"
-"@babel/helper-member-expression-to-functions@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05"
- integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==
+"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366"
+ integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==
dependencies:
- "@babel/types" "^7.20.7"
+ "@babel/types" "^7.23.0"
-"@babel/helper-module-imports@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
- integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
+"@babel/helper-module-imports@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
+ integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
dependencies:
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.22.15"
-"@babel/helper-module-transforms@^7.20.7":
- version "7.20.11"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0"
- integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==
+"@babel/helper-module-transforms@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
+ integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-simple-access" "^7.20.2"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/helper-validator-identifier" "^7.19.1"
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.10"
- "@babel/types" "^7.20.7"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-simple-access" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/helper-validator-identifier" "^7.22.20"
-"@babel/helper-optimise-call-expression@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
- integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==
+"@babel/helper-optimise-call-expression@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e"
+ integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==
dependencies:
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.22.5"
-"@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
- integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
+"@babel/helper-plugin-utils@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
+ integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
-"@babel/helper-replace-supers@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331"
- integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==
+"@babel/helper-replace-supers@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793"
+ integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==
dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-member-expression-to-functions" "^7.20.7"
- "@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.7"
- "@babel/types" "^7.20.7"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-member-expression-to-functions" "^7.22.15"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
-"@babel/helper-simple-access@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9"
- integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==
+"@babel/helper-simple-access@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
+ integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
dependencies:
- "@babel/types" "^7.20.2"
+ "@babel/types" "^7.22.5"
-"@babel/helper-split-export-declaration@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
- integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
+"@babel/helper-skip-transparent-expression-wrappers@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847"
+ integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==
dependencies:
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.22.5"
"@babel/helper-split-export-declaration@^7.22.6":
version "7.22.6"
@@ -216,48 +196,34 @@
dependencies:
"@babel/types" "^7.22.5"
-"@babel/helper-string-parser@^7.19.4":
- version "7.19.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
- integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
-
"@babel/helper-string-parser@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
-"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
- version "7.19.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
- integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
+"@babel/helper-string-parser@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
+ integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
"@babel/helper-validator-identifier@^7.22.20":
version "7.22.20"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
-"@babel/helper-validator-option@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
- integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
+"@babel/helper-validator-option@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
+ integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
-"@babel/helpers@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce"
- integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==
+"@babel/helpers@^7.23.7":
+ version "7.23.8"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.8.tgz#fc6b2d65b16847fd50adddbd4232c76378959e34"
+ integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==
dependencies:
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.7"
- "@babel/types" "^7.20.7"
-
-"@babel/highlight@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
- integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
- dependencies:
- "@babel/helper-validator-identifier" "^7.18.6"
- chalk "^2.0.0"
- js-tokens "^4.0.0"
+ "@babel/template" "^7.22.15"
+ "@babel/traverse" "^7.23.7"
+ "@babel/types" "^7.23.6"
"@babel/highlight@^7.22.13":
version "7.22.20"
@@ -268,42 +234,47 @@
chalk "^2.4.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b"
- integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==
+"@babel/highlight@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
+ integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.22.20"
+ chalk "^2.4.2"
+ js-tokens "^4.0.0"
-"@babel/parser@^7.22.15", "@babel/parser@^7.23.0":
+"@babel/parser@^7.22.15":
version "7.23.0"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
-"@babel/plugin-proposal-decorators@^7.18.2":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.7.tgz#05d37453c2ce818f3e47bbeda9468c8de947eecc"
- integrity sha512-JB45hbUweYpwAGjkiM7uCyXMENH2lG+9r3G2E+ttc2PRXAoEkpfd/KW5jDg4j8RS6tLtTG1jZi9LbHZVSfs1/A==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.20.7"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-replace-supers" "^7.20.7"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/plugin-syntax-decorators" "^7.19.0"
+"@babel/parser@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b"
+ integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
-"@babel/plugin-syntax-decorators@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz#5f13d1d8fce96951bea01a10424463c9a5b3a599"
- integrity sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==
+"@babel/plugin-proposal-decorators@^7.18.6", "@babel/plugin-proposal-decorators@^7.23.7":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.7.tgz#1d827902cbd3d9054e54fb2f2056cdd1eaa0e368"
+ integrity sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==
dependencies:
- "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-create-class-features-plugin" "^7.23.7"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-decorators" "^7.23.3"
-"@babel/template@^7.18.10", "@babel/template@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
- integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==
+"@babel/plugin-syntax-decorators@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz#a1d351d6c25bfdcf2e16f99b039101bc0ffcb0ca"
+ integrity sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==
dependencies:
- "@babel/code-frame" "^7.18.6"
- "@babel/parser" "^7.20.7"
- "@babel/types" "^7.20.7"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/runtime@^7.21.0":
+ version "7.23.8"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650"
+ integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==
+ dependencies:
+ regenerator-runtime "^0.14.0"
"@babel/template@^7.22.15":
version "7.22.15"
@@ -314,31 +285,22 @@
"@babel/parser" "^7.22.15"
"@babel/types" "^7.22.15"
-"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.7":
- version "7.23.2"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8"
- integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==
+"@babel/traverse@^7.23.7":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305"
+ integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==
dependencies:
- "@babel/code-frame" "^7.22.13"
- "@babel/generator" "^7.23.0"
+ "@babel/code-frame" "^7.23.5"
+ "@babel/generator" "^7.23.6"
"@babel/helper-environment-visitor" "^7.22.20"
"@babel/helper-function-name" "^7.23.0"
"@babel/helper-hoist-variables" "^7.22.5"
"@babel/helper-split-export-declaration" "^7.22.6"
- "@babel/parser" "^7.23.0"
- "@babel/types" "^7.23.0"
- debug "^4.1.0"
+ "@babel/parser" "^7.23.6"
+ "@babel/types" "^7.23.6"
+ debug "^4.3.1"
globals "^11.1.0"
-"@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f"
- integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==
- dependencies:
- "@babel/helper-string-parser" "^7.19.4"
- "@babel/helper-validator-identifier" "^7.19.1"
- to-fast-properties "^2.0.0"
-
"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0":
version "7.23.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
@@ -348,19 +310,64 @@
"@babel/helper-validator-identifier" "^7.22.20"
to-fast-properties "^2.0.0"
+"@babel/types@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd"
+ integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==
+ dependencies:
+ "@babel/helper-string-parser" "^7.23.4"
+ "@babel/helper-validator-identifier" "^7.22.20"
+ to-fast-properties "^2.0.0"
+
+"@discourse/lint-configs@^1.3.5":
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/@discourse/lint-configs/-/lint-configs-1.3.5.tgz#894b5a224e8f3ef48b8baa5eee5dd42a2238bf12"
+ integrity sha512-GY/m3V3DWQAAY4DrY0puRsW50g/aA+QYqYwggi6RGU8LPjYTJIaSzf5z3+R5Z5SRn06+hBWuP5fTdT0AbXgRew==
+ dependencies:
+ "@babel/core" "^7.23.7"
+ "@babel/eslint-parser" "^7.23.3"
+ "@babel/plugin-proposal-decorators" "^7.23.7"
+ ember-template-lint "^5.13.0"
+ eslint "^8.56.0"
+ eslint-plugin-decorator-position "^5.0.2"
+ eslint-plugin-ember "^12.0.0"
+ eslint-plugin-qunit "^8.0.1"
+ eslint-plugin-simple-import-sort "^10.0.0"
+ eslint-plugin-sort-class-members "^1.19.0"
+ globals "^13.24.0"
+ prettier "^2.8.8"
+ prettier-plugin-ember-template-tag "^0.3.2"
+
"@ember-data/rfc395-data@^0.0.4":
version "0.0.4"
resolved "https://registry.yarnpkg.com/@ember-data/rfc395-data/-/rfc395-data-0.0.4.tgz#ecb86efdf5d7733a76ff14ea651a1b0ed1f8a843"
integrity sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ==
-"@eslint/eslintrc@^1.4.1":
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
- integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
+"@ember/edition-utils@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@ember/edition-utils/-/edition-utils-1.2.0.tgz#a039f542dc14c8e8299c81cd5abba95e2459cfa6"
+ integrity sha512-VmVq/8saCaPdesQmftPqbFtxJWrzxNGSQ+e8x8LLe3Hjm36pJ04Q8LeORGZkAeOhldoUX9seLGmSaHeXkIqoog==
+
+"@eslint-community/eslint-utils@^4.2.0":
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
+ integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
+ dependencies:
+ eslint-visitor-keys "^3.3.0"
+
+"@eslint-community/regexpp@^4.6.1":
+ version "4.10.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
+ integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
+
+"@eslint/eslintrc@^2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
+ integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
- espree "^9.4.0"
+ espree "^9.6.0"
globals "^13.19.0"
ignore "^5.2.0"
import-fresh "^3.2.1"
@@ -368,75 +375,114 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
+"@eslint/js@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b"
+ integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==
+
"@glimmer/env@0.1.7", "@glimmer/env@^0.1.7":
version "0.1.7"
resolved "https://registry.yarnpkg.com/@glimmer/env/-/env-0.1.7.tgz#fd2d2b55a9029c6b37a6c935e8c8871ae70dfa07"
integrity sha512-JKF/a9I9jw6fGoz8kA7LEQslrwJ5jms5CXhu/aqkBWk+PmZ6pTl8mlb/eJ/5ujBGTiQzBhy5AIWF712iA+4/mw==
-"@glimmer/global-context@0.83.1":
- version "0.83.1"
- resolved "https://registry.yarnpkg.com/@glimmer/global-context/-/global-context-0.83.1.tgz#3e2d97f10ff623bcfb5b7dc29a858d546a6c6d66"
- integrity sha512-OwlgqpbOJU73EjZOZdftab0fKbtdJ4x/QQeJseL9cvaAUiK3+w52M5ONFxD1T/yPBp2Mf7NCYqA/uL8tRbzY2A==
+"@glimmer/global-context@0.84.3":
+ version "0.84.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/global-context/-/global-context-0.84.3.tgz#f8bf2cda9562716f2ddf3f96837e7559600635c4"
+ integrity sha512-8Oy9Wg5IZxMEeAnVmzD2NkObf89BeHoFSzJgJROE/deutd3rxg83mvlOez4zBBGYwnTb+VGU2LYRpet92egJjA==
dependencies:
"@glimmer/env" "^0.1.7"
-"@glimmer/interfaces@0.83.1":
- version "0.83.1"
- resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.83.1.tgz#fb16f5f683ddc55f130887b6141f58c0751350fe"
- integrity sha512-rjAztghzX97v8I4rk3+NguM3XGYcFjc/GbJ8qrEj19KF2lUDoDBW1sB7f0tov3BD5HlrGXei/vOh4+DHfjeB5w==
+"@glimmer/interfaces@0.84.3":
+ version "0.84.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.84.3.tgz#629777a4abe373b0785656f6c8d08989f5784805"
+ integrity sha512-dk32ykoNojt0mvEaIW6Vli5MGTbQo58uy3Epj7ahCgTHmWOKuw/0G83f2UmFprRwFx689YTXG38I/vbpltEjzg==
dependencies:
"@simple-dom/interface" "^1.4.0"
-"@glimmer/reference@^0.83.1":
- version "0.83.1"
- resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.83.1.tgz#0345b95431b5bb19843b308e6311d1ef81e36192"
- integrity sha512-BThEwDlMkJB1WBPWDrww+VxgGyDbwxh5FFPvGhkovvCZnCb7fAMUCt9pi6CUZtviugkWOBFtE9P4eZZbOLkXeg==
+"@glimmer/interfaces@^0.85.13":
+ version "0.85.13"
+ resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.85.13.tgz#02ec31a29977cf06af5d1bb9f685f0ad453ae613"
+ integrity sha512-qOEdvFgCQX1g+Gfi/nA2zbKYPmEkEbhFgzZ5esgmlQNOSQx4j8nyGiBvnG/vepHrh4wUzTvIynrCQpfr3SiKXg==
+ dependencies:
+ "@simple-dom/interface" "^1.4.0"
+
+"@glimmer/reference@^0.84.3":
+ version "0.84.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.84.3.tgz#6420ad9c102633ac83939fd1b2457269d21fb632"
+ integrity sha512-lV+p/aWPVC8vUjmlvYVU7WQJsLh319SdXuAWoX/SE3pq340BJlAJiEcAc6q52y9JNhT57gMwtjMX96W5Xcx/qw==
dependencies:
"@glimmer/env" "^0.1.7"
- "@glimmer/global-context" "0.83.1"
- "@glimmer/interfaces" "0.83.1"
- "@glimmer/util" "0.83.1"
- "@glimmer/validator" "0.83.1"
+ "@glimmer/global-context" "0.84.3"
+ "@glimmer/interfaces" "0.84.3"
+ "@glimmer/util" "0.84.3"
+ "@glimmer/validator" "0.84.3"
-"@glimmer/syntax@^0.83.1":
- version "0.83.1"
- resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.83.1.tgz#7e18dd445871c157ba0281f12a4fbf316fa49b41"
- integrity sha512-n3vEd0GtjtgkOsd2gqkSimp8ecqq5KrHyana/s1XJZvVAPD5rMWT9WvAVWG8XAktns8BxjwLIUoj/vkOfA+eHg==
+"@glimmer/syntax@^0.84.2", "@glimmer/syntax@^0.84.3":
+ version "0.84.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.84.3.tgz#4045a1708cef7fd810cff42fe6deeba40c7286d0"
+ integrity sha512-ioVbTic6ZisLxqTgRBL2PCjYZTFIwobifCustrozRU2xGDiYvVIL0vt25h2c1ioDsX59UgVlDkIK4YTAQQSd2A==
dependencies:
- "@glimmer/interfaces" "0.83.1"
- "@glimmer/util" "0.83.1"
+ "@glimmer/interfaces" "0.84.3"
+ "@glimmer/util" "0.84.3"
"@handlebars/parser" "~2.0.0"
simple-html-tokenizer "^0.5.11"
-"@glimmer/util@0.83.1":
- version "0.83.1"
- resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.83.1.tgz#cc7511b03164d658cf6e3262fce5a0fcb82edceb"
- integrity sha512-amvjtl9dvrkxsoitXAly9W5NUaLIE3A2J2tWhBWIL1Z6DOFotfX7ytIosOIcPhJLZCtiXPHzMutQRv0G/MSMsA==
+"@glimmer/syntax@^0.85.13":
+ version "0.85.13"
+ resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.85.13.tgz#841e6da0a555252f087145f83f92cf0d9cf76cb5"
+ integrity sha512-zMGkJh6JcHdCTx1emmBbhBrGO04gqD6CS5khmDwSJCIpVHnGH0Ejxp9rpnSMc5IW71/hFoQY6RlMgVYF2hrHhA==
+ dependencies:
+ "@glimmer/interfaces" "^0.85.13"
+ "@glimmer/util" "^0.85.13"
+ "@glimmer/wire-format" "^0.85.13"
+ "@handlebars/parser" "~2.0.0"
+ simple-html-tokenizer "^0.5.11"
+
+"@glimmer/util@0.84.3":
+ version "0.84.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.84.3.tgz#9ae0166982c0b48aa94b02d6ba8c2c81976ade4b"
+ integrity sha512-qFkh6s16ZSRuu2rfz3T4Wp0fylFj3HBsONGXQcrAdZjdUaIS6v3pNj6mecJ71qRgcym9Hbaq/7/fefIwECUiKw==
dependencies:
"@glimmer/env" "0.1.7"
- "@glimmer/interfaces" "0.83.1"
+ "@glimmer/interfaces" "0.84.3"
"@simple-dom/interface" "^1.4.0"
-"@glimmer/validator@0.83.1", "@glimmer/validator@^0.83.0":
- version "0.83.1"
- resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.83.1.tgz#7578cb2284f728c8e9302c51fc6e7660b570ac54"
- integrity sha512-LaILSNnQgDHZpaUsfjVndbS1JfVn0xdTlJdFJblPbhoVklOBSReZVekens3EQ6xOr3BC612sRm1hBnEPixOY6A==
+"@glimmer/util@^0.85.13":
+ version "0.85.13"
+ resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.85.13.tgz#a17824e5fd91e4e3f3847f38f600ecd3c1508dad"
+ integrity sha512-ogj65iukNKEPPqQ2bOD6CLsqxsFwmiGvTQbAsg1eh1MoPjxhNZMpLsT5CdQ10XE7yUALHGJ71SwxBSpAOGDmxg==
+ dependencies:
+ "@glimmer/env" "0.1.7"
+ "@glimmer/interfaces" "^0.85.13"
+
+"@glimmer/validator@0.84.3", "@glimmer/validator@^0.84.3":
+ version "0.84.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.84.3.tgz#cd83b7f9ab78953f23cc11a32d83d7f729c54df2"
+ integrity sha512-RTBV4TokUB0vI31UC7ikpV7lOYpWUlyqaKV//pRC4pexYMlmqnVhkFrdiimB/R1XyNdUOQUmnIAcdic39NkbhQ==
dependencies:
"@glimmer/env" "^0.1.7"
- "@glimmer/global-context" "0.83.1"
+ "@glimmer/global-context" "0.84.3"
+
+"@glimmer/wire-format@^0.85.13":
+ version "0.85.13"
+ resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.85.13.tgz#a8df8c44646b8f0d09dda187ac64f45c33904b63"
+ integrity sha512-q6bHPfjSYE9jH27L75lUzyhSpBA+iONzsJVXewdwO4GdYYCC4s+pfUaJg7ZYNFDcHDuVKUcLhBb/NICDzMA5Uw==
+ dependencies:
+ "@glimmer/interfaces" "^0.85.13"
+ "@glimmer/util" "^0.85.13"
"@handlebars/parser@~2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@handlebars/parser/-/parser-2.0.0.tgz#5e8b7298f31ff8f7b260e6b7363c7e9ceed7d9c5"
integrity sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA==
-"@humanwhocodes/config-array@^0.11.8":
- version "0.11.8"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
- integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
+"@humanwhocodes/config-array@^0.11.13":
+ version "0.11.14"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
+ integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==
dependencies:
- "@humanwhocodes/object-schema" "^1.2.1"
- debug "^4.1.1"
+ "@humanwhocodes/object-schema" "^2.0.2"
+ debug "^4.3.1"
minimatch "^3.0.5"
"@humanwhocodes/module-importer@^1.0.1":
@@ -444,18 +490,19 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
-"@humanwhocodes/object-schema@^1.2.1":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
- integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+"@humanwhocodes/object-schema@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917"
+ integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
-"@jridgewell/gen-mapping@^0.1.0":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
- integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
+"@jridgewell/gen-mapping@^0.3.0":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
+ integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
dependencies:
- "@jridgewell/set-array" "^1.0.0"
+ "@jridgewell/set-array" "^1.0.1"
"@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
"@jridgewell/gen-mapping@^0.3.2":
version "0.3.2"
@@ -476,7 +523,7 @@
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
-"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
+"@jridgewell/set-array@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
@@ -507,17 +554,17 @@
"@jridgewell/resolve-uri" "3.1.0"
"@jridgewell/sourcemap-codec" "1.4.14"
-"@lint-todo/utils@^13.0.3":
- version "13.1.0"
- resolved "https://registry.yarnpkg.com/@lint-todo/utils/-/utils-13.1.0.tgz#bb99b479e357f20fbf5fa200c59cafda2a02f849"
- integrity sha512-uzcZPIPH7hcs+hKMiHfp58MosJpI9sTTgl1pGYau4zq34q1ppswJ6nLeohv/cDhqEBrHjtvldt8zDnVJXRvBlA==
+"@lint-todo/utils@^13.1.1":
+ version "13.1.1"
+ resolved "https://registry.yarnpkg.com/@lint-todo/utils/-/utils-13.1.1.tgz#5c054d61ee037b9e552add118264771122cc1166"
+ integrity sha512-F5z53uvRIF4dYfFfJP3a2Cqg+4P1dgJchJsFnsZE0eZp0LK8X7g2J0CsJHRgns+skpXOlM7n5vFGwkWCWj8qJg==
dependencies:
- "@types/eslint" "^7.2.13"
+ "@types/eslint" "^8.4.9"
find-up "^5.0.0"
fs-extra "^9.1.0"
proper-lockfile "^4.1.2"
slash "^3.0.0"
- tslib "^2.4.0"
+ tslib "^2.4.1"
upath "^2.0.1"
"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
@@ -553,10 +600,10 @@
resolved "https://registry.yarnpkg.com/@simple-dom/interface/-/interface-1.4.0.tgz#e8feea579232017f89b0138e2726facda6fbb71f"
integrity sha512-l5qumKFWU0S+4ZzMaLXFU8tQZsicHEMEyAxI5kDFGhJsRqDwe0a7/iPA/GdxlGyDKseQQAgIz5kzU7eXTrlSpA==
-"@types/eslint@^7.2.13":
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78"
- integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==
+"@types/eslint@^8.4.9":
+ version "8.56.2"
+ resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.2.tgz#1c72a9b794aa26a8b94ad26d5b9aa51c8a6384bb"
+ integrity sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==
dependencies:
"@types/estree" "*"
"@types/json-schema" "*"
@@ -581,17 +628,43 @@
resolved "https://registry.yarnpkg.com/@types/symlink-or-copy/-/symlink-or-copy-1.2.0.tgz#4151a81b4052c80bc2becbae09f3a9ec010a9c7a"
integrity sha512-Lja2xYuuf2B3knEsga8ShbOdsfNOtzT73GyJmZyY7eGl2+ajOqrs8yM5ze0fsSoYwvA6bw7/Qr7OZ7PEEmYwWg==
+"@typescript-eslint/scope-manager@^6.15.0":
+ version "6.19.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz#b6d2abb825b29ab70cb542d220e40c61c1678116"
+ integrity sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==
+ dependencies:
+ "@typescript-eslint/types" "6.19.0"
+ "@typescript-eslint/visitor-keys" "6.19.0"
+
+"@typescript-eslint/types@6.19.0":
+ version "6.19.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.0.tgz#689b0498c436272a6a2059b09f44bcbd90de294a"
+ integrity sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==
+
+"@typescript-eslint/visitor-keys@6.19.0":
+ version "6.19.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz#4565e0ecd63ca1f81b96f1dd76e49f746c6b2b49"
+ integrity sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==
+ dependencies:
+ "@typescript-eslint/types" "6.19.0"
+ eslint-visitor-keys "^3.4.1"
+
+"@ungap/structured-clone@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
+ integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
+
acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-acorn@^8.8.0:
- version "8.8.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73"
- integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
+acorn@^8.9.0:
+ version "8.11.3"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
+ integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
-ajv@^6.10.0, ajv@^6.12.4:
+ajv@^6.12.4:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -625,12 +698,20 @@ argparse@^2.0.1:
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-aria-query@^5.0.2:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
- integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
+aria-query@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e"
+ integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==
dependencies:
- deep-equal "^2.0.5"
+ dequal "^2.0.3"
+
+array-buffer-byte-length@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead"
+ integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==
+ dependencies:
+ call-bind "^1.0.2"
+ is-array-buffer "^3.0.1"
array-equal@^1.0.0:
version "1.0.0"
@@ -642,6 +723,19 @@ array-union@^2.1.0:
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+arraybuffer.prototype.slice@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12"
+ integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==
+ dependencies:
+ array-buffer-byte-length "^1.0.0"
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ get-intrinsic "^1.2.1"
+ is-array-buffer "^3.0.2"
+ is-shared-array-buffer "^1.0.2"
+
async-disk-cache@^1.2.1:
version "1.3.5"
resolved "https://registry.yarnpkg.com/async-disk-cache/-/async-disk-cache-1.3.5.tgz#cc6206ed79bb6982b878fc52e0505e4f52b62a02"
@@ -655,6 +749,19 @@ async-disk-cache@^1.2.1:
rsvp "^3.0.18"
username-sync "^1.0.2"
+async-disk-cache@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/async-disk-cache/-/async-disk-cache-2.1.0.tgz#e0f37b187ed8c41a5991518a9556d206ae2843a2"
+ integrity sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg==
+ dependencies:
+ debug "^4.1.1"
+ heimdalljs "^0.2.3"
+ istextorbinary "^2.5.1"
+ mkdirp "^0.5.0"
+ rimraf "^3.0.0"
+ rsvp "^4.8.5"
+ username-sync "^1.0.2"
+
async-promise-queue@^1.0.3, async-promise-queue@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/async-promise-queue/-/async-promise-queue-1.0.5.tgz#cb23bce9fce903a133946a700cc85f27f09ea49d"
@@ -685,6 +792,37 @@ babel-import-util@^0.2.0:
resolved "https://registry.yarnpkg.com/babel-import-util/-/babel-import-util-0.2.0.tgz#b468bb679919601a3570f9e317536c54f2862e23"
integrity sha512-CtWYYHU/MgK88rxMrLfkD356dApswtR/kWZ/c6JifG1m10e7tBBrs/366dFzWMAoqYmG5/JSh+94tUSpIwh+ag==
+babel-import-util@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/babel-import-util/-/babel-import-util-2.0.1.tgz#263a2963ee9208428c04f05326c6ea32b2206ac6"
+ integrity sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==
+
+babel-plugin-ember-modules-api-polyfill@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-3.5.0.tgz#27b6087fac75661f779f32e60f94b14d0e9f6965"
+ integrity sha512-pJajN/DkQUnStw0Az8c6khVcMQHgzqWr61lLNtVeu0g61LRW0k9jyK7vaedrHDWGe/Qe8sxG5wpiyW9NsMqFzA==
+ dependencies:
+ ember-rfc176-data "^0.3.17"
+
+babel-plugin-ember-template-compilation@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.1.tgz#81ad03f572e94bda92ebc2c0005d5179e3f7c980"
+ integrity sha512-alinprIQcLficqkuIyeKKfD4HQOpMOiHK6pt6Skj/yjoPoQYBuwAJ2BoPAlRe9k/URPeVkpMefbN3m6jEp7RsA==
+ dependencies:
+ "@glimmer/syntax" "^0.84.3"
+ babel-import-util "^2.0.0"
+
+babel-plugin-htmlbars-inline-precompile@^5.3.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-5.3.1.tgz#5ba272e2e4b6221522401f5f1d98a73b1de38787"
+ integrity sha512-QWjjFgSKtSRIcsBhJmEwS2laIdrA6na8HAlc/pEAhjHgQsah/gMiBFRZvbQTy//hWxR4BMwV7/Mya7q5H8uHeA==
+ dependencies:
+ babel-plugin-ember-modules-api-polyfill "^3.5.0"
+ line-column "^1.0.2"
+ magic-string "^0.25.7"
+ parse-static-imports "^1.1.0"
+ string.prototype.matchall "^4.0.5"
+
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@@ -695,7 +833,7 @@ base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-"binaryextensions@1 || 2":
+"binaryextensions@1 || 2", binaryextensions@^2.1.2:
version "2.3.0"
resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22"
integrity sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==
@@ -776,6 +914,25 @@ broccoli-merge-trees@^3.0.1:
broccoli-plugin "^1.3.0"
merge-trees "^2.0.0"
+broccoli-node-api@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/broccoli-node-api/-/broccoli-node-api-1.7.0.tgz#391aa6edecd2a42c63c111b4162956b2fa288cb6"
+ integrity sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw==
+
+broccoli-node-info@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/broccoli-node-info/-/broccoli-node-info-2.2.0.tgz#feb01c13020792f429e01d7f7845dc5b3a7932b3"
+ integrity sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg==
+
+broccoli-output-wrapper@^3.2.5:
+ version "3.2.5"
+ resolved "https://registry.yarnpkg.com/broccoli-output-wrapper/-/broccoli-output-wrapper-3.2.5.tgz#514b17801c92922a2c2f87fd145df2a25a11bc5f"
+ integrity sha512-bQAtwjSrF4Nu0CK0JOy5OZqw9t5U0zzv2555EA/cF8/a8SLDTIetk9UgrtMVw7qKLKdSpOZ2liZNeZZDaKgayw==
+ dependencies:
+ fs-extra "^8.1.0"
+ heimdalljs-logger "^0.1.10"
+ symlink-or-copy "^1.2.0"
+
broccoli-persistent-filter@^2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-2.3.1.tgz#4a052e0e0868b344c3a2977e35a3d497aa9eca72"
@@ -796,6 +953,23 @@ broccoli-persistent-filter@^2.3.0:
sync-disk-cache "^1.3.3"
walk-sync "^1.0.0"
+broccoli-persistent-filter@^3.1.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-3.1.3.tgz#aca815bf3e3b0247bd0a7b567fdb0d0e08c99cc2"
+ integrity sha512-Q+8iezprZzL9voaBsDY3rQVl7c7H5h+bvv8SpzCZXPZgfBFCbx7KFQ2c3rZR6lW5k4Kwoqt7jG+rZMUg67Gwxw==
+ dependencies:
+ async-disk-cache "^2.0.0"
+ async-promise-queue "^1.0.3"
+ broccoli-plugin "^4.0.3"
+ fs-tree-diff "^2.0.0"
+ hash-for-dep "^1.5.0"
+ heimdalljs "^0.2.1"
+ heimdalljs-logger "^0.1.7"
+ promise-map-series "^0.2.1"
+ rimraf "^3.0.0"
+ symlink-or-copy "^1.0.1"
+ sync-disk-cache "^2.0.0"
+
broccoli-plugin@^1.0.0, broccoli-plugin@^1.2.1, broccoli-plugin@^1.3.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.3.1.tgz#a26315732fb99ed2d9fb58f12a1e14e986b4fabd"
@@ -816,6 +990,19 @@ broccoli-plugin@^2.1.0:
rimraf "^2.3.4"
symlink-or-copy "^1.1.8"
+broccoli-plugin@^4.0.3:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-4.0.7.tgz#dd176a85efe915ed557d913744b181abe05047db"
+ integrity sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==
+ dependencies:
+ broccoli-node-api "^1.7.0"
+ broccoli-output-wrapper "^3.2.5"
+ fs-merger "^3.2.1"
+ promise-map-series "^0.3.0"
+ quick-temp "^0.1.8"
+ rimraf "^3.0.2"
+ symlink-or-copy "^1.3.1"
+
broccoli-stew@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/broccoli-stew/-/broccoli-stew-3.0.0.tgz#fd1d19d162ad9490b42e5c563b78c26eb1e80b95"
@@ -836,15 +1023,15 @@ broccoli-stew@^3.0.0:
symlink-or-copy "^1.2.0"
walk-sync "^1.1.3"
-browserslist@^4.21.3:
- version "4.21.4"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
- integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
+browserslist@^4.22.2:
+ version "4.22.2"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b"
+ integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==
dependencies:
- caniuse-lite "^1.0.30001400"
- electron-to-chromium "^1.4.251"
- node-releases "^2.0.6"
- update-browserslist-db "^1.0.9"
+ caniuse-lite "^1.0.30001565"
+ electron-to-chromium "^1.4.601"
+ node-releases "^2.0.14"
+ update-browserslist-db "^1.0.13"
buffer@^5.5.0:
version "5.7.1"
@@ -862,6 +1049,15 @@ call-bind@^1.0.0, call-bind@^1.0.2:
function-bind "^1.1.1"
get-intrinsic "^1.0.2"
+call-bind@^1.0.4, call-bind@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
+ integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
+ dependencies:
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.1"
+ set-function-length "^1.1.1"
+
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
@@ -874,12 +1070,12 @@ can-symlink@^1.0.0:
dependencies:
tmp "0.0.28"
-caniuse-lite@^1.0.30001400:
- version "1.0.30001441"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e"
- integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==
+caniuse-lite@^1.0.30001565:
+ version "1.0.30001576"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz#893be772cf8ee6056d6c1e2d07df365b9ec0a5c4"
+ integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==
-chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -888,7 +1084,7 @@ chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
+chalk@^4.0.0, chalk@^4.1.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -896,10 +1092,15 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-ci-info@^3.4.0:
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f"
- integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==
+chalk@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385"
+ integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==
+
+ci-info@^3.8.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
+ integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
clean-up-path@^1.0.0:
version "1.0.0"
@@ -971,10 +1172,20 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-convert-source-map@^1.7.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
- integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
+content-tag@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/content-tag/-/content-tag-1.2.2.tgz#8cbc3cdb9957a81f7c425b138e334330dd6fd78d"
+ integrity sha512-9guqKIx2H+78N17otBpl8yLZbQGL5q1vBO/jDb3gF2JjixtcVpC62jDUNxjVMNoaZ09oxRX84ZOD6VX02qkVvg==
+
+convert-source-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+ integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
+core-js@^3.4.1:
+ version "3.35.0"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.0.tgz#58e651688484f83c34196ca13f099574ee53d6b4"
+ integrity sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==
cross-spawn@^7.0.2:
version "7.0.3"
@@ -985,7 +1196,7 @@ cross-spawn@^7.0.2:
shebang-command "^2.0.0"
which "^2.0.1"
-css-tree@^2.0.4:
+css-tree@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20"
integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==
@@ -993,10 +1204,12 @@ css-tree@^2.0.4:
mdn-data "2.0.30"
source-map-js "^1.0.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==
+date-fns@^2.30.0:
+ version "2.30.0"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"
+ integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==
+ dependencies:
+ "@babel/runtime" "^7.21.0"
debug@^2.1.3, debug@^2.2.0, debug@^2.6.8:
version "2.6.9"
@@ -1005,34 +1218,13 @@ debug@^2.1.3, debug@^2.2.0, debug@^2.6.8:
dependencies:
ms "2.0.0"
-debug@^4.1.0, debug@^4.1.1, debug@^4.3.2:
+debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
-deep-equal@^2.0.5:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.1.0.tgz#5ba60402cf44ab92c2c07f3f3312c3d857a0e1dd"
- integrity sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==
- dependencies:
- call-bind "^1.0.2"
- es-get-iterator "^1.1.2"
- get-intrinsic "^1.1.3"
- is-arguments "^1.1.1"
- is-date-object "^1.0.5"
- is-regex "^1.1.4"
- isarray "^2.0.5"
- object-is "^1.1.5"
- object-keys "^1.1.1"
- object.assign "^4.1.4"
- regexp.prototype.flags "^1.4.3"
- side-channel "^1.0.4"
- which-boxed-primitive "^1.0.2"
- which-collection "^1.0.1"
- which-typed-array "^1.1.8"
-
deep-is@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
@@ -1045,6 +1237,15 @@ defaults@^1.0.3:
dependencies:
clone "^1.0.2"
+define-data-property@^1.0.1, define-data-property@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
+ integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
+ dependencies:
+ get-intrinsic "^1.2.1"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.0"
+
define-properties@^1.1.3, define-properties@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1"
@@ -1053,6 +1254,20 @@ define-properties@^1.1.3, define-properties@^1.1.4:
has-property-descriptors "^1.0.0"
object-keys "^1.1.1"
+define-properties@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
+ integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
+ dependencies:
+ define-data-property "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
+
+dequal@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
+ integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
+
dir-glob@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
@@ -1080,16 +1295,44 @@ editions@^1.1.1:
resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b"
integrity sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==
-electron-to-chromium@^1.4.251:
- version "1.4.284"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
- integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
+editions@^2.2.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/editions/-/editions-2.3.1.tgz#3bc9962f1978e801312fbd0aebfed63b49bfe698"
+ integrity sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==
+ dependencies:
+ errlop "^2.0.0"
+ semver "^6.3.0"
+
+electron-to-chromium@^1.4.601:
+ version "1.4.631"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.631.tgz#db2de2e1ce90fc1785b5c3f49fde594413270e05"
+ integrity sha512-g73CJB/rMPjdxpiNJYmV1homV7mLVUNe/R0z/HhqMfpjkt58FpYmkTjbtuv3zymdbTTJ+VOEqe1c+lkTjSOhmQ==
ember-cli-babel-plugin-helpers@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879"
integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==
+ember-cli-htmlbars@^6.2.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz#ac85f2bbd09788992ab7f9ca832cd044fb8e5798"
+ integrity sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==
+ dependencies:
+ "@ember/edition-utils" "^1.2.0"
+ babel-plugin-ember-template-compilation "^2.0.0"
+ babel-plugin-htmlbars-inline-precompile "^5.3.0"
+ broccoli-debug "^0.6.5"
+ broccoli-persistent-filter "^3.1.2"
+ broccoli-plugin "^4.0.3"
+ ember-cli-version-checker "^5.1.2"
+ fs-tree-diff "^2.0.1"
+ hash-for-dep "^1.5.1"
+ heimdalljs-logger "^0.1.10"
+ js-string-escape "^1.0.1"
+ semver "^7.3.4"
+ silent-error "^1.1.1"
+ walk-sync "^2.2.0"
+
ember-cli-version-checker@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-5.1.2.tgz#649c7b6404902e3b3d69c396e054cea964911ab0"
@@ -1099,15 +1342,27 @@ ember-cli-version-checker@^5.1.2:
semver "^7.3.4"
silent-error "^1.1.1"
-ember-rfc176-data@^0.3.15:
- version "0.3.17"
- resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.17.tgz#d4fc6c33abd6ef7b3440c107a28e04417b49860a"
- integrity sha512-EVzTTKqxv9FZbEh6Ktw56YyWRAA0MijKvl7H8C06wVF+8f/cRRz3dXxa4nkwjzyVwx4rzKGuIGq77hxJAQhWWw==
+ember-eslint-parser@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/ember-eslint-parser/-/ember-eslint-parser-0.2.5.tgz#3c2cddcbf5134aebd0d88018357797a1b66a455d"
+ integrity sha512-ht3kkY6h+kWb6yW2OrqFG9TpC4pgdiTflDYMmJtHgZbbrIPD8fCeo8jVPBYCIO5HCHqxVwmT1H0rNlRRhWfUJg==
+ dependencies:
+ "@babel/eslint-parser" "^7.23.3"
+ "@glimmer/syntax" "^0.85.13"
+ "@typescript-eslint/scope-manager" "^6.15.0"
+ content-tag "^1.2.2"
+ eslint-scope "^7.2.2"
+ html-tags "^3.3.1"
-ember-template-imports@^3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/ember-template-imports/-/ember-template-imports-3.4.0.tgz#c40757e2d41e289ce08c0fe80671000bf216e0ef"
- integrity sha512-3Cwcj3NXA129g3ZhmrQ/nYOxksFonTmB/qxyaSNTHrLBSoc93UZys47hBz13DlcfoeSCCrNt2Qpq1j890I04PQ==
+ember-rfc176-data@^0.3.17, ember-rfc176-data@^0.3.18:
+ version "0.3.18"
+ resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.18.tgz#bb6fdcef49999981317ea81b6cc9210fb4108d65"
+ integrity sha512-JtuLoYGSjay1W3MQAxt3eINWXNYYQliK90tLwtb8aeCuQK8zKGCRbBodVIrkcTqshULMnRuTOS6t1P7oQk3g6Q==
+
+ember-template-imports@^3.4.1, ember-template-imports@^3.4.2:
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/ember-template-imports/-/ember-template-imports-3.4.2.tgz#6cf7de7d4b8348a0fddf3aaec4947aa1211289e6"
+ integrity sha512-OS8TUVG2kQYYwP3netunLVfeijPoOKIs1SvPQRTNOQX4Pu8xGGBEZmrv0U1YTnQn12Eg+p6w/0UdGbUnITjyzw==
dependencies:
babel-import-util "^0.2.0"
broccoli-stew "^3.0.0"
@@ -1119,42 +1374,38 @@ ember-template-imports@^3.4.0:
string.prototype.matchall "^4.0.6"
validate-peer-dependencies "^1.1.0"
-ember-template-lint-plugin-discourse@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/ember-template-lint-plugin-discourse/-/ember-template-lint-plugin-discourse-3.0.0.tgz#9212226e4d2f6dce2e35b480aaf240067d736246"
- integrity sha512-4zi/qN+vXs0ZpJZrwdMfZ5hMThJbeVCFdof6iek4PmgIJhnlA0lzqIa1BrKpSKhr3ckd5K0rUMNcCAm0uKNOtg==
-
-ember-template-lint@^4.10.0:
- version "4.18.2"
- resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-4.18.2.tgz#18e5e5fc6ea7301e7a075e024008271d2a781e1e"
- integrity sha512-yI8kQ8IQ2x5HVq0tQAISXABOHr0Is5sAg6rwceO6M8CYozq7HMxUPEj0VbdcbyIE70SWw/8d24M1rBI4km544Q==
+ember-template-lint@^5.13.0:
+ version "5.13.0"
+ resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-5.13.0.tgz#e9e3864646b9e16ce77a2ec8a91a5204be85d4c4"
+ integrity sha512-AYxz9S9fVZfHPmTsymc7NwsD7FVmDUZyfC+KYpxDlK0wic7JSQx2FNQNqQSBFRLOuzn7VQ0/+1pX6DGqKDGswg==
dependencies:
- "@lint-todo/utils" "^13.0.3"
- aria-query "^5.0.2"
- chalk "^4.1.2"
- ci-info "^3.4.0"
- date-fns "^2.29.2"
- ember-template-imports "^3.4.0"
- ember-template-recast "^6.1.3"
+ "@lint-todo/utils" "^13.1.1"
+ aria-query "^5.3.0"
+ chalk "^5.3.0"
+ ci-info "^3.8.0"
+ date-fns "^2.30.0"
+ ember-template-imports "^3.4.2"
+ ember-template-recast "^6.1.4"
+ eslint-formatter-kakoune "^1.0.0"
find-up "^6.3.0"
fuse.js "^6.5.3"
get-stdin "^9.0.0"
- globby "^13.1.2"
+ globby "^13.2.2"
is-glob "^4.0.3"
- language-tags "^1.0.5"
+ language-tags "^1.0.8"
micromatch "^4.0.5"
- resolve "^1.22.1"
+ resolve "^1.22.3"
v8-compile-cache "^2.3.0"
- yargs "^17.5.1"
+ yargs "^17.7.2"
-ember-template-recast@^6.1.3:
- version "6.1.3"
- resolved "https://registry.yarnpkg.com/ember-template-recast/-/ember-template-recast-6.1.3.tgz#1e9b256ee9da24bcaa7c213088d01f32afc88001"
- integrity sha512-45lkfjrWlrMPlOd5rLFeQeePZwAvcS//x1x15kaiQTlqQdYWiYNXwbpWHqV+p9fXY6bEjl6EbyPhG/zBkgh8MA==
+ember-template-recast@^6.1.4:
+ version "6.1.4"
+ resolved "https://registry.yarnpkg.com/ember-template-recast/-/ember-template-recast-6.1.4.tgz#e964c184adfd876878009f8aa0b84c95633fce20"
+ integrity sha512-fCh+rOK6z+/tsdkTbOE+e7f84P6ObnIRQrCCrnu21E4X05hPeradikIkRMhJdxn4NWrxitfZskQDd37TR/lsNQ==
dependencies:
- "@glimmer/reference" "^0.83.1"
- "@glimmer/syntax" "^0.83.1"
- "@glimmer/validator" "^0.83.0"
+ "@glimmer/reference" "^0.84.3"
+ "@glimmer/syntax" "^0.84.3"
+ "@glimmer/validator" "^0.84.3"
async-promise-queue "^1.0.5"
colors "^1.4.0"
commander "^8.3.0"
@@ -1162,7 +1413,7 @@ ember-template-recast@^6.1.3:
ora "^5.4.0"
slash "^3.0.0"
tmp "^0.2.1"
- workerpool "^6.1.5"
+ workerpool "^6.4.0"
emoji-regex@^8.0.0:
version "8.0.0"
@@ -1174,6 +1425,11 @@ ensure-posix-path@^1.0.0, ensure-posix-path@^1.0.1, ensure-posix-path@^1.1.0:
resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz#3c62bdb19fa4681544289edb2b382adc029179ce"
integrity sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==
+errlop@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.2.0.tgz#1ff383f8f917ae328bebb802d6ca69666a42d21b"
+ integrity sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==
+
es-abstract@^1.19.0, es-abstract@^1.20.4:
version "1.20.5"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2"
@@ -1205,19 +1461,59 @@ es-abstract@^1.19.0, es-abstract@^1.20.4:
string.prototype.trimstart "^1.0.6"
unbox-primitive "^1.0.2"
-es-get-iterator@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7"
- integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==
+es-abstract@^1.22.1:
+ version "1.22.3"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32"
+ integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==
dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.0"
- has-symbols "^1.0.1"
- is-arguments "^1.1.0"
- is-map "^2.0.2"
- is-set "^2.0.2"
- is-string "^1.0.5"
- isarray "^2.0.5"
+ array-buffer-byte-length "^1.0.0"
+ arraybuffer.prototype.slice "^1.0.2"
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.5"
+ es-set-tostringtag "^2.0.1"
+ es-to-primitive "^1.2.1"
+ function.prototype.name "^1.1.6"
+ get-intrinsic "^1.2.2"
+ get-symbol-description "^1.0.0"
+ globalthis "^1.0.3"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
+ internal-slot "^1.0.5"
+ is-array-buffer "^3.0.2"
+ is-callable "^1.2.7"
+ is-negative-zero "^2.0.2"
+ is-regex "^1.1.4"
+ is-shared-array-buffer "^1.0.2"
+ is-string "^1.0.7"
+ is-typed-array "^1.1.12"
+ is-weakref "^1.0.2"
+ object-inspect "^1.13.1"
+ object-keys "^1.1.1"
+ object.assign "^4.1.4"
+ regexp.prototype.flags "^1.5.1"
+ safe-array-concat "^1.0.1"
+ safe-regex-test "^1.0.0"
+ string.prototype.trim "^1.2.8"
+ string.prototype.trimend "^1.0.7"
+ string.prototype.trimstart "^1.0.7"
+ typed-array-buffer "^1.0.0"
+ typed-array-byte-length "^1.0.0"
+ typed-array-byte-offset "^1.0.0"
+ typed-array-length "^1.0.4"
+ unbox-primitive "^1.0.2"
+ which-typed-array "^1.1.13"
+
+es-set-tostringtag@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9"
+ integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==
+ dependencies:
+ get-intrinsic "^1.2.2"
+ has-tostringtag "^1.0.0"
+ hasown "^2.0.0"
es-to-primitive@^1.2.1:
version "1.2.1"
@@ -1243,76 +1539,55 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-eslint-config-discourse@^3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/eslint-config-discourse/-/eslint-config-discourse-3.4.0.tgz#636a1824bca48c90aeac5bee2f8d7b993609191f"
- integrity sha512-9jwu8GQPDOxAO0ByV6RbInu5r39HrFvbAHQRJ8YoGg2fuvHcX+p7fYcxEWj64LhmF4qD55cAGhN0Gmj10RVjoQ==
- dependencies:
- "@babel/core" "^7.18.5"
- "@babel/eslint-parser" "^7.18.2"
- "@babel/plugin-proposal-decorators" "^7.18.2"
- ember-template-lint "^4.10.0"
- ember-template-lint-plugin-discourse "^3.0.0"
- eslint "^8.17.0"
- eslint-plugin-discourse-ember latest
- eslint-plugin-ember "^10.6.1"
- eslint-plugin-lodash "^7.1.0"
- eslint-plugin-node "^11.1.0"
- eslint-plugin-sort-class-members "^1.14.1"
- prettier "2.8.1"
+eslint-formatter-kakoune@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-formatter-kakoune/-/eslint-formatter-kakoune-1.0.0.tgz#a95cc4fe1fbc06b84e0f2397e83f5f0b68340125"
+ integrity sha512-Uk/TVLt6Nf6Xoz7C1iYuZjOSdJxe5aaauGRke8JhKeJwD66Y61/pY2FjtLP04Ooq9PwV34bzrkKkU2UZ5FtDRA==
-eslint-plugin-discourse-ember@latest:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/eslint-plugin-discourse-ember/-/eslint-plugin-discourse-ember-0.0.3.tgz#69e5876c2ece38ab3d6c4a05f0a20a7dc4c21e37"
- integrity sha512-EFwWU4FlOSLBa4RolKZL8QD1eGOnvSkACLt4Big+o1ZUIpW7gGvfnJPtxkbaQ4XmhtZ5HetYt6862vVqhUMv9A==
+eslint-plugin-decorator-position@^5.0.2:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-decorator-position/-/eslint-plugin-decorator-position-5.0.2.tgz#c96f46d8ef0f7dbd519ff91a67ccc4b6ba30693b"
+ integrity sha512-wFcRfrB9zljOP1n5udg16h6ITX1jG8cnUvuFVtIqVxw5O9BTOXFHB9hvsTaqpb8JFX2dq19fH3i/ipUeFSF87w==
dependencies:
- requireindex "~1.1.0"
+ "@babel/core" "^7.18.6"
+ "@babel/plugin-proposal-decorators" "^7.18.6"
+ "@ember-data/rfc395-data" "^0.0.4"
+ ember-rfc176-data "^0.3.17"
+ snake-case "^3.0.4"
-eslint-plugin-ember@^10.6.1:
- version "10.6.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-ember/-/eslint-plugin-ember-10.6.1.tgz#04ea84cc82307f64a2faa4f2855b30e5ebf9f722"
- integrity sha512-R+TN3jwhYQ2ytZCA1VkfJDZSGgHFOHjsHU1DrBlRXYRepThe56PpuGxywAyDvQ7inhoAz3e6G6M60PzpvjzmNg==
+eslint-plugin-ember@^12.0.0:
+ version "12.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-ember/-/eslint-plugin-ember-12.0.0.tgz#e53df2865bde1af47c218ad65dcf35f4dbebb7b0"
+ integrity sha512-+GQTzL925GeKM8lUmSVskc3HqSspz7UwvW9TV0h3Z9BoSxki0qLe0RN4dfwQBxirpHu1+/4b1tLs2BKu3UEOXQ==
dependencies:
"@ember-data/rfc395-data" "^0.0.4"
- css-tree "^2.0.4"
- ember-rfc176-data "^0.3.15"
+ css-tree "^2.3.1"
+ ember-eslint-parser "^0.2.5"
+ ember-rfc176-data "^0.3.18"
eslint-utils "^3.0.0"
- estraverse "^5.2.0"
+ estraverse "^5.3.0"
+ lodash.camelcase "^4.3.0"
lodash.kebabcase "^4.1.1"
requireindex "^1.2.0"
snake-case "^3.0.3"
-eslint-plugin-es@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893"
- integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==
+eslint-plugin-qunit@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-qunit/-/eslint-plugin-qunit-8.0.1.tgz#4969c2a5a13c7362cee1b38a2c0c06b60437a931"
+ integrity sha512-3bFOPryXoQOez95oP/JfWTxHBc/bgDQQZqTuv9uYTwH5sdIvSM2TES1iHDcy/F/LvqiqIpscDAOPAjlqSCnNPg==
dependencies:
- eslint-utils "^2.0.0"
- regexpp "^3.0.0"
+ eslint-utils "^3.0.0"
+ requireindex "^1.2.0"
-eslint-plugin-lodash@^7.1.0:
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-lodash/-/eslint-plugin-lodash-7.4.0.tgz#14a761547f126c92ff56789662a20a44f8bb6290"
- integrity sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==
- dependencies:
- lodash "^4.17.21"
+eslint-plugin-simple-import-sort@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz#cc4ceaa81ba73252427062705b64321946f61351"
+ integrity sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==
-eslint-plugin-node@^11.1.0:
- version "11.1.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d"
- integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==
- dependencies:
- eslint-plugin-es "^3.0.0"
- eslint-utils "^2.0.0"
- ignore "^5.1.1"
- minimatch "^3.0.4"
- resolve "^1.10.1"
- semver "^6.1.0"
-
-eslint-plugin-sort-class-members@^1.14.1:
- version "1.16.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-sort-class-members/-/eslint-plugin-sort-class-members-1.16.0.tgz#e47596d867a57713571f040024c03fe674dec3fc"
- integrity sha512-8l0IqUmoupk9PvO5D4I5zJqirVe9sax5Hpfv9xQmnrSpLYkc8BSYGnUjuHGMSSe4jKuC73NIr38kQv1tPbO+Xg==
+eslint-plugin-sort-class-members@^1.19.0:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-sort-class-members/-/eslint-plugin-sort-class-members-1.19.0.tgz#9ad7a674c4cb477fceaddb8162515372d381c733"
+ integrity sha512-YayvASA1bavdPeRU9FMPnale2+Oi3aMcHGVC5EUm9b671oxm7ahvR+q8BfsU2aV+KAFezNfu47VPgdZK6gwYPw==
eslint-scope@5.1.1:
version "5.1.1"
@@ -1322,21 +1597,14 @@ eslint-scope@5.1.1:
esrecurse "^4.3.0"
estraverse "^4.1.1"
-eslint-scope@^7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
- integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
+eslint-scope@^7.2.2:
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
+ integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
-eslint-utils@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
- integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
- dependencies:
- eslint-visitor-keys "^1.1.0"
-
eslint-utils@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
@@ -1344,11 +1612,6 @@ eslint-utils@^3.0.0:
dependencies:
eslint-visitor-keys "^2.0.0"
-eslint-visitor-keys@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
- integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
-
eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
@@ -1359,64 +1622,68 @@ eslint-visitor-keys@^3.3.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
-eslint@^8.17.0:
- version "8.31.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524"
- integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==
+eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
+ integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+
+eslint@^8.56.0:
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15"
+ integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==
dependencies:
- "@eslint/eslintrc" "^1.4.1"
- "@humanwhocodes/config-array" "^0.11.8"
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@eslint-community/regexpp" "^4.6.1"
+ "@eslint/eslintrc" "^2.1.4"
+ "@eslint/js" "8.56.0"
+ "@humanwhocodes/config-array" "^0.11.13"
"@humanwhocodes/module-importer" "^1.0.1"
"@nodelib/fs.walk" "^1.2.8"
- ajv "^6.10.0"
+ "@ungap/structured-clone" "^1.2.0"
+ ajv "^6.12.4"
chalk "^4.0.0"
cross-spawn "^7.0.2"
debug "^4.3.2"
doctrine "^3.0.0"
escape-string-regexp "^4.0.0"
- eslint-scope "^7.1.1"
- eslint-utils "^3.0.0"
- eslint-visitor-keys "^3.3.0"
- espree "^9.4.0"
- esquery "^1.4.0"
+ eslint-scope "^7.2.2"
+ eslint-visitor-keys "^3.4.3"
+ espree "^9.6.1"
+ esquery "^1.4.2"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
file-entry-cache "^6.0.1"
find-up "^5.0.0"
glob-parent "^6.0.2"
globals "^13.19.0"
- grapheme-splitter "^1.0.4"
+ graphemer "^1.4.0"
ignore "^5.2.0"
- import-fresh "^3.0.0"
imurmurhash "^0.1.4"
is-glob "^4.0.0"
is-path-inside "^3.0.3"
- js-sdsl "^4.1.4"
js-yaml "^4.1.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.4.1"
lodash.merge "^4.6.2"
minimatch "^3.1.2"
natural-compare "^1.4.0"
- optionator "^0.9.1"
- regexpp "^3.2.0"
+ optionator "^0.9.3"
strip-ansi "^6.0.1"
- strip-json-comments "^3.1.0"
text-table "^0.2.0"
-espree@^9.4.0:
- version "9.4.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd"
- integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==
+espree@^9.6.0, espree@^9.6.1:
+ version "9.6.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
+ integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
dependencies:
- acorn "^8.8.0"
+ acorn "^8.9.0"
acorn-jsx "^5.3.2"
- eslint-visitor-keys "^3.3.0"
+ eslint-visitor-keys "^3.4.1"
-esquery@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
- integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+esquery@^1.4.2:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
+ integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
dependencies:
estraverse "^5.1.0"
@@ -1432,7 +1699,7 @@ estraverse@^4.1.1:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-estraverse@^5.1.0, estraverse@^5.2.0:
+estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
@@ -1447,7 +1714,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-glob@^3.2.11, fast-glob@^3.2.9:
+fast-glob@^3.2.9:
version "3.2.12"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
@@ -1458,6 +1725,17 @@ fast-glob@^3.2.11, fast-glob@^3.2.9:
merge2 "^1.3.0"
micromatch "^4.0.4"
+fast-glob@^3.3.0:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
+ integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
@@ -1532,7 +1810,7 @@ for-each@^0.3.3:
dependencies:
is-callable "^1.1.3"
-fs-extra@^8.0.1:
+fs-extra@^8.0.1, fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
@@ -1551,6 +1829,17 @@ fs-extra@^9.1.0:
jsonfile "^6.0.1"
universalify "^2.0.0"
+fs-merger@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/fs-merger/-/fs-merger-3.2.1.tgz#a225b11ae530426138294b8fbb19e82e3d4e0b3b"
+ integrity sha512-AN6sX12liy0JE7C2evclwoo0aCG3PFulLjrTLsJpWh/2mM+DinhpSGqYLbHBBbIW1PLRNcFhJG8Axtz8mQW3ug==
+ dependencies:
+ broccoli-node-api "^1.7.0"
+ broccoli-node-info "^2.1.0"
+ fs-extra "^8.0.1"
+ fs-tree-diff "^2.0.1"
+ walk-sync "^2.2.0"
+
fs-tree-diff@^0.5.2, fs-tree-diff@^0.5.3, fs-tree-diff@^0.5.6:
version "0.5.9"
resolved "https://registry.yarnpkg.com/fs-tree-diff/-/fs-tree-diff-0.5.9.tgz#a4ec6182c2f5bd80b9b83c8e23e4522e6f5fd946"
@@ -1561,7 +1850,7 @@ fs-tree-diff@^0.5.2, fs-tree-diff@^0.5.3, fs-tree-diff@^0.5.6:
path-posix "^1.0.0"
symlink-or-copy "^1.1.8"
-fs-tree-diff@^2.0.0:
+fs-tree-diff@^2.0.0, fs-tree-diff@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/fs-tree-diff/-/fs-tree-diff-2.0.1.tgz#343e4745ab435ec39ebac5f9059ad919cd034afa"
integrity sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A==
@@ -1593,6 +1882,11 @@ function-bind@^1.1.1:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
function.prototype.name@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
@@ -1603,7 +1897,17 @@ function.prototype.name@^1.1.5:
es-abstract "^1.19.0"
functions-have-names "^1.2.2"
-functions-have-names@^1.2.2:
+function.prototype.name@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd"
+ integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ functions-have-names "^1.2.3"
+
+functions-have-names@^1.2.2, functions-have-names@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
@@ -1623,7 +1927,7 @@ get-caller-file@^2.0.5:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"
integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
@@ -1632,6 +1936,16 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@
has "^1.0.3"
has-symbols "^1.0.3"
+get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
+ integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
+ dependencies:
+ function-bind "^1.1.2"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
+
get-stdin@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575"
@@ -1694,6 +2008,20 @@ globals@^13.19.0:
dependencies:
type-fest "^0.20.2"
+globals@^13.24.0:
+ version "13.24.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
+ integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
+ dependencies:
+ type-fest "^0.20.2"
+
+globalthis@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
+ integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
+ dependencies:
+ define-properties "^1.1.3"
+
globby@^11.0.3:
version "11.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
@@ -1706,14 +2034,14 @@ globby@^11.0.3:
merge2 "^1.4.1"
slash "^3.0.0"
-globby@^13.1.2:
- version "13.1.3"
- resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.3.tgz#f62baf5720bcb2c1330c8d4ef222ee12318563ff"
- integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==
+globby@^13.2.2:
+ version "13.2.2"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592"
+ integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==
dependencies:
dir-glob "^3.0.1"
- fast-glob "^3.2.11"
- ignore "^5.2.0"
+ fast-glob "^3.3.0"
+ ignore "^5.2.4"
merge2 "^1.4.1"
slash "^4.0.0"
@@ -1729,10 +2057,10 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
-grapheme-splitter@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
- integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
+graphemer@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
+ integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
has-bigints@^1.0.1, has-bigints@^1.0.2:
version "1.0.2"
@@ -1756,7 +2084,19 @@ has-property-descriptors@^1.0.0:
dependencies:
get-intrinsic "^1.1.1"
-has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
+has-property-descriptors@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340"
+ integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==
+ dependencies:
+ get-intrinsic "^1.2.2"
+
+has-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
+ integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
+
+has-symbols@^1.0.2, has-symbols@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
@@ -1775,7 +2115,7 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
-hash-for-dep@^1.5.0:
+hash-for-dep@^1.5.0, hash-for-dep@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/hash-for-dep/-/hash-for-dep-1.5.1.tgz#497754b39bee2f1c4ade4521bfd2af0a7c1196e3"
integrity sha512-/dQ/A2cl7FBPI2pO0CANkvuuVi/IFS5oTyJ0PsOb6jW6WbVW1js5qJXMJTNbWHXBIPdFTWFbabjB+mE0d+gelw==
@@ -1787,7 +2127,14 @@ hash-for-dep@^1.5.0:
resolve "^1.10.0"
resolve-package-path "^1.0.11"
-heimdalljs-logger@^0.1.7, heimdalljs-logger@^0.1.9:
+hasown@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
+ integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
+ dependencies:
+ function-bind "^1.1.2"
+
+heimdalljs-logger@^0.1.10, heimdalljs-logger@^0.1.7, heimdalljs-logger@^0.1.9:
version "0.1.10"
resolved "https://registry.yarnpkg.com/heimdalljs-logger/-/heimdalljs-logger-0.1.10.tgz#90cad58aabb1590a3c7e640ddc6a4cd3a43faaf7"
integrity sha512-pO++cJbhIufVI/fmB/u2Yty3KJD0TqNPecehFae0/eps0hkZ3b4Zc/PezUMOpYuHFQbA7FxHZxa305EhmjLj4g==
@@ -1802,17 +2149,27 @@ heimdalljs@^0.2.0, heimdalljs@^0.2.1, heimdalljs@^0.2.3, heimdalljs@^0.2.5, heim
dependencies:
rsvp "~3.2.1"
+html-tags@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce"
+ integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==
+
ieee754@^1.1.13:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-ignore@^5.1.1, ignore@^5.2.0:
+ignore@^5.2.0:
version "5.2.4"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
-import-fresh@^3.0.0, import-fresh@^3.2.1:
+ignore@^5.2.4:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78"
+ integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==
+
+import-fresh@^3.2.1:
version "3.3.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
@@ -1847,13 +2204,23 @@ internal-slot@^1.0.3:
has "^1.0.3"
side-channel "^1.0.4"
-is-arguments@^1.1.0, is-arguments@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
- integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
+internal-slot@^1.0.5:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930"
+ integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==
+ dependencies:
+ get-intrinsic "^1.2.2"
+ hasown "^2.0.0"
+ side-channel "^1.0.4"
+
+is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe"
+ integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==
dependencies:
call-bind "^1.0.2"
- has-tostringtag "^1.0.0"
+ get-intrinsic "^1.2.0"
+ is-typed-array "^1.1.10"
is-bigint@^1.0.1:
version "1.0.4"
@@ -1875,6 +2242,13 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
+is-core-module@^2.13.0:
+ version "2.13.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
+ integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
+ dependencies:
+ hasown "^2.0.0"
+
is-core-module@^2.9.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
@@ -1882,7 +2256,7 @@ is-core-module@^2.9.0:
dependencies:
has "^1.0.3"
-is-date-object@^1.0.1, is-date-object@^1.0.5:
+is-date-object@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
@@ -1911,11 +2285,6 @@ is-interactive@^1.0.0:
resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
-is-map@^2.0.1, is-map@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
- integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
-
is-negative-zero@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
@@ -1946,11 +2315,6 @@ is-regex@^1.1.4:
call-bind "^1.0.2"
has-tostringtag "^1.0.0"
-is-set@^2.0.1, is-set@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
- integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
-
is-shared-array-buffer@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
@@ -1983,16 +2347,18 @@ is-typed-array@^1.1.10:
gopd "^1.0.1"
has-tostringtag "^1.0.0"
+is-typed-array@^1.1.12, is-typed-array@^1.1.9:
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
+ integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
+ dependencies:
+ which-typed-array "^1.1.11"
+
is-unicode-supported@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
-is-weakmap@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
- integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==
-
is-weakref@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
@@ -2000,14 +2366,6 @@ is-weakref@^1.0.2:
dependencies:
call-bind "^1.0.2"
-is-weakset@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d"
- integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==
- dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.1"
-
isarray@1.0.0, isarray@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -2039,10 +2397,19 @@ istextorbinary@2.1.0:
editions "^1.1.1"
textextensions "1 || 2"
-js-sdsl@^4.1.4:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0"
- integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==
+istextorbinary@^2.5.1:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.6.0.tgz#60776315fb0fa3999add276c02c69557b9ca28ab"
+ integrity sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==
+ dependencies:
+ binaryextensions "^2.1.2"
+ editions "^2.2.0"
+ textextensions "^2.5.0"
+
+js-string-escape@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef"
+ integrity sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==
js-tokens@^4.0.0:
version "4.0.0"
@@ -2071,7 +2438,7 @@ json-stable-stringify-without-jsonify@^1.0.1:
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
-json5@^2.2.1:
+json5@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
@@ -2097,10 +2464,10 @@ language-subtag-registry@^0.3.20:
resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d"
integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==
-language-tags@^1.0.5:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.7.tgz#41cc248730f3f12a452c2e2efe32bc0bbce67967"
- integrity sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw==
+language-tags@^1.0.8:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777"
+ integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==
dependencies:
language-subtag-registry "^0.3.20"
@@ -2134,6 +2501,11 @@ locate-path@^7.1.0:
dependencies:
p-locate "^6.0.0"
+lodash.camelcase@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+ integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
+
lodash.kebabcase@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
@@ -2144,7 +2516,7 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-lodash@^4.17.14, lodash@^4.17.21:
+lodash@^4.17.14:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -2192,6 +2564,14 @@ matcher-collection@^1.0.0, matcher-collection@^1.1.1:
dependencies:
minimatch "^3.0.2"
+matcher-collection@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-2.0.1.tgz#90be1a4cf58d6f2949864f65bb3b0f3e41303b29"
+ integrity sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==
+ dependencies:
+ "@types/minimatch" "^3.0.3"
+ minimatch "^3.0.2"
+
mdn-data@2.0.30:
version "2.0.30"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
@@ -2270,10 +2650,10 @@ no-case@^3.0.4:
lower-case "^2.0.2"
tslib "^2.0.3"
-node-releases@^2.0.6:
- version "2.0.8"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae"
- integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==
+node-releases@^2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
+ integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
object-assign@^4.1.0:
version "4.1.1"
@@ -2285,13 +2665,10 @@ object-inspect@^1.12.2, object-inspect@^1.9.0:
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
-object-is@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
- integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
+object-inspect@^1.13.1:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
+ integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
object-keys@^1.1.1:
version "1.1.1"
@@ -2322,17 +2699,17 @@ onetime@^5.1.0:
dependencies:
mimic-fn "^2.1.0"
-optionator@^0.9.1:
- version "0.9.1"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
- integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+optionator@^0.9.3:
+ version "0.9.3"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
+ integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
dependencies:
+ "@aashutoshrathi/word-wrap" "^1.2.3"
deep-is "^0.1.3"
fast-levenshtein "^2.0.6"
levn "^0.4.1"
prelude-ls "^1.2.1"
type-check "^0.4.0"
- word-wrap "^1.2.3"
ora@^5.4.0:
version "5.4.1"
@@ -2456,10 +2833,22 @@ prelude-ls@^1.2.1:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
-prettier@2.8.1:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc"
- integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==
+prettier-plugin-ember-template-tag@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/prettier-plugin-ember-template-tag/-/prettier-plugin-ember-template-tag-0.3.2.tgz#dcf4e402951d6766a9880308ea6a405c9ea5a5f1"
+ integrity sha512-L/15ujsvuOpuIB9y9XJJs/QOPgdot76T0U1Q34C19igS1lsaL/cdRw8rXIVC5Z2x362yZI33Qodo//7kK7ItkA==
+ dependencies:
+ "@babel/core" "^7.20.12"
+ "@glimmer/syntax" "^0.84.2"
+ ember-cli-htmlbars "^6.2.0"
+ ember-template-imports "^3.4.1"
+ prettier "^2.8.3"
+ ts-replace-all "^1.0.0"
+
+prettier@^2.8.3, prettier@^2.8.8:
+ version "2.8.8"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
+ integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
promise-map-series@^0.2.1:
version "0.2.3"
@@ -2468,6 +2857,11 @@ promise-map-series@^0.2.1:
dependencies:
rsvp "^3.0.14"
+promise-map-series@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/promise-map-series/-/promise-map-series-0.3.0.tgz#41873ca3652bb7a042b387d538552da9b576f8a1"
+ integrity sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA==
+
proper-lockfile@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f"
@@ -2487,7 +2881,7 @@ queue-microtask@^1.2.2:
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-quick-temp@^0.1.3, quick-temp@^0.1.5:
+quick-temp@^0.1.3, quick-temp@^0.1.5, quick-temp@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/quick-temp/-/quick-temp-0.1.8.tgz#bab02a242ab8fb0dd758a3c9776b32f9a5d94408"
integrity sha512-YsmIFfD9j2zaFwJkzI6eMG7y0lQP7YeWzgtFgNl38pGWZBSXJooZbOWwkcRot7Vt0Fg9L23pX0tqWU3VvLDsiA==
@@ -2505,6 +2899,11 @@ readable-stream@^3.4.0:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
+regenerator-runtime@^0.14.0:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
+ integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
+
regexp.prototype.flags@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac"
@@ -2514,10 +2913,14 @@ regexp.prototype.flags@^1.4.3:
define-properties "^1.1.3"
functions-have-names "^1.2.2"
-regexpp@^3.0.0, regexpp@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
- integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e"
+ integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ set-function-name "^2.0.0"
require-directory@^2.1.1:
version "2.1.1"
@@ -2529,11 +2932,6 @@ requireindex@^1.2.0:
resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef"
integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==
-requireindex@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz#e5404b81557ef75db6e49c5a72004893fe03e162"
- integrity sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==
-
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
@@ -2555,7 +2953,7 @@ resolve-package-path@^3.1.0:
path-root "^0.1.1"
resolve "^1.17.0"
-resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.17.0, resolve@^1.22.1:
+resolve@^1.10.0, resolve@^1.11.1, resolve@^1.17.0:
version "1.22.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
@@ -2564,6 +2962,15 @@ resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.17.0, resolve@^1.2
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
+resolve@^1.22.3:
+ version "1.22.8"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
+ integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
+ dependencies:
+ is-core-module "^2.13.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
restore-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
@@ -2618,6 +3025,16 @@ run-parallel@^1.1.9:
dependencies:
queue-microtask "^1.2.2"
+safe-array-concat@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692"
+ integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==
+ dependencies:
+ call-bind "^1.0.5"
+ get-intrinsic "^1.2.2"
+ has-symbols "^1.0.3"
+ isarray "^2.0.5"
+
safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@@ -2632,7 +3049,7 @@ safe-regex-test@^1.0.0:
get-intrinsic "^1.1.3"
is-regex "^1.1.4"
-semver@^6.1.0, semver@^6.3.0:
+semver@^6.3.0, semver@^6.3.1:
version "6.3.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
@@ -2644,6 +3061,26 @@ semver@^7.3.2, semver@^7.3.4:
dependencies:
lru-cache "^6.0.0"
+set-function-length@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1"
+ integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==
+ dependencies:
+ define-data-property "^1.1.1"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.2"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.1"
+
+set-function-name@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a"
+ integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==
+ dependencies:
+ define-data-property "^1.0.1"
+ functions-have-names "^1.2.3"
+ has-property-descriptors "^1.0.0"
+
shebang-command@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -2692,7 +3129,7 @@ slash@^4.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
-snake-case@^3.0.3:
+snake-case@^3.0.3, snake-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
@@ -2724,6 +3161,21 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
+string.prototype.matchall@^4.0.5:
+ version "4.0.10"
+ resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100"
+ integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ get-intrinsic "^1.2.1"
+ has-symbols "^1.0.3"
+ internal-slot "^1.0.5"
+ regexp.prototype.flags "^1.5.0"
+ set-function-name "^2.0.0"
+ side-channel "^1.0.4"
+
string.prototype.matchall@^4.0.6:
version "4.0.8"
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3"
@@ -2738,6 +3190,15 @@ string.prototype.matchall@^4.0.6:
regexp.prototype.flags "^1.4.3"
side-channel "^1.0.4"
+string.prototype.trim@^1.2.8:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd"
+ integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+
string.prototype.trimend@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533"
@@ -2747,6 +3208,15 @@ string.prototype.trimend@^1.0.6:
define-properties "^1.1.4"
es-abstract "^1.20.4"
+string.prototype.trimend@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e"
+ integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+
string.prototype.trimstart@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4"
@@ -2756,6 +3226,15 @@ string.prototype.trimstart@^1.0.6:
define-properties "^1.1.4"
es-abstract "^1.20.4"
+string.prototype.trimstart@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298"
+ integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
@@ -2770,7 +3249,7 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
dependencies:
ansi-regex "^5.0.1"
-strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+strip-json-comments@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
@@ -2794,7 +3273,7 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-symlink-or-copy@^1.0.0, symlink-or-copy@^1.0.1, symlink-or-copy@^1.1.8, symlink-or-copy@^1.2.0:
+symlink-or-copy@^1.0.0, symlink-or-copy@^1.0.1, symlink-or-copy@^1.1.8, symlink-or-copy@^1.2.0, symlink-or-copy@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/symlink-or-copy/-/symlink-or-copy-1.3.1.tgz#9506dd64d8e98fa21dcbf4018d1eab23e77f71fe"
integrity sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==
@@ -2810,12 +3289,23 @@ sync-disk-cache@^1.3.3:
rimraf "^2.2.8"
username-sync "^1.0.2"
+sync-disk-cache@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/sync-disk-cache/-/sync-disk-cache-2.1.0.tgz#01e879edc41c34a01fcdda5b39d47dd496e154a6"
+ integrity sha512-vngT2JmkSapgq0z7uIoYtB9kWOOzMihAAYq/D3Pjm/ODOGMgS4r++B+OZ09U4hWR6EaOdy9eqQ7/8ygbH3wehA==
+ dependencies:
+ debug "^4.1.1"
+ heimdalljs "^0.2.6"
+ mkdirp "^0.5.0"
+ rimraf "^3.0.0"
+ username-sync "^1.0.2"
+
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
-"textextensions@1 || 2":
+"textextensions@1 || 2", textextensions@^2.5.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4"
integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==
@@ -2857,11 +3347,23 @@ tree-sync@^1.2.2:
quick-temp "^0.1.5"
walk-sync "^0.3.3"
-tslib@^2.0.3, tslib@^2.4.0:
+ts-replace-all@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/ts-replace-all/-/ts-replace-all-1.0.0.tgz#ef28283ccdb4da7d69fb03cf543e09e51711659b"
+ integrity sha512-6uBtdkw3jHXkPtx/e9xB/5vcngMm17CyJYsS2YZeQ+9FdRnt6Ev5g931Sg2p+dxbtMGoCm13m3ax/obicTZIkQ==
+ dependencies:
+ core-js "^3.4.1"
+
+tslib@^2.0.3:
version "2.4.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
+tslib@^2.4.1:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -2874,6 +3376,45 @@ type-fest@^0.20.2:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+typed-array-buffer@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60"
+ integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.2.1"
+ is-typed-array "^1.1.10"
+
+typed-array-byte-length@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0"
+ integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==
+ dependencies:
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ has-proto "^1.0.1"
+ is-typed-array "^1.1.10"
+
+typed-array-byte-offset@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b"
+ integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==
+ dependencies:
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ has-proto "^1.0.1"
+ is-typed-array "^1.1.10"
+
+typed-array-length@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb"
+ integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==
+ dependencies:
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ is-typed-array "^1.1.9"
+
unbox-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
@@ -2907,10 +3448,10 @@ upath@^2.0.1:
resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b"
integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==
-update-browserslist-db@^1.0.9:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
- integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
+update-browserslist-db@^1.0.13:
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
+ integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
dependencies:
escalade "^3.1.1"
picocolors "^1.0.0"
@@ -2962,6 +3503,16 @@ walk-sync@^1.0.0, walk-sync@^1.1.3:
ensure-posix-path "^1.1.0"
matcher-collection "^1.1.1"
+walk-sync@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-2.2.0.tgz#80786b0657fcc8c0e1c0b1a042a09eae2966387a"
+ integrity sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==
+ dependencies:
+ "@types/minimatch" "^3.0.3"
+ ensure-posix-path "^1.1.0"
+ matcher-collection "^2.0.0"
+ minimatch "^3.0.4"
+
wcwidth@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
@@ -2980,27 +3531,16 @@ which-boxed-primitive@^1.0.2:
is-string "^1.0.5"
is-symbol "^1.0.3"
-which-collection@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906"
- integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==
- dependencies:
- is-map "^2.0.1"
- is-set "^2.0.1"
- is-weakmap "^2.0.1"
- is-weakset "^2.0.1"
-
-which-typed-array@^1.1.8:
- version "1.1.9"
- resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
- integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
+which-typed-array@^1.1.11, which-typed-array@^1.1.13:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36"
+ integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==
dependencies:
available-typed-arrays "^1.0.5"
- call-bind "^1.0.2"
+ call-bind "^1.0.4"
for-each "^0.3.3"
gopd "^1.0.1"
has-tostringtag "^1.0.0"
- is-typed-array "^1.1.10"
which@^2.0.1:
version "2.0.2"
@@ -3009,15 +3549,10 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
-word-wrap@^1.2.3:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f"
- integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==
-
-workerpool@^6.1.5:
- version "6.3.1"
- resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.3.1.tgz#80a9b76e70556acfb1457a3984f8637717f7cdee"
- integrity sha512-0x7gJm1rhpn5SPG9NENOxPtbfUZZtK/qOg6gEdSqeDBA3dTeR91RJqSPjccPRCkhNfrnnl/dWxSSj5w9CtdzNA==
+workerpool@^6.4.0:
+ version "6.5.1"
+ resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544"
+ integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==
wrap-ansi@^7.0.0:
version "7.0.0"
@@ -3053,10 +3588,10 @@ yargs-parser@^21.1.1:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
-yargs@^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==
+yargs@^17.7.2:
+ version "17.7.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
+ integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
dependencies:
cliui "^8.0.1"
escalade "^3.1.1"