diff --git a/.github/workflows/ember.yml b/.github/workflows/ember.yml
index 2f2c9660..4e0e8b6b 100644
--- a/.github/workflows/ember.yml
+++ b/.github/workflows/ember.yml
@@ -8,21 +8,19 @@ on:
pull_request:
branches: [ main ]
+env:
+ NODE_VERSION: 22.x
+
jobs:
build:
runs-on: ubuntu-latest
-
- strategy:
- matrix:
- node-version: [18.x] # Build on Node.js 18
-
steps:
- uses: actions/checkout@v2
- - name: Setup Node.js ${{ matrix.node-version }}
+ - name: Setup Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
with:
- node-version: ${{ matrix.node-version }}
+ node-version: ${{ env.NODE_VERSION }}
- name: Setup pnpm
uses: pnpm/action-setup@v2.0.1
@@ -42,10 +40,10 @@ jobs:
steps:
- uses: actions/checkout@v2
- - name: Setup Node.js 18.x
+ - name: Setup Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
with:
- node-version: 18.x
+ node-version: ${{ env.NODE_VERSION }}
- name: Setup pnpm
uses: pnpm/action-setup@v2.0.1
@@ -71,10 +69,10 @@ jobs:
steps:
- uses: actions/checkout@v2
- - name: Setup Node.js 18.x
+ - name: Setup Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
with:
- node-version: 18.x
+ node-version: ${{ env.NODE_VERSION }}
- name: Setup pnpm
uses: pnpm/action-setup@v2.0.1
diff --git a/addon/adapters/pallet-product-variant.js b/addon/adapters/pallet-product-variant.js
new file mode 100644
index 00000000..0fc98c4d
--- /dev/null
+++ b/addon/adapters/pallet-product-variant.js
@@ -0,0 +1,7 @@
+import PalletAdapter from './pallet';
+
+export default class PalletProductVariantAdapter extends PalletAdapter {
+ pathForType() {
+ return 'product-variants';
+ }
+}
diff --git a/addon/components/admin/product-category.hbs b/addon/components/admin/product-category.hbs
index 7819d8cb..d46678b2 100644
--- a/addon/components/admin/product-category.hbs
+++ b/addon/components/admin/product-category.hbs
@@ -1,6 +1,6 @@
-
+
-
\ No newline at end of file
+
diff --git a/addon/components/inventory-form-panel.js b/addon/components/inventory-form-panel.js
index 568ccdf7..08ab5394 100644
--- a/addon/components/inventory-form-panel.js
+++ b/addon/components/inventory-form-panel.js
@@ -2,6 +2,7 @@ import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
import contextComponentCallback from '@fleetbase/ember-core/utils/context-component-callback';
import applyContextComponentArguments from '@fleetbase/ember-core/utils/apply-context-component-arguments';
@@ -37,12 +38,6 @@ export default class InventoryFormPanelComponent extends Component {
*/
@tracked context;
- /**
- * Indicates whether the component is in a loading state.
- * @type {boolean}
- */
- @tracked isLoading = false;
-
/**
* Fuel Report status
* @type {Array}
@@ -82,33 +77,22 @@ export default class InventoryFormPanelComponent extends Component {
* @action
* @returns {Promise}
*/
- @action save() {
+ @task *saveTask() {
const { inventory } = this;
this.loader.showLoader('.next-content-overlay-panel-container', { loadingMessage: 'Saving inventory...', preserveTargetPosition: true });
- this.isLoading = true;
-
contextComponentCallback(this, 'onBeforeSave', inventory);
try {
- return inventory
- .save()
- .then((inventory) => {
- this.notifications.success(`Inventory saved successfully.`);
- contextComponentCallback(this, 'onAfterSave', inventory);
- })
- .catch((error) => {
- console.error(error);
- this.notifications.serverError(error);
- })
- .finally(() => {
- this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
- });
+ const savedInventory = yield inventory.save();
+ this.notifications.success(`Inventory saved successfully.`);
+ contextComponentCallback(this, 'onAfterSave', savedInventory);
+ return savedInventory;
} catch (error) {
console.error(error);
+ this.notifications.serverError(error);
+ } finally {
this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
}
}
@@ -135,6 +119,11 @@ export default class InventoryFormPanelComponent extends Component {
return contextComponentCallback(this, 'onPressCancel', this.inventory);
}
+ @action setVariant(variant) {
+ this.inventory.variant = variant;
+ this.inventory.variant_uuid = variant?.uuid;
+ }
+
@action defaultProductSupplier(selectedProduct) {
this.store
.findRecord('supplier', selectedProduct.supplier_uuid)
diff --git a/addon/components/inventory-panel/details.hbs b/addon/components/inventory-panel/details.hbs
index c201aeb3..0a521cdb 100644
--- a/addon/components/inventory-panel/details.hbs
+++ b/addon/components/inventory-panel/details.hbs
@@ -13,6 +13,10 @@
Product
{{n-a @inventory.product.name}}
+
+
Variant
+
{{n-a @inventory.variant.display_name @inventory.variant.name}}
+
Batch
{{n-a @inventory.batch.batch_number}}
@@ -31,4 +35,4 @@
-
\ No newline at end of file
+
diff --git a/addon/components/inventory/details.hbs b/addon/components/inventory/details.hbs
new file mode 100644
index 00000000..9e9f8cbf
--- /dev/null
+++ b/addon/components/inventory/details.hbs
@@ -0,0 +1,112 @@
+
+
+
+
+
{{t "common.id"}}
+
{{n-a @resource.public_id}}
+
+
+
{{t "inventory.fields.product"}}
+
{{n-a @resource.product.name @resource.product_name}}
+
+
+
Variant
+
{{n-a @resource.variant.display_name @resource.variant.name}}
+
+
+
{{t "inventory.fields.warehouse"}}
+
{{n-a @resource.warehouse_name}}
+
+
+
{{t "inventory.fields.supplier"}}
+
{{n-a @resource.supplier_name}}
+
+
+
{{t "common.status"}}
+
+ {{smart-humanize @resource.status}}
+
+
+
+
{{t "inventory.fields.quantity"}}
+
{{format-number @resource.quantity}}
+
+
+
{{t "inventory.fields.available-quantity"}}
+
{{format-number @resource.available_quantity}}
+
+
+
{{t "inventory.fields.reserved-quantity"}}
+
{{format-number @resource.reserved_quantity}}
+
+
+
{{t "inventory.fields.min-quantity"}}
+
{{format-number @resource.min_quantity}}
+
+
+
{{t "inventory.fields.max-quantity"}}
+
{{format-number @resource.max_quantity}}
+
+
+
{{t "inventory.fields.reorder-point"}}
+
{{format-number @resource.reorder_point}}
+
+
+
{{t "inventory.fields.unit-cost"}}
+
{{format-currency @resource.unit_cost @resource.currency}}
+
+
+
+
+
+
+
+
{{t "inventory.fields.lot-number"}}
+
{{n-a @resource.lot_number}}
+
+
+
{{t "inventory.fields.serial-number"}}
+
{{n-a @resource.serial_number}}
+
+
+
{{t "inventory.fields.batch-number"}}
+
{{n-a @resource.batch.batch_number}}
+
+
+
{{t "inventory.fields.expiry-date"}}
+
{{format-date @resource.batch.expiry_date_at}}
+
+
+
{{t "inventory.fields.received-at"}}
+
{{format-date @resource.received_at}}
+
+
+
{{t "inventory.fields.last-counted"}}
+
{{format-date @resource.last_counted_at}}
+
+
+
+
+
+
+
+
{{t "inventory.fields.bin-location"}}
+
{{n-a @resource.binLocation.bin_number}}
+
+
+
{{t "inventory.fields.zone"}}
+
{{n-a @resource.zone.name}}
+
+
+
{{t "inventory.fields.uom"}}
+
{{n-a @resource.uom}}
+
+
+
+
+
+
+
+
+
+
diff --git a/addon/components/inventory/details.js b/addon/components/inventory/details.js
new file mode 100644
index 00000000..2416e1be
--- /dev/null
+++ b/addon/components/inventory/details.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class InventoryDetailsComponent extends Component {}
diff --git a/addon/components/inventory/form.hbs b/addon/components/inventory/form.hbs
new file mode 100644
index 00000000..2e9276fb
--- /dev/null
+++ b/addon/components/inventory/form.hbs
@@ -0,0 +1,188 @@
+
diff --git a/addon/components/inventory/form.js b/addon/components/inventory/form.js
new file mode 100644
index 00000000..0f35dee5
--- /dev/null
+++ b/addon/components/inventory/form.js
@@ -0,0 +1,23 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { action } from '@ember/object';
+
+export default class InventoryFormComponent extends Component {
+ @tracked statusOptions = [
+ { label: 'In Stock', value: 'in_stock' },
+ { label: 'Out of Stock', value: 'out_of_stock' },
+ { label: 'On Order', value: 'on_order' },
+ { label: 'Reserved', value: 'reserved' },
+ ];
+
+ @action setExpiryDate(event) {
+ if (this.args.resource.batch) {
+ this.args.resource.batch.expiryDate = event.target.value;
+ }
+ }
+
+ @action setVariant(variant) {
+ this.args.resource.variant = variant;
+ this.args.resource.variant_uuid = variant?.uuid;
+ }
+}
diff --git a/addon/components/inventory/panel-header.hbs b/addon/components/inventory/panel-header.hbs
new file mode 100644
index 00000000..c8c25f25
--- /dev/null
+++ b/addon/components/inventory/panel-header.hbs
@@ -0,0 +1,15 @@
+
+
+
{{@resource.product_name}}
+
+ {{t "inventory.fields.warehouse"}}: {{@resource.warehouse_name}}
+ {{t "inventory.fields.quantity"}}: {{format-number @resource.quantity}}
+
+
+
+ {{smart-humanize @resource.status}}
+ {{#if @resource.lot_number}}
+ Lot: {{@resource.lot_number}}
+ {{/if}}
+
+
diff --git a/addon/components/inventory/panel-header.js b/addon/components/inventory/panel-header.js
new file mode 100644
index 00000000..bbe9b4b8
--- /dev/null
+++ b/addon/components/inventory/panel-header.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class InventoryPanelHeaderComponent extends Component {}
diff --git a/addon/components/inventory/pill.hbs b/addon/components/inventory/pill.hbs
new file mode 100644
index 00000000..392eff82
--- /dev/null
+++ b/addon/components/inventory/pill.hbs
@@ -0,0 +1,4 @@
+
+ {{@resource.product_name}}
+ ({{format-number @resource.quantity}})
+
diff --git a/addon/components/inventory/pill.js b/addon/components/inventory/pill.js
new file mode 100644
index 00000000..3c474700
--- /dev/null
+++ b/addon/components/inventory/pill.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class InventoryPillComponent extends Component {}
diff --git a/addon/components/product-form-panel.hbs b/addon/components/product-form-panel.hbs
index d975fdbb..08f563c7 100644
--- a/addon/components/product-form-panel.hbs
+++ b/addon/components/product-form-panel.hbs
@@ -3,7 +3,7 @@
@position="right"
@noBackdrop={{true}}
@fullHeight={{true}}
- @isResizeble={{or this.isResizable @isResizable}}
+ @isResizable={{or this.isResizable @isResizable}}
@width={{or this.width @width "600px"}}
>
-
+
{{#if this.product.id}}
{{/if}}
@@ -72,10 +80,10 @@
-
+
-
\ No newline at end of file
+
diff --git a/addon/components/product-form-panel.js b/addon/components/product-form-panel.js
index f7323b69..77921c4d 100644
--- a/addon/components/product-form-panel.js
+++ b/addon/components/product-form-panel.js
@@ -2,6 +2,7 @@ import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
import getWithDefault from '@fleetbase/ember-core/utils/get-with-default';
import contextComponentCallback from '@fleetbase/ember-core/utils/context-component-callback';
import applyContextComponentArguments from '@fleetbase/ember-core/utils/apply-context-component-arguments';
@@ -48,12 +49,6 @@ export default class ProductFormPanelComponent extends Component {
*/
@tracked context;
- /**
- * Indicates whether the component is in a loading state.
- * @type {boolean}
- */
- @tracked isLoading = false;
-
/**
* All possible product types.
*
@@ -99,31 +94,21 @@ export default class ProductFormPanelComponent extends Component {
* @action
* @returns {Promise}
*/
- @action save() {
+ @task *saveTask() {
const { product } = this;
this.loader.showLoader('.next-content-overlay-panel-container', { loadingMessage: 'Saving product...', preserveTargetPosition: true });
- this.isLoading = true;
-
contextComponentCallback(this, 'onBeforeSave', product);
try {
- return product
- .save()
- .then((product) => {
- this.notifications.success(`product (${product.name}) saved successfully.`);
- contextComponentCallback(this, 'onAfterSave', product);
- })
- .catch((error) => {
- this.notifications.serverError(error);
- })
- .finally(() => {
- this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
- });
+ const savedProduct = yield product.save();
+ this.notifications.success(`product (${savedProduct.name}) saved successfully.`);
+ contextComponentCallback(this, 'onAfterSave', savedProduct);
+ return savedProduct;
} catch (error) {
+ this.notifications.serverError(error);
+ } finally {
this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
}
}
diff --git a/addon/components/product/details.hbs b/addon/components/product/details.hbs
new file mode 100644
index 00000000..f7f21dfa
--- /dev/null
+++ b/addon/components/product/details.hbs
@@ -0,0 +1,160 @@
+
+
+
+
+
{{t "common.id"}}
+
{{n-a @resource.public_id}}
+
+
+
{{t "common.internal-id"}}
+
{{n-a @resource.internal_id}}
+
+
+
{{t "common.name"}}
+
{{n-a @resource.name}}
+
+
+
{{t "product.fields.sku"}}
+
{{n-a @resource.sku}}
+
+
+
{{t "product.fields.barcode"}}
+
{{n-a @resource.barcode}}
+
+
+
{{t "product.fields.category"}}
+
{{smart-humanize @resource.category}}
+
+
+
{{t "product.fields.supplier"}}
+
{{n-a @resource.supplier_name}}
+
+
+
{{t "common.status"}}
+
+ {{smart-humanize @resource.status}}
+
+
+
+
{{t "common.description"}}
+
{{n-a @resource.description}}
+
+
+
+
+
+
+
+
{{t "product.fields.total-stock"}}
+
{{format-number @resource.total_stock}}
+
+
+
{{t "product.fields.available-stock"}}
+
{{format-number @resource.available_stock}}
+
+
+
Variants
+
{{format-number @resource.variant_count}}
+
+
+
{{t "product.fields.reorder-point"}}
+
{{format-number @resource.reorder_point}}
+
+
+
{{t "product.fields.reorder-quantity"}}
+
{{format-number @resource.reorder_quantity}}
+
+
+
{{t "product.fields.shelf-life-days"}}
+
{{n-a @resource.shelf_life_days}}
+
+
+
{{t "product.fields.tracking"}}
+
+ {{#if @resource.is_serialized}}
+ {{t "product.fields.serialized"}}
+ {{/if}}
+ {{#if @resource.is_lot_tracked}}
+ {{t "product.fields.lot-tracked"}}
+ {{/if}}
+ {{#if @resource.is_perishable}}
+ {{t "product.fields.perishable"}}
+ {{/if}}
+
+
+
+
+
+ {{#if @resource.has_variants}}
+
+
+
+
+ Variant
+ SKU
+ Total
+ Available
+
+
+
+ {{#each @resource.variants as |variant|}}
+
+ {{n-a variant.display_name variant.name}}
+ {{n-a variant.sku}}
+ {{format-number variant.total_stock}}
+ {{format-number variant.available_stock}}
+
+ {{/each}}
+
+
+
+ {{/if}}
+
+
+
+
+
{{t "product.fields.unit-cost"}}
+
{{format-currency @resource.unit_cost @resource.currency}}
+
+
+
{{t "product.fields.unit-price"}}
+
{{format-currency @resource.unit_price @resource.currency}}
+
+
+
{{t "product.fields.sale-price"}}
+
{{format-currency @resource.sale_price @resource.currency}}
+
+
+
{{t "product.fields.declared-value"}}
+
{{format-currency @resource.declared_value @resource.currency}}
+
+
+
+
+
+
+
+
{{t "common.length"}}
+
{{@resource.length}} {{@resource.dimensions_unit}}
+
+
+
{{t "common.width"}}
+
{{@resource.width}} {{@resource.dimensions_unit}}
+
+
+
{{t "common.height"}}
+
{{@resource.height}} {{@resource.dimensions_unit}}
+
+
+
{{t "common.weight"}}
+
{{@resource.weight}} {{@resource.weight_unit}}
+
+
+
+
+
+
+
+
+
+
diff --git a/addon/components/product/details.js b/addon/components/product/details.js
new file mode 100644
index 00000000..06474727
--- /dev/null
+++ b/addon/components/product/details.js
@@ -0,0 +1,18 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { action } from '@ember/object';
+
+export default class ProductDetailsComponent extends Component {
+ @tracked metadataButtons = [
+ {
+ type: 'default',
+ text: 'Edit Metadata',
+ icon: 'edit',
+ onClick: this.editMetadata,
+ },
+ ];
+
+ @action editMetadata() {
+ // Implement metadata editing logic
+ }
+}
diff --git a/addon/components/product/form.hbs b/addon/components/product/form.hbs
new file mode 100644
index 00000000..d73d8421
--- /dev/null
+++ b/addon/components/product/form.hbs
@@ -0,0 +1,292 @@
+
diff --git a/addon/components/product/form.js b/addon/components/product/form.js
new file mode 100644
index 00000000..abdd1996
--- /dev/null
+++ b/addon/components/product/form.js
@@ -0,0 +1,166 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { action } from '@ember/object';
+
+export default class ProductFormComponent extends Component {
+ @service fetch;
+ @service store;
+ @service notifications;
+ @tracked productCategories = [];
+ @tracked isAddingVariant = false;
+ @tracked editingVariant = null;
+ @tracked newVariant = {};
+ @tracked statusOptions = [
+ { label: 'Active', value: 'active' },
+ { label: 'Inactive', value: 'inactive' },
+ { label: 'Discontinued', value: 'discontinued' },
+ ];
+
+ constructor() {
+ super(...arguments);
+ this.loadProductCategories();
+ }
+
+ @action async loadProductCategories() {
+ try {
+ const categories = await this.fetch.get('categories', { type: 'product' });
+ this.productCategories = categories || [];
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ get variants() {
+ return this.args.resource?.variants ?? [];
+ }
+
+ get canManageVariants() {
+ return Boolean(this.args.resource?.id);
+ }
+
+ variantPayload(variant = {}) {
+ return {
+ name: variant.name,
+ sku: variant.sku,
+ barcode: variant.barcode,
+ option_values: this.parseOptionValues(variant.option_values_text ?? variant.option_values),
+ currency: this.args.resource?.currency,
+ unit_cost: variant.unit_cost,
+ unit_price: variant.unit_price,
+ sale_price: variant.sale_price,
+ status: variant.status ?? 'active',
+ };
+ }
+
+ parseOptionValues(value) {
+ if (!value) {
+ return {};
+ }
+
+ if (typeof value === 'object') {
+ return value;
+ }
+
+ return value.split(',').reduce((options, part) => {
+ const [key, optionValue] = part
+ .split('=')
+ .map((item) => item?.trim())
+ .filter(Boolean);
+ if (key && optionValue) {
+ options[key] = optionValue;
+ }
+ return options;
+ }, {});
+ }
+
+ formatOptionValues(value) {
+ if (!value || typeof value !== 'object') {
+ return value;
+ }
+
+ return Object.entries(value)
+ .map(([key, optionValue]) => `${key}=${optionValue}`)
+ .join(', ');
+ }
+
+ @action startAddingVariant() {
+ this.newVariant = { status: 'active' };
+ this.isAddingVariant = true;
+ this.args.resource.has_variants = true;
+ }
+
+ @action cancelAddingVariant() {
+ this.newVariant = {};
+ this.isAddingVariant = false;
+ }
+
+ @action async addVariant() {
+ const product = this.args.resource;
+ if (!product?.id) {
+ this.notifications.warning('Save the product before adding variants.');
+ return;
+ }
+
+ try {
+ const response = await this.fetch.post(`products/${product.id}/variants`, { product_variant: this.variantPayload(this.newVariant) }, { namespace: 'pallet/int/v1' });
+ const record = this.store.push(this.store.normalize('pallet-product-variant', response.product_variant ?? response));
+ product.variants.pushObject(record);
+ product.has_variants = true;
+ this.cancelAddingVariant();
+ this.notifications.success('Variant added.');
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ @action startEditingVariant(variant) {
+ this.editingVariant = {
+ id: variant.id,
+ name: variant.name,
+ sku: variant.sku,
+ barcode: variant.barcode,
+ option_values: variant.option_values,
+ option_values_text: this.formatOptionValues(variant.option_values),
+ unit_cost: variant.unit_cost,
+ unit_price: variant.unit_price,
+ sale_price: variant.sale_price,
+ status: variant.status,
+ };
+ }
+
+ @action cancelEditingVariant() {
+ this.editingVariant = null;
+ }
+
+ @action async saveVariant() {
+ const product = this.args.resource;
+ if (!product?.id || !this.editingVariant?.id) return;
+
+ try {
+ const response = await this.fetch.put(
+ `products/${product.id}/variants/${this.editingVariant.id}`,
+ { product_variant: this.variantPayload(this.editingVariant) },
+ { namespace: 'pallet/int/v1' }
+ );
+ this.store.push(this.store.normalize('pallet-product-variant', response.product_variant ?? response));
+ this.editingVariant = null;
+ this.notifications.success('Variant updated.');
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ @action async removeVariant(variant) {
+ const product = this.args.resource;
+ if (!product?.id || !variant?.id) return;
+
+ try {
+ await this.fetch.delete(`products/${product.id}/variants/${variant.id}`, {}, { namespace: 'pallet/int/v1' });
+ product.variants.removeObject(variant);
+ this.notifications.success('Variant removed.');
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+}
diff --git a/addon/components/product/panel-header.hbs b/addon/components/product/panel-header.hbs
new file mode 100644
index 00000000..d78037f7
--- /dev/null
+++ b/addon/components/product/panel-header.hbs
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
{{@resource.name}}
+
+ {{#if @resource.sku}}
+ SKU: {{@resource.sku}}
+ {{/if}}
+ {{#if @resource.category}}
+ {{smart-humanize @resource.category}}
+ {{/if}}
+
+
+
+
+ {{smart-humanize @resource.status}}
+ {{#if @resource.is_serialized}}
+ {{t "product.fields.serialized"}}
+ {{/if}}
+ {{#if @resource.is_lot_tracked}}
+ {{t "product.fields.lot-tracked"}}
+ {{/if}}
+
+
diff --git a/addon/components/product/panel-header.js b/addon/components/product/panel-header.js
new file mode 100644
index 00000000..1b4768f9
--- /dev/null
+++ b/addon/components/product/panel-header.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class ProductPanelHeaderComponent extends Component {}
diff --git a/addon/components/product/pill.hbs b/addon/components/product/pill.hbs
new file mode 100644
index 00000000..b3c288b7
--- /dev/null
+++ b/addon/components/product/pill.hbs
@@ -0,0 +1,7 @@
+
+
+ {{@resource.name}}
+ {{#if @resource.sku}}
+ ({{@resource.sku}})
+ {{/if}}
+
diff --git a/addon/components/product/pill.js b/addon/components/product/pill.js
new file mode 100644
index 00000000..9b6601ad
--- /dev/null
+++ b/addon/components/product/pill.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class ProductPillComponent extends Component {}
diff --git a/addon/components/purchase-order-form-panel.hbs b/addon/components/purchase-order-form-panel.hbs
index 93535239..0eada49d 100644
--- a/addon/components/purchase-order-form-panel.hbs
+++ b/addon/components/purchase-order-form-panel.hbs
@@ -3,7 +3,7 @@
@position="right"
@noBackdrop={{true}}
@fullHeight={{true}}
- @isResizeable={{or this.isResizable @isResizable}}
+ @isResizable={{or this.isResizable @isResizable}}
@width={{or this.width @width "600px"}}
>
{{#if this.purchaseOrder.id}}
diff --git a/addon/components/purchase-order-form-panel.js b/addon/components/purchase-order-form-panel.js
index a6adead9..bb849f09 100644
--- a/addon/components/purchase-order-form-panel.js
+++ b/addon/components/purchase-order-form-panel.js
@@ -2,6 +2,7 @@ import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
import contextComponentCallback from '@fleetbase/ember-core/utils/context-component-callback';
import applyContextComponentArguments from '@fleetbase/ember-core/utils/apply-context-component-arguments';
@@ -47,12 +48,6 @@ export default class PurchaseOrderFormPanelComponent extends Component {
*/
@tracked context;
- /**
- * Indicates whether the component is in a loading state.
- * @type {boolean}
- */
- @tracked isLoading = false;
-
/**
* All possible purchaseOrder status options.
*
@@ -86,31 +81,21 @@ export default class PurchaseOrderFormPanelComponent extends Component {
* @action
* @returns {Promise}
*/
- @action save() {
+ @task *saveTask() {
const { purchaseOrder } = this;
this.loader.showLoader('.next-content-overlay-panel-container', { loadingMessage: 'Saving purchase order...', preserveTargetPosition: true });
- this.isLoading = true;
-
contextComponentCallback(this, 'onBeforeSave', purchaseOrder);
try {
- return purchaseOrder
- .save()
- .then((purchaseOrder) => {
- this.notifications.success(`Sales order (${purchaseOrder.id}) saved successfully.`);
- contextComponentCallback(this, 'onAfterSave', purchaseOrder);
- })
- .catch((error) => {
- this.notifications.serverError(error);
- })
- .finally(() => {
- this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
- });
+ const savedPurchaseOrder = yield purchaseOrder.save();
+ this.notifications.success(`Sales order (${savedPurchaseOrder.id}) saved successfully.`);
+ contextComponentCallback(this, 'onAfterSave', savedPurchaseOrder);
+ return savedPurchaseOrder;
} catch (error) {
+ this.notifications.serverError(error);
+ } finally {
this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
}
}
diff --git a/addon/components/purchase-order-panel.js b/addon/components/purchase-order-panel.js
index 0ccb208e..969ff77f 100644
--- a/addon/components/purchase-order-panel.js
+++ b/addon/components/purchase-order-panel.js
@@ -4,6 +4,7 @@ import { inject as service } from '@ember/service';
import { action } from '@ember/object';
import { isArray } from '@ember/array';
import PurchaseOrderPanelDetailsComponent from './purchase-order-panel/details';
+import PurchaseOrderPanelItemsComponent from './purchase-order-panel/items';
import contextComponentCallback from '@fleetbase/ember-core/utils/context-component-callback';
import applyContextComponentArguments from '@fleetbase/ember-core/utils/apply-context-component-arguments';
@@ -73,7 +74,10 @@ export default class PurchaseOrderPanelComponent extends Component {
*/
get tabs() {
const registeredTabs = this.universe.getMenuItemsFromRegistry('component:purchase-order-panel');
- const defaultTabs = [this.universe._createMenuItem('Details', null, { icon: 'circle-info', component: PurchaseOrderPanelDetailsComponent })];
+ const defaultTabs = [
+ this.universe._createMenuItem('Details', null, { icon: 'circle-info', component: PurchaseOrderPanelDetailsComponent }),
+ this.universe._createMenuItem('Line Items', null, { icon: 'list', component: PurchaseOrderPanelItemsComponent }),
+ ];
if (isArray(registeredTabs)) {
return [...defaultTabs, ...registeredTabs];
diff --git a/addon/components/purchase-order-panel/items.hbs b/addon/components/purchase-order-panel/items.hbs
new file mode 100644
index 00000000..e4169b28
--- /dev/null
+++ b/addon/components/purchase-order-panel/items.hbs
@@ -0,0 +1,183 @@
+
+
+ {{! Summary row }}
+
+ {{@purchaseOrder.item_count}} item(s)
+ {{#if @purchaseOrder.total_value}}
+
+ Total: {{@purchaseOrder.currency}} {{@purchaseOrder.total_value}}
+
+ {{/if}}
+
+
+ {{! Items table }}
+
+
+ {{! New item row }}
+ {{#if this.isAddingItem}}
+
+
+
+ Product
+
+ {{model.name}}
+
+
+
+
Variant
+ {{#if this.newItem.product.has_variants}}
+
+ {{n-a variant.display_name variant.name}}
+
+ {{else}}
+
+ {{/if}}
+
+
+ SKU
+
+
+
+ Quantity
+
+
+
+ Unit Price
+
+
+
+
+
+
+
+
+ {{/if}}
+
+ {{! Add item button }}
+ {{#unless this.isAddingItem}}
+
+
+
+ {{/unless}}
+
+
diff --git a/addon/components/purchase-order-panel/items.js b/addon/components/purchase-order-panel/items.js
new file mode 100644
index 00000000..b4c6e409
--- /dev/null
+++ b/addon/components/purchase-order-panel/items.js
@@ -0,0 +1,181 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { action } from '@ember/object';
+import { inject as service } from '@ember/service';
+
+export default class PurchaseOrderPanelItemsComponent extends Component {
+ @service store;
+ @service notifications;
+ @service fetch;
+
+ @tracked isAddingItem = false;
+ @tracked editingItem = null;
+ @tracked newItem = {};
+
+ /**
+ * Returns the items for this purchase order.
+ *
+ * @type {Array}
+ */
+ get items() {
+ return this.args.purchaseOrder?.items ?? [];
+ }
+
+ /**
+ * The order is read-only once it has been received or cancelled.
+ *
+ * @type {Boolean}
+ */
+ get isReadOnly() {
+ const status = this.args.purchaseOrder?.status;
+ return status === 'received' || status === 'cancelled';
+ }
+
+ /**
+ * Show the new-item input row.
+ */
+ @action startAddingItem() {
+ this.newItem = { quantity: 1, unit_price: 0 };
+ this.isAddingItem = true;
+ }
+
+ /**
+ * Hide the new-item input row and reset the draft.
+ */
+ @action cancelAddingItem() {
+ this.isAddingItem = false;
+ this.newItem = {};
+ }
+
+ /**
+ * Persist the new line item to the API and push it into the PO's items array.
+ */
+ @action async addItem() {
+ const purchaseOrder = this.args.purchaseOrder;
+ if (!purchaseOrder) return;
+
+ try {
+ const item = await this.fetch.post(
+ `purchase-orders/${purchaseOrder.id}/items`,
+ {
+ purchase_order_item: {
+ product_uuid: this.newItem.product_uuid ?? this.newItem.product?.id,
+ variant_uuid: this.newItem.variant_uuid ?? this.newItem.variant?.id,
+ sku: this.newItem.sku,
+ quantity: this.newItem.quantity,
+ unit_price: this.newItem.unit_price,
+ notes: this.newItem.notes,
+ },
+ },
+ { namespace: 'pallet/int/v1' }
+ );
+
+ // Push into the store and update the PO's items
+ const record = this.store.push(this.store.normalize('purchase-order-item', item.purchase_order_item ?? item));
+ purchaseOrder.items.pushObject(record);
+
+ this.isAddingItem = false;
+ this.newItem = {};
+ this.notifications.success('Line item added.');
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ /**
+ * Begin inline editing of an existing item.
+ *
+ * @param {PurchaseOrderItemModel} item
+ */
+ @action startEditingItem(item) {
+ // Clone the item's attributes into a plain object for editing
+ this.editingItem = {
+ id: item.id,
+ product: item.product,
+ product_uuid: item.product_uuid,
+ variant: item.variant,
+ variant_uuid: item.variant_uuid,
+ sku: item.sku,
+ quantity: item.quantity,
+ unit_price: item.unit_price,
+ notes: item.notes,
+ };
+ }
+
+ @action setNewVariant(variant) {
+ this.newItem.variant = variant;
+ this.newItem.variant_uuid = variant?.uuid;
+ if (variant?.sku && !this.newItem.sku) {
+ this.newItem.sku = variant.sku;
+ }
+ }
+
+ @action setEditingVariant(variant) {
+ this.editingItem.variant = variant;
+ this.editingItem.variant_uuid = variant?.uuid;
+ if (variant?.sku && !this.editingItem.sku) {
+ this.editingItem.sku = variant.sku;
+ }
+ }
+
+ /**
+ * Cancel inline editing without saving.
+ */
+ @action cancelEditing() {
+ this.editingItem = null;
+ }
+
+ /**
+ * Persist the edited item to the API and update the store record.
+ */
+ @action async saveEditingItem() {
+ const purchaseOrder = this.args.purchaseOrder;
+ if (!this.editingItem || !purchaseOrder) return;
+
+ try {
+ await this.fetch.put(
+ `purchase-orders/${purchaseOrder.id}/items/${this.editingItem.id}`,
+ {
+ purchase_order_item: {
+ product_uuid: this.editingItem.product_uuid ?? this.editingItem.product?.id,
+ variant_uuid: this.editingItem.variant_uuid ?? this.editingItem.variant?.id,
+ sku: this.editingItem.sku,
+ quantity: this.editingItem.quantity,
+ unit_price: this.editingItem.unit_price,
+ notes: this.editingItem.notes,
+ },
+ },
+ { namespace: 'pallet/int/v1' }
+ );
+
+ // Reload the item from the store to reflect server-calculated fields
+ const storeItem = this.store.peekRecord('purchase-order-item', this.editingItem.id);
+ if (storeItem) {
+ storeItem.reload();
+ }
+
+ this.editingItem = null;
+ this.notifications.success('Line item updated.');
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ /**
+ * Delete a line item from the PO.
+ *
+ * @param {PurchaseOrderItemModel} item
+ */
+ @action async removeItem(item) {
+ const purchaseOrder = this.args.purchaseOrder;
+ if (!purchaseOrder) return;
+
+ try {
+ await this.fetch.delete(`purchase-orders/${purchaseOrder.id}/items/${item.id}`, {}, { namespace: 'pallet/int/v1' });
+ purchaseOrder.items.removeObject(item);
+ this.notifications.success('Line item removed.');
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+}
diff --git a/addon/components/purchase-order/details.hbs b/addon/components/purchase-order/details.hbs
new file mode 100644
index 00000000..24e64f22
--- /dev/null
+++ b/addon/components/purchase-order/details.hbs
@@ -0,0 +1,40 @@
+
+
+
+
+
{{t "common.id"}}
+
{{n-a @resource.public_id}}
+
+
+
{{t "purchase-order.fields.order-number"}}
+
{{n-a @resource.order_number}}
+
+
+
{{t "purchase-order.fields.supplier"}}
+
{{n-a @resource.supplier_name}}
+
+
+
{{t "purchase-order.fields.warehouse"}}
+
{{n-a @resource.warehouse_name}}
+
+
+
{{t "common.status"}}
+
+ {{smart-humanize @resource.status}}
+
+
+
+
{{t "purchase-order.fields.expected-delivery"}}
+
{{format-date @resource.expected_delivery_at}}
+
+
+
{{t "common.notes"}}
+
{{n-a @resource.notes}}
+
+
+
+
+
+
+
+
diff --git a/addon/components/purchase-order/details.js b/addon/components/purchase-order/details.js
new file mode 100644
index 00000000..4f47fb80
--- /dev/null
+++ b/addon/components/purchase-order/details.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class PurchaseOrderDetailsComponent extends Component {}
diff --git a/addon/components/purchase-order/form.hbs b/addon/components/purchase-order/form.hbs
new file mode 100644
index 00000000..21595a87
--- /dev/null
+++ b/addon/components/purchase-order/form.hbs
@@ -0,0 +1,66 @@
+
diff --git a/addon/components/purchase-order/form.js b/addon/components/purchase-order/form.js
new file mode 100644
index 00000000..6819a2df
--- /dev/null
+++ b/addon/components/purchase-order/form.js
@@ -0,0 +1,12 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+
+export default class PurchaseOrderFormComponent extends Component {
+ @tracked statusOptions = [
+ { label: 'Draft', value: 'draft' },
+ { label: 'Pending', value: 'pending' },
+ { label: 'Approved', value: 'approved' },
+ { label: 'Received', value: 'received' },
+ { label: 'Cancelled', value: 'cancelled' },
+ ];
+}
diff --git a/addon/components/purchase-order/panel-header.hbs b/addon/components/purchase-order/panel-header.hbs
new file mode 100644
index 00000000..f2438d78
--- /dev/null
+++ b/addon/components/purchase-order/panel-header.hbs
@@ -0,0 +1,11 @@
+
+
+
{{@resource.order_number}}
+
+ {{t "purchase-order.fields.supplier"}}: {{@resource.supplier_name}}
+
+
+
+ {{smart-humanize @resource.status}}
+
+
diff --git a/addon/components/purchase-order/panel-header.js b/addon/components/purchase-order/panel-header.js
new file mode 100644
index 00000000..d836ad42
--- /dev/null
+++ b/addon/components/purchase-order/panel-header.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class PurchaseOrderPanelHeaderComponent extends Component {}
diff --git a/addon/components/purchase-order/pill.hbs b/addon/components/purchase-order/pill.hbs
new file mode 100644
index 00000000..fe92a202
--- /dev/null
+++ b/addon/components/purchase-order/pill.hbs
@@ -0,0 +1,3 @@
+
+ {{@resource.order_number}}
+
diff --git a/addon/components/purchase-order/pill.js b/addon/components/purchase-order/pill.js
new file mode 100644
index 00000000..c37ffe8a
--- /dev/null
+++ b/addon/components/purchase-order/pill.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class PurchaseOrderPillComponent extends Component {}
diff --git a/addon/components/receive-purchase-order-form-panel.hbs b/addon/components/receive-purchase-order-form-panel.hbs
new file mode 100644
index 00000000..e5e26a73
--- /dev/null
+++ b/addon/components/receive-purchase-order-form-panel.hbs
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+ {{! PO Summary }}
+
+
+
+
PO Number
+
{{n-a this.purchaseOrder.public_id}}
+
+
+
Supplier
+
{{n-a this.purchaseOrder.supplier.name}}
+
+
+
+
Reference
+
{{n-a this.purchaseOrder.reference_code}}
+
+
+
Expected Delivery
+
{{n-a this.purchaseOrder.expected_delivery_at}}
+
+
+
Total Items
+
{{this.purchaseOrder.item_count}}
+
+
+
+
+ {{! Receive Items }}
+
+ {{#if this.hasNoReceivableItems}}
+
+
+
All items on this purchase order have already been received.
+
+ {{else}}
+
+ {{/if}}
+
+
+
+
+
+
+
+
+ {{#unless this.hasNoReceivableItems}}
+
+ {{/unless}}
+
+
+
diff --git a/addon/components/receive-purchase-order-form-panel.js b/addon/components/receive-purchase-order-form-panel.js
new file mode 100644
index 00000000..21a29388
--- /dev/null
+++ b/addon/components/receive-purchase-order-form-panel.js
@@ -0,0 +1,177 @@
+import Component from '@glimmer/component';
+import { inject as service } from '@ember/service';
+import { tracked } from '@glimmer/tracking';
+import { action } from '@ember/object';
+import { task } from 'ember-concurrency-decorators';
+
+/**
+ * ReceivePurchaseOrderFormPanel
+ *
+ * A slide-over panel that allows warehouse staff to process the receipt of
+ * goods against a Purchase Order. Each line item shows the ordered quantity,
+ * already-received quantity, and an input for the quantity being received now.
+ * Supports full and partial receipts. On save, calls POST /purchase-orders/:id/receive.
+ */
+export default class ReceivePurchaseOrderFormPanelComponent extends Component {
+ /**
+ * @service notifications
+ */
+ @service notifications;
+
+ /**
+ * @service modalsManager
+ */
+ @service modalsManager;
+
+ /**
+ * @service fetch
+ */
+ @service fetch;
+
+ /**
+ * @service store
+ */
+ @service store;
+
+ /**
+ * The per-item receipt data keyed by item UUID.
+ * Each entry: { quantity_received, lot_number, serial_number, expiry_date, notes }
+ *
+ * @type {Object}
+ * @tracked
+ */
+ @tracked receiptData = {};
+
+ constructor() {
+ super(...arguments);
+ this._initReceiptData();
+ }
+
+ /**
+ * Returns the purchase order from either the direct arg or the context panel `context` arg.
+ *
+ * @type {Object}
+ */
+ get purchaseOrder() {
+ return this.args.purchaseOrder || this.args.context;
+ }
+
+ /**
+ * Initialise the receiptData map with one entry per pending/partial item.
+ */
+ _initReceiptData() {
+ const purchaseOrder = this.purchaseOrder;
+ if (!purchaseOrder || !purchaseOrder.items) {
+ return;
+ }
+
+ const data = {};
+ purchaseOrder.items.forEach((item) => {
+ if (['pending', 'partial'].includes(item.status)) {
+ data[item.id] = {
+ uuid: item.id,
+ quantity_received: item.outstanding_quantity || 0,
+ lot_number: item.lot_number || '',
+ serial_number: item.serial_number || '',
+ expiry_date: '',
+ notes: '',
+ };
+ }
+ });
+ this.receiptData = data;
+ }
+
+ /**
+ * Returns the items that are eligible for receipt (pending or partial).
+ *
+ * @type {Array}
+ */
+ get receivableItems() {
+ const purchaseOrder = this.purchaseOrder;
+ if (!purchaseOrder || !purchaseOrder.items) {
+ return [];
+ }
+ return purchaseOrder.items.filter((item) => ['pending', 'partial'].includes(item.status));
+ }
+
+ /**
+ * Returns true if there are no receivable items.
+ *
+ * @type {Boolean}
+ */
+ get hasNoReceivableItems() {
+ return this.receivableItems.length === 0;
+ }
+
+ /**
+ * Returns the receipt entry for a given item.
+ *
+ * @param {Object} item
+ * @returns {Object}
+ */
+ getReceiptEntry(item) {
+ return this.receiptData[item.id] || {};
+ }
+
+ /**
+ * Updates a field in the receipt entry for a given item.
+ *
+ * @action
+ * @param {Object} item
+ * @param {String} field
+ * @param {*} value
+ */
+ @action updateReceiptField(item, field, value) {
+ const current = this.receiptData[item.id] || {};
+ this.receiptData = {
+ ...this.receiptData,
+ [item.id]: { ...current, [field]: value },
+ };
+ }
+
+ /**
+ * Submits the receipt to the API.
+ *
+ * @task
+ */
+ @task *receiveOrder() {
+ const purchaseOrder = this.purchaseOrder;
+ const items = Object.values(this.receiptData).filter((entry) => entry.quantity_received > 0);
+
+ if (items.length === 0) {
+ this.notifications.warning('Please enter at least one quantity to receive.');
+ return;
+ }
+
+ try {
+ const response = yield this.fetch.post(`purchase-orders/${purchaseOrder.public_id}/receive`, { items }, { namespace: 'pallet/int/v1' });
+
+ // Reload the PO record from the store to reflect updated status and items
+ yield purchaseOrder.reload();
+
+ this.notifications.success(`Purchase Order ${purchaseOrder.public_id} received successfully.`);
+
+ if (typeof this.args.onReceived === 'function') {
+ this.args.onReceived(response);
+ }
+
+ if (typeof this.args.onPressCancel === 'function') {
+ this.args.onPressCancel();
+ }
+ } catch (error) {
+ const message = error?.payload?.error || error?.message || 'Failed to receive purchase order.';
+ this.notifications.serverError({ payload: { errors: [message] } });
+ }
+ }
+
+ /**
+ * Handles the cancel/close action.
+ *
+ * @action
+ */
+ @action onPressCancel() {
+ if (typeof this.args.onPressCancel === 'function') {
+ this.args.onPressCancel();
+ }
+ }
+}
diff --git a/addon/components/sales-order-form-panel.hbs b/addon/components/sales-order-form-panel.hbs
index 5c744f94..a6a48f94 100644
--- a/addon/components/sales-order-form-panel.hbs
+++ b/addon/components/sales-order-form-panel.hbs
@@ -3,7 +3,7 @@
@position="right"
@noBackdrop={{true}}
@fullHeight={{true}}
- @isResizeable={{or this.isResizable @isResizable}}
+ @isResizable={{or this.isResizable @isResizable}}
@width={{or this.width @width "600px"}}
>
{{#if this.salesOrder.id}}
diff --git a/addon/components/sales-order-form-panel.js b/addon/components/sales-order-form-panel.js
index 0c8a6484..1a55d0f3 100644
--- a/addon/components/sales-order-form-panel.js
+++ b/addon/components/sales-order-form-panel.js
@@ -2,6 +2,7 @@ import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
import contextComponentCallback from '@fleetbase/ember-core/utils/context-component-callback';
import applyContextComponentArguments from '@fleetbase/ember-core/utils/apply-context-component-arguments';
@@ -47,12 +48,6 @@ export default class SalesOrderFormPanelComponent extends Component {
*/
@tracked context;
- /**
- * Indicates whether the component is in a loading state.
- * @type {boolean}
- */
- @tracked isLoading = false;
-
/**
* All possible salesOrder status options.
*
@@ -86,31 +81,21 @@ export default class SalesOrderFormPanelComponent extends Component {
* @action
* @returns {Promise}
*/
- @action save() {
+ @task *saveTask() {
const { salesOrder } = this;
this.loader.showLoader('.next-content-overlay-panel-container', { loadingMessage: 'Saving sales order...', preserveTargetPosition: true });
- this.isLoading = true;
-
contextComponentCallback(this, 'onBeforeSave', salesOrder);
try {
- return salesOrder
- .save()
- .then((salesOrder) => {
- this.notifications.success(`Sales order (${salesOrder.id}) saved successfully.`);
- contextComponentCallback(this, 'onAfterSave', salesOrder);
- })
- .catch((error) => {
- this.notifications.serverError(error);
- })
- .finally(() => {
- this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
- });
+ const savedSalesOrder = yield salesOrder.save();
+ this.notifications.success(`Sales order (${savedSalesOrder.id}) saved successfully.`);
+ contextComponentCallback(this, 'onAfterSave', savedSalesOrder);
+ return savedSalesOrder;
} catch (error) {
+ this.notifications.serverError(error);
+ } finally {
this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
}
}
diff --git a/addon/components/sales-order-panel.js b/addon/components/sales-order-panel.js
index bdfeef3b..373f432e 100644
--- a/addon/components/sales-order-panel.js
+++ b/addon/components/sales-order-panel.js
@@ -4,6 +4,7 @@ import { inject as service } from '@ember/service';
import { action } from '@ember/object';
import { isArray } from '@ember/array';
import SalesOrderPanelDetailsComponent from './sales-order-panel/details';
+import SalesOrderPanelItemsComponent from './sales-order-panel/items';
import contextComponentCallback from '@fleetbase/ember-core/utils/context-component-callback';
import applyContextComponentArguments from '@fleetbase/ember-core/utils/apply-context-component-arguments';
@@ -73,7 +74,10 @@ export default class SalesOrderPanelComponent extends Component {
*/
get tabs() {
const registeredTabs = this.universe.getMenuItemsFromRegistry('component:sales-order-panel');
- const defaultTabs = [this.universe._createMenuItem('Details', null, { icon: 'circle-info', component: SalesOrderPanelDetailsComponent })];
+ const defaultTabs = [
+ this.universe._createMenuItem('Details', null, { icon: 'circle-info', component: SalesOrderPanelDetailsComponent }),
+ this.universe._createMenuItem('Line Items', null, { icon: 'list', component: SalesOrderPanelItemsComponent }),
+ ];
if (isArray(registeredTabs)) {
return [...defaultTabs, ...registeredTabs];
diff --git a/addon/components/sales-order-panel/items.hbs b/addon/components/sales-order-panel/items.hbs
new file mode 100644
index 00000000..cc1ce01a
--- /dev/null
+++ b/addon/components/sales-order-panel/items.hbs
@@ -0,0 +1,183 @@
+
+
+ {{! Summary row }}
+
+ {{@salesOrder.item_count}} item(s)
+ {{#if @salesOrder.total_value}}
+
+ Total: {{@salesOrder.currency}} {{@salesOrder.total_value}}
+
+ {{/if}}
+
+
+ {{! Items table }}
+
+
+ {{! New item row }}
+ {{#if this.isAddingItem}}
+
+
+
+ Product
+
+ {{model.name}}
+
+
+
+
Variant
+ {{#if this.newItem.product.has_variants}}
+
+ {{n-a variant.display_name variant.name}}
+
+ {{else}}
+
+ {{/if}}
+
+
+ SKU
+
+
+
+ Quantity
+
+
+
+ Unit Price
+
+
+
+
+
+
+
+
+ {{/if}}
+
+ {{! Add item button }}
+ {{#unless this.isAddingItem}}
+
+
+
+ {{/unless}}
+
+
diff --git a/addon/components/sales-order-panel/items.js b/addon/components/sales-order-panel/items.js
new file mode 100644
index 00000000..227912ca
--- /dev/null
+++ b/addon/components/sales-order-panel/items.js
@@ -0,0 +1,178 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { action } from '@ember/object';
+import { inject as service } from '@ember/service';
+
+export default class SalesOrderPanelItemsComponent extends Component {
+ @service store;
+ @service notifications;
+ @service fetch;
+
+ @tracked isAddingItem = false;
+ @tracked editingItem = null;
+ @tracked newItem = {};
+
+ /**
+ * Returns the items for this sales order.
+ *
+ * @type {Array}
+ */
+ get items() {
+ return this.args.salesOrder?.items ?? [];
+ }
+
+ /**
+ * The order is read-only once it has been fulfilled or cancelled.
+ *
+ * @type {Boolean}
+ */
+ get isReadOnly() {
+ const status = this.args.salesOrder?.status;
+ return status === 'fulfilled' || status === 'cancelled';
+ }
+
+ /**
+ * Show the new-item input row.
+ */
+ @action startAddingItem() {
+ this.newItem = { quantity: 1, unit_price: 0 };
+ this.isAddingItem = true;
+ }
+
+ /**
+ * Hide the new-item input row and reset the draft.
+ */
+ @action cancelAddingItem() {
+ this.isAddingItem = false;
+ this.newItem = {};
+ }
+
+ /**
+ * Persist the new line item to the API and push it into the SO's items array.
+ */
+ @action async addItem() {
+ const salesOrder = this.args.salesOrder;
+ if (!salesOrder) return;
+
+ try {
+ const item = await this.fetch.post(
+ `sales-orders/${salesOrder.id}/items`,
+ {
+ sales_order_item: {
+ product_uuid: this.newItem.product_uuid ?? this.newItem.product?.id,
+ variant_uuid: this.newItem.variant_uuid ?? this.newItem.variant?.id,
+ sku: this.newItem.sku,
+ quantity: this.newItem.quantity,
+ unit_price: this.newItem.unit_price,
+ notes: this.newItem.notes,
+ },
+ },
+ { namespace: 'pallet/int/v1' }
+ );
+
+ const record = this.store.push(this.store.normalize('sales-order-item', item.sales_order_item ?? item));
+ salesOrder.items.pushObject(record);
+
+ this.isAddingItem = false;
+ this.newItem = {};
+ this.notifications.success('Line item added.');
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ /**
+ * Begin inline editing of an existing item.
+ *
+ * @param {SalesOrderItemModel} item
+ */
+ @action startEditingItem(item) {
+ this.editingItem = {
+ id: item.id,
+ product: item.product,
+ product_uuid: item.product_uuid,
+ variant: item.variant,
+ variant_uuid: item.variant_uuid,
+ sku: item.sku,
+ quantity: item.quantity,
+ unit_price: item.unit_price,
+ notes: item.notes,
+ };
+ }
+
+ @action setNewVariant(variant) {
+ this.newItem.variant = variant;
+ this.newItem.variant_uuid = variant?.uuid;
+ if (variant?.sku && !this.newItem.sku) {
+ this.newItem.sku = variant.sku;
+ }
+ }
+
+ @action setEditingVariant(variant) {
+ this.editingItem.variant = variant;
+ this.editingItem.variant_uuid = variant?.uuid;
+ if (variant?.sku && !this.editingItem.sku) {
+ this.editingItem.sku = variant.sku;
+ }
+ }
+
+ /**
+ * Cancel inline editing without saving.
+ */
+ @action cancelEditing() {
+ this.editingItem = null;
+ }
+
+ /**
+ * Persist the edited item to the API and reload the store record.
+ */
+ @action async saveEditingItem() {
+ const salesOrder = this.args.salesOrder;
+ if (!this.editingItem || !salesOrder) return;
+
+ try {
+ await this.fetch.put(
+ `sales-orders/${salesOrder.id}/items/${this.editingItem.id}`,
+ {
+ sales_order_item: {
+ product_uuid: this.editingItem.product_uuid ?? this.editingItem.product?.id,
+ variant_uuid: this.editingItem.variant_uuid ?? this.editingItem.variant?.id,
+ sku: this.editingItem.sku,
+ quantity: this.editingItem.quantity,
+ unit_price: this.editingItem.unit_price,
+ notes: this.editingItem.notes,
+ },
+ },
+ { namespace: 'pallet/int/v1' }
+ );
+
+ const storeItem = this.store.peekRecord('sales-order-item', this.editingItem.id);
+ if (storeItem) {
+ storeItem.reload();
+ }
+
+ this.editingItem = null;
+ this.notifications.success('Line item updated.');
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ /**
+ * Delete a line item from the SO.
+ *
+ * @param {SalesOrderItemModel} item
+ */
+ @action async removeItem(item) {
+ const salesOrder = this.args.salesOrder;
+ if (!salesOrder) return;
+
+ try {
+ await this.fetch.delete(`sales-orders/${salesOrder.id}/items/${item.id}`, {}, { namespace: 'pallet/int/v1' });
+ salesOrder.items.removeObject(item);
+ this.notifications.success('Line item removed.');
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+}
diff --git a/addon/components/sales-order/details.hbs b/addon/components/sales-order/details.hbs
new file mode 100644
index 00000000..9c890a86
--- /dev/null
+++ b/addon/components/sales-order/details.hbs
@@ -0,0 +1,40 @@
+
+
+
+
+
{{t "common.id"}}
+
{{n-a @resource.public_id}}
+
+
+
{{t "sales-order.fields.order-number"}}
+
{{n-a @resource.order_number}}
+
+
+
{{t "sales-order.fields.customer"}}
+
{{n-a @resource.customer_name}}
+
+
+
{{t "sales-order.fields.warehouse"}}
+
{{n-a @resource.warehouse_name}}
+
+
+
{{t "common.status"}}
+
+ {{smart-humanize @resource.status}}
+
+
+
+
{{t "sales-order.fields.expected-shipment"}}
+
{{format-date @resource.expected_shipment_at}}
+
+
+
{{t "common.notes"}}
+
{{n-a @resource.notes}}
+
+
+
+
+
+
+
+
diff --git a/addon/components/sales-order/details.js b/addon/components/sales-order/details.js
new file mode 100644
index 00000000..064fb475
--- /dev/null
+++ b/addon/components/sales-order/details.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class SalesOrderDetailsComponent extends Component {}
diff --git a/addon/components/sales-order/form.hbs b/addon/components/sales-order/form.hbs
new file mode 100644
index 00000000..2bcb114a
--- /dev/null
+++ b/addon/components/sales-order/form.hbs
@@ -0,0 +1,66 @@
+
diff --git a/addon/components/sales-order/form.js b/addon/components/sales-order/form.js
new file mode 100644
index 00000000..e937c68c
--- /dev/null
+++ b/addon/components/sales-order/form.js
@@ -0,0 +1,13 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+
+export default class SalesOrderFormComponent extends Component {
+ @tracked statusOptions = [
+ { label: 'Draft', value: 'draft' },
+ { label: 'Pending', value: 'pending' },
+ { label: 'Processing', value: 'processing' },
+ { label: 'Shipped', value: 'shipped' },
+ { label: 'Delivered', value: 'delivered' },
+ { label: 'Cancelled', value: 'cancelled' },
+ ];
+}
diff --git a/addon/components/sales-order/panel-header.hbs b/addon/components/sales-order/panel-header.hbs
new file mode 100644
index 00000000..15832d6b
--- /dev/null
+++ b/addon/components/sales-order/panel-header.hbs
@@ -0,0 +1,11 @@
+
+
+
{{@resource.order_number}}
+
+ {{t "sales-order.fields.customer"}}: {{@resource.customer_name}}
+
+
+
+ {{smart-humanize @resource.status}}
+
+
diff --git a/addon/components/sales-order/panel-header.js b/addon/components/sales-order/panel-header.js
new file mode 100644
index 00000000..6e34d9f1
--- /dev/null
+++ b/addon/components/sales-order/panel-header.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class SalesOrderPanelHeaderComponent extends Component {}
diff --git a/addon/components/sales-order/pill.hbs b/addon/components/sales-order/pill.hbs
new file mode 100644
index 00000000..fe92a202
--- /dev/null
+++ b/addon/components/sales-order/pill.hbs
@@ -0,0 +1,3 @@
+
+ {{@resource.order_number}}
+
diff --git a/addon/components/sales-order/pill.js b/addon/components/sales-order/pill.js
new file mode 100644
index 00000000..0eddbdf7
--- /dev/null
+++ b/addon/components/sales-order/pill.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class SalesOrderPillComponent extends Component {}
diff --git a/addon/components/stock-adjustment-form-panel.hbs b/addon/components/stock-adjustment-form-panel.hbs
index 29f4b78a..e11bdc2e 100644
--- a/addon/components/stock-adjustment-form-panel.hbs
+++ b/addon/components/stock-adjustment-form-panel.hbs
@@ -3,7 +3,7 @@
@position="right"
@noBackdrop={{true}}
@fullHeight={{true}}
- @isResizeble={{or this.isResizable @isResizable}}
+ @isResizable={{or this.isResizable @isResizable}}
@width={{or this.width @width "600px"}}
>
{{#if this.stockAdjustment.id}}
diff --git a/addon/components/stock-adjustment-form-panel.js b/addon/components/stock-adjustment-form-panel.js
index 45410a98..9e00a0d5 100644
--- a/addon/components/stock-adjustment-form-panel.js
+++ b/addon/components/stock-adjustment-form-panel.js
@@ -2,6 +2,7 @@ import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
import contextComponentCallback from '@fleetbase/ember-core/utils/context-component-callback';
import applyContextComponentArguments from '@fleetbase/ember-core/utils/apply-context-component-arguments';
@@ -37,12 +38,6 @@ export default class StockAdjustmentFormPanelComponent extends Component {
*/
@tracked context;
- /**
- * Indicates whether the component is in a loading state.
- * @type {boolean}
- */
- @tracked isLoading = false;
-
/**
* Fuel Report status
* @type {Array}
@@ -75,31 +70,21 @@ export default class StockAdjustmentFormPanelComponent extends Component {
* @action
* @returns {Promise}
*/
- @action save() {
+ @task *saveTask() {
const { stockAdjustment } = this;
this.loader.showLoader('.next-content-overlay-panel-container', { loadingMessage: 'Saving stockAdjustment...', preserveTargetPosition: true });
- this.isLoading = true;
-
contextComponentCallback(this, 'onBeforeSave', stockAdjustment);
try {
- return stockAdjustment
- .save()
- .then((stockAdjustment) => {
- this.notifications.success(`Stock Adjustment saved successfully.`);
- contextComponentCallback(this, 'onAfterSave', stockAdjustment);
- })
- .catch((error) => {
- this.notifications.serverError(error);
- })
- .finally(() => {
- this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
- });
+ const savedStockAdjustment = yield stockAdjustment.save();
+ this.notifications.success(`Stock Adjustment saved successfully.`);
+ contextComponentCallback(this, 'onAfterSave', savedStockAdjustment);
+ return savedStockAdjustment;
} catch (error) {
+ this.notifications.serverError(error);
+ } finally {
this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
}
}
diff --git a/addon/components/supplier-form-panel.hbs b/addon/components/supplier-form-panel.hbs
index 6180fb0f..081d4fd9 100644
--- a/addon/components/supplier-form-panel.hbs
+++ b/addon/components/supplier-form-panel.hbs
@@ -3,7 +3,7 @@
@position="right"
@noBackdrop={{true}}
@fullHeight={{true}}
- @isResizeble={{or this.isResizable @isResizable}}
+ @isResizable={{or this.isResizable @isResizable}}
@width={{or this.width @width "600px"}}
>
-
+
{{#if this.supplier.id}}
{{/if}}
diff --git a/addon/components/supplier-form-panel.js b/addon/components/supplier-form-panel.js
index 38d5ee86..633e0fef 100644
--- a/addon/components/supplier-form-panel.js
+++ b/addon/components/supplier-form-panel.js
@@ -2,6 +2,7 @@ import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
import contextComponentCallback from '@fleetbase/ember-core/utils/context-component-callback';
import applyContextComponentArguments from '@fleetbase/ember-core/utils/apply-context-component-arguments';
@@ -37,12 +38,6 @@ export default class SupplierFormPanelComponent extends Component {
*/
@tracked context;
- /**
- * Indicates whether the component is in a loading state.
- * @type {boolean}
- */
- @tracked isLoading = false;
-
/**
* Fuel Report status
* @type {Array}
@@ -75,31 +70,21 @@ export default class SupplierFormPanelComponent extends Component {
* @action
* @returns {Promise
}
*/
- @action save() {
+ @task *saveTask() {
const { supplier } = this;
this.loader.showLoader('.next-content-overlay-panel-container', { loadingMessage: 'Saving supplier...', preserveTargetPosition: true });
- this.isLoading = true;
-
contextComponentCallback(this, 'onBeforeSave', supplier);
try {
- return supplier
- .save()
- .then((supplier) => {
- this.notifications.success(`Supplier saved successfully.`);
- contextComponentCallback(this, 'onAfterSave', supplier);
- })
- .catch((error) => {
- this.notifications.serverError(error);
- })
- .finally(() => {
- this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
- });
+ const savedSupplier = yield supplier.save();
+ this.notifications.success(`Supplier saved successfully.`);
+ contextComponentCallback(this, 'onAfterSave', savedSupplier);
+ return savedSupplier;
} catch (error) {
+ this.notifications.serverError(error);
+ } finally {
this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
}
}
diff --git a/addon/components/supplier/details.hbs b/addon/components/supplier/details.hbs
new file mode 100644
index 00000000..85016276
--- /dev/null
+++ b/addon/components/supplier/details.hbs
@@ -0,0 +1,40 @@
+
+
+
+
+
{{t "common.id"}}
+
{{n-a @resource.public_id}}
+
+
+
{{t "common.name"}}
+
{{n-a @resource.name}}
+
+
+
{{t "common.email"}}
+
{{n-a @resource.email}}
+
+
+
{{t "common.phone"}}
+
{{n-a @resource.phone}}
+
+
+
{{t "supplier.fields.type"}}
+
{{smart-humanize @resource.type}}
+
+
+
{{t "common.status"}}
+
+ {{smart-humanize @resource.status}}
+
+
+
+
{{t "common.description"}}
+
{{n-a @resource.description}}
+
+
+
+
+
+
+
+
diff --git a/addon/components/supplier/details.js b/addon/components/supplier/details.js
new file mode 100644
index 00000000..e1ed7d2d
--- /dev/null
+++ b/addon/components/supplier/details.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class SupplierDetailsComponent extends Component {}
diff --git a/addon/components/supplier/form.hbs b/addon/components/supplier/form.hbs
new file mode 100644
index 00000000..e7917003
--- /dev/null
+++ b/addon/components/supplier/form.hbs
@@ -0,0 +1,52 @@
+
diff --git a/addon/components/supplier/form.js b/addon/components/supplier/form.js
new file mode 100644
index 00000000..ebebc6fc
--- /dev/null
+++ b/addon/components/supplier/form.js
@@ -0,0 +1,14 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+
+export default class SupplierFormComponent extends Component {
+ @tracked typeOptions = [
+ { label: 'Manufacturer', value: 'manufacturer' },
+ { label: 'Distributor', value: 'distributor' },
+ { label: 'Wholesaler', value: 'wholesaler' },
+ ];
+ @tracked statusOptions = [
+ { label: 'Active', value: 'active' },
+ { label: 'Inactive', value: 'inactive' },
+ ];
+}
diff --git a/addon/components/supplier/panel-header.hbs b/addon/components/supplier/panel-header.hbs
new file mode 100644
index 00000000..93c85a23
--- /dev/null
+++ b/addon/components/supplier/panel-header.hbs
@@ -0,0 +1,11 @@
+
+
+
{{@resource.name}}
+
+ {{smart-humanize @resource.type}}
+
+
+
+ {{smart-humanize @resource.status}}
+
+
diff --git a/addon/components/supplier/panel-header.js b/addon/components/supplier/panel-header.js
new file mode 100644
index 00000000..fe63973d
--- /dev/null
+++ b/addon/components/supplier/panel-header.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class SupplierPanelHeaderComponent extends Component {}
diff --git a/addon/components/supplier/pill.hbs b/addon/components/supplier/pill.hbs
new file mode 100644
index 00000000..b47c2f3a
--- /dev/null
+++ b/addon/components/supplier/pill.hbs
@@ -0,0 +1,3 @@
+
+ {{@resource.name}}
+
diff --git a/addon/components/supplier/pill.js b/addon/components/supplier/pill.js
new file mode 100644
index 00000000..94bb7144
--- /dev/null
+++ b/addon/components/supplier/pill.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class SupplierPillComponent extends Component {}
diff --git a/addon/components/warehouse-editor.hbs b/addon/components/warehouse-editor.hbs
index 7573cccb..5969c1d9 100644
--- a/addon/components/warehouse-editor.hbs
+++ b/addon/components/warehouse-editor.hbs
@@ -3,7 +3,7 @@
-
+
diff --git a/addon/components/warehouse-form-panel.hbs b/addon/components/warehouse-form-panel.hbs
index 8ae7e0f3..76e65c31 100644
--- a/addon/components/warehouse-form-panel.hbs
+++ b/addon/components/warehouse-form-panel.hbs
@@ -1,17 +1,81 @@
-
-
+
+
-
+
diff --git a/addon/components/warehouse-form-panel.js b/addon/components/warehouse-form-panel.js
index cd220289..0792d01b 100644
--- a/addon/components/warehouse-form-panel.js
+++ b/addon/components/warehouse-form-panel.js
@@ -2,6 +2,7 @@ import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
import { isBlank } from '@ember/utils';
import Point from '@fleetbase/fleetops-data/utils/geojson/point';
import contextComponentCallback from '@fleetbase/ember-core/utils/context-component-callback';
@@ -44,12 +45,6 @@ export default class WarehouseFormPanelComponent extends Component {
*/
@tracked context;
- /**
- * Indicates whether the component is in a loading state.
- * @type {boolean}
- */
- @tracked isLoading = false;
-
/**
* The coordinates input component instance.
* @type {CoordinateInputComponent}
@@ -82,31 +77,21 @@ export default class WarehouseFormPanelComponent extends Component {
* @action
* @returns {Promise}
*/
- @action save() {
+ @task *saveTask() {
const { warehouse } = this;
this.loader.showLoader('.next-content-overlay-panel-container', { loadingMessage: 'Saving place...', preserveTargetPosition: true });
- this.isLoading = true;
-
contextComponentCallback(this, 'onBeforeSave', warehouse);
try {
- return warehouse
- .save()
- .then((warehouse) => {
- this.notifications.success(`Warehouse (${warehouse.name}) saved successfully.`);
- contextComponentCallback(this, 'onAfterSave', warehouse);
- })
- .catch((error) => {
- this.notifications.serverError(error);
- })
- .finally(() => {
- this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
- });
+ const savedWarehouse = yield warehouse.save();
+ this.notifications.success(`Warehouse (${savedWarehouse.name}) saved successfully.`);
+ contextComponentCallback(this, 'onAfterSave', savedWarehouse);
+ return savedWarehouse;
} catch (error) {
+ this.notifications.serverError(error);
+ } finally {
this.loader.removeLoader('.next-content-overlay-panel-container ');
- this.isLoading = false;
}
}
@@ -190,7 +175,7 @@ export default class WarehouseFormPanelComponent extends Component {
* @param {number} coordinates.longitude - Longitude value.
* @memberof WarehouseFormPanelComponent
*/
- @action updatePlaceCoordinates({ latitude, longitude }) {
+ @action updateWarehouseCoordinates({ latitude, longitude }) {
const location = new Point(longitude, latitude);
this.warehouse.setProperties({ location });
diff --git a/addon/components/warehouse/details.hbs b/addon/components/warehouse/details.hbs
new file mode 100644
index 00000000..31929f05
--- /dev/null
+++ b/addon/components/warehouse/details.hbs
@@ -0,0 +1,79 @@
+
+
+
+
+
{{t "common.id"}}
+
{{n-a @resource.public_id}}
+
+
+
{{t "common.name"}}
+
{{n-a @resource.name}}
+
+
+
{{t "common.phone"}}
+
{{n-a @resource.phone}}
+
+
+
{{t "common.email"}}
+
{{n-a @resource.email}}
+
+
+
{{t "common.address"}}
+
{{n-a @resource.address}}
+
+
+
{{t "common.description"}}
+
{{n-a @resource.meta.description}}
+
+
+
+
+
+
+
+
{{t "warehouse.fields.capacity"}}
+
{{format-number @resource.capacity}}
+
+
+
{{t "warehouse.fields.current-utilization"}}
+
{{format-number @resource.current_utilization}}%
+
+
+
{{t "warehouse.fields.code"}}
+
{{n-a @resource.code}}
+
+
+
{{t "warehouse.fields.type"}}
+
{{n-a @resource.type}}
+
+
+
{{t "warehouse.fields.status"}}
+
+ {{#if (eq @resource.status "active")}}
+ {{t "common.active"}}
+ {{else if (eq @resource.status "inactive")}}
+ {{t "common.inactive"}}
+ {{else}}
+ {{n-a @resource.status}}
+ {{/if}}
+
+
+
+
{{t "warehouse.fields.is-active"}}
+
+ {{#if @resource.is_active}}
+ {{t "common.yes"}}
+ {{else}}
+ {{t "common.no"}}
+ {{/if}}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addon/components/warehouse/details.js b/addon/components/warehouse/details.js
new file mode 100644
index 00000000..a27e3b1d
--- /dev/null
+++ b/addon/components/warehouse/details.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class WarehouseDetailsComponent extends Component {}
diff --git a/addon/components/warehouse/form.hbs b/addon/components/warehouse/form.hbs
new file mode 100644
index 00000000..aa08ea28
--- /dev/null
+++ b/addon/components/warehouse/form.hbs
@@ -0,0 +1,63 @@
+
diff --git a/addon/components/warehouse/form.js b/addon/components/warehouse/form.js
new file mode 100644
index 00000000..9bfbf74a
--- /dev/null
+++ b/addon/components/warehouse/form.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class WarehouseFormComponent extends Component {}
diff --git a/addon/components/warehouse/panel-header.hbs b/addon/components/warehouse/panel-header.hbs
new file mode 100644
index 00000000..65e0424a
--- /dev/null
+++ b/addon/components/warehouse/panel-header.hbs
@@ -0,0 +1,13 @@
+
+
+
{{@resource.name}}
+
+ {{@resource.address}}
+
+
+
+ {{#if @resource.is_3pl}}
+ 3PL
+ {{/if}}
+
+
diff --git a/addon/components/warehouse/panel-header.js b/addon/components/warehouse/panel-header.js
new file mode 100644
index 00000000..0f34c38e
--- /dev/null
+++ b/addon/components/warehouse/panel-header.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class WarehousePanelHeaderComponent extends Component {}
diff --git a/addon/components/warehouse/pill.hbs b/addon/components/warehouse/pill.hbs
new file mode 100644
index 00000000..a3e131f4
--- /dev/null
+++ b/addon/components/warehouse/pill.hbs
@@ -0,0 +1,4 @@
+
+
+ {{@resource.name}}
+
diff --git a/addon/components/warehouse/pill.js b/addon/components/warehouse/pill.js
new file mode 100644
index 00000000..38e9c048
--- /dev/null
+++ b/addon/components/warehouse/pill.js
@@ -0,0 +1,3 @@
+import Component from '@glimmer/component';
+
+export default class WarehousePillComponent extends Component {}
diff --git a/addon/components/widget/expiring-stock.hbs b/addon/components/widget/expiring-stock.hbs
new file mode 100644
index 00000000..3798bd0b
--- /dev/null
+++ b/addon/components/widget/expiring-stock.hbs
@@ -0,0 +1,44 @@
+
+ {{#if this.loadExpiringStock.isRunning}}
+
+
+
+ {{else if (eq this.items.length 0)}}
+
+
+ No stock expiring within 30 days
+
+ {{else}}
+
+
+
+
+ Product
+ Qty
+ Expires
+
+
+
+ {{#each this.items as |item|}}
+
+
+ {{n-a item.product_name}}
+ {{#if item.lot_number}}
+ · {{item.lot_number}}
+ {{/if}}
+
+ {{item.quantity}}
+
+ {{#let (this.daysUntilExpiry item.expiry_date) as |days|}}
+
+ {{days}}d
+
+ {{/let}}
+
+
+ {{/each}}
+
+
+
+ {{/if}}
+
\ No newline at end of file
diff --git a/addon/components/widget/expiring-stock.js b/addon/components/widget/expiring-stock.js
new file mode 100644
index 00000000..4c939a9c
--- /dev/null
+++ b/addon/components/widget/expiring-stock.js
@@ -0,0 +1,39 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { task } from 'ember-concurrency';
+
+export default class WidgetExpiringStockComponent extends Component {
+ @service fetch;
+ @service notifications;
+
+ @tracked items = [];
+
+ constructor() {
+ super(...arguments);
+ this.loadExpiringStock.perform();
+ }
+
+ @task({ restartable: true })
+ *loadExpiringStock() {
+ try {
+ const data = yield this.fetch.get('metrics/expiring-stock', { days: 30, limit: 10 }, { namespace: 'pallet/int/v1' });
+ this.items = data.items ?? [];
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ daysUntilExpiry(expiryDate) {
+ if (!expiryDate) return null;
+ const now = new Date();
+ const expiry = new Date(expiryDate);
+ return Math.ceil((expiry - now) / (1000 * 60 * 60 * 24));
+ }
+
+ expiryBadgeClass(days) {
+ if (days <= 7) return 'text-red-600 bg-red-50 dark:bg-red-900/20';
+ if (days <= 14) return 'text-orange-600 bg-orange-50 dark:bg-orange-900/20';
+ return 'text-yellow-600 bg-yellow-50 dark:bg-yellow-900/20';
+ }
+}
diff --git a/addon/components/widget/inventory-summary.hbs b/addon/components/widget/inventory-summary.hbs
new file mode 100644
index 00000000..ec5a463f
--- /dev/null
+++ b/addon/components/widget/inventory-summary.hbs
@@ -0,0 +1,35 @@
+
+ {{#if this.loadMetrics.isRunning}}
+
+
+
+ {{else}}
+
+
+
+ {{this.totalSkus}}
+ Total SKUs
+
+
+
+ {{this.totalUnits}}
+ Total Units
+
+
+
+ {{this.totalValue}}
+ Stock Value
+
+
+
+ {{this.warehouseCount}}
+ Warehouses
+
+
+
+ {{this.lowStockCount}}
+ Low Stock
+
+
+ {{/if}}
+
\ No newline at end of file
diff --git a/addon/components/widget/inventory-summary.js b/addon/components/widget/inventory-summary.js
new file mode 100644
index 00000000..d8c8caf0
--- /dev/null
+++ b/addon/components/widget/inventory-summary.js
@@ -0,0 +1,34 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { task } from 'ember-concurrency';
+
+export default class WidgetInventorySummaryComponent extends Component {
+ @service fetch;
+ @service notifications;
+
+ @tracked totalSkus = 0;
+ @tracked totalUnits = 0;
+ @tracked totalValue = 0;
+ @tracked warehouseCount = 0;
+ @tracked lowStockCount = 0;
+
+ constructor() {
+ super(...arguments);
+ this.loadMetrics.perform();
+ }
+
+ @task({ restartable: true })
+ *loadMetrics() {
+ try {
+ const data = yield this.fetch.get('metrics/inventory-summary', {}, { namespace: 'pallet/int/v1' });
+ this.totalSkus = data.total_skus ?? 0;
+ this.totalUnits = data.total_units ?? 0;
+ this.totalValue = data.total_value ?? 0;
+ this.warehouseCount = data.warehouse_count ?? 0;
+ this.lowStockCount = data.low_stock_count ?? 0;
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+}
diff --git a/addon/components/widget/low-stock.hbs b/addon/components/widget/low-stock.hbs
new file mode 100644
index 00000000..dcec42d7
--- /dev/null
+++ b/addon/components/widget/low-stock.hbs
@@ -0,0 +1,41 @@
+
+ {{#if this.loadLowStock.isRunning}}
+
+
+
+ {{else if (eq this.items.length 0)}}
+
+
+ All stock levels are healthy
+
+ {{else}}
+
+
+
+
+ Product
+ SKU
+ In Stock
+ Min
+
+
+
+ {{#each this.items as |item|}}
+
+
+ {{n-a item.name}}
+
+ {{n-a item.sku}}
+
+
+ {{item.quantity}}
+
+
+ {{item.min_stock}}
+
+ {{/each}}
+
+
+
+ {{/if}}
+
\ No newline at end of file
diff --git a/addon/components/widget/low-stock.js b/addon/components/widget/low-stock.js
new file mode 100644
index 00000000..626ba51a
--- /dev/null
+++ b/addon/components/widget/low-stock.js
@@ -0,0 +1,26 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { task } from 'ember-concurrency';
+
+export default class WidgetLowStockComponent extends Component {
+ @service fetch;
+ @service notifications;
+
+ @tracked items = [];
+
+ constructor() {
+ super(...arguments);
+ this.loadLowStock.perform();
+ }
+
+ @task({ restartable: true })
+ *loadLowStock() {
+ try {
+ const data = yield this.fetch.get('metrics/low-stock', { limit: 10 }, { namespace: 'pallet/int/v1' });
+ this.items = data.items ?? [];
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+}
diff --git a/addon/components/widget/po-status.hbs b/addon/components/widget/po-status.hbs
new file mode 100644
index 00000000..af9bfc9e
--- /dev/null
+++ b/addon/components/widget/po-status.hbs
@@ -0,0 +1,52 @@
+
+ {{#if this.loadStatus.isRunning}}
+
+
+
+ {{else}}
+ {{! Status summary badges }}
+
+
+
+
+
{{this.pending}}
+
Pending
+
+
+
+
+
+
{{this.partiallyReceived}}
+
Partial
+
+
+
+
+
+
{{this.received}}
+
Received
+
+
+
+
+
+
{{this.cancelled}}
+
Cancelled
+
+
+
+
+ {{! Recent orders list }}
+
+ {{#each this.recentOrders as |order|}}
+
+
+ {{n-a order.public_id}}
+ {{n-a order.supplier_name}}
+
+
+
+ {{/each}}
+
+ {{/if}}
+
\ No newline at end of file
diff --git a/addon/components/widget/po-status.js b/addon/components/widget/po-status.js
new file mode 100644
index 00000000..2f130113
--- /dev/null
+++ b/addon/components/widget/po-status.js
@@ -0,0 +1,38 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { task } from 'ember-concurrency';
+
+export default class WidgetPoStatusComponent extends Component {
+ @service fetch;
+ @service notifications;
+
+ @tracked pending = 0;
+ @tracked partiallyReceived = 0;
+ @tracked received = 0;
+ @tracked cancelled = 0;
+ @tracked recentOrders = [];
+
+ get total() {
+ return this.pending + this.partiallyReceived + this.received + this.cancelled;
+ }
+
+ constructor() {
+ super(...arguments);
+ this.loadStatus.perform();
+ }
+
+ @task({ restartable: true })
+ *loadStatus() {
+ try {
+ const data = yield this.fetch.get('metrics/po-status', {}, { namespace: 'pallet/int/v1' });
+ this.pending = data.pending ?? 0;
+ this.partiallyReceived = data.partially_received ?? 0;
+ this.received = data.received ?? 0;
+ this.cancelled = data.cancelled ?? 0;
+ this.recentOrders = data.recent ?? [];
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+}
diff --git a/addon/components/widget/recent-activity.hbs b/addon/components/widget/recent-activity.hbs
new file mode 100644
index 00000000..6d45ecc4
--- /dev/null
+++ b/addon/components/widget/recent-activity.hbs
@@ -0,0 +1,35 @@
+
+ {{#if this.loadActivity.isRunning}}
+
+
+
+ {{else if (eq this.events.length 0)}}
+
+
+ No recent activity
+
+ {{else}}
+
+ {{#each this.events as |event|}}
+
+
+
+
+
+
+ {{n-a event.action}}
+ {{#if event.subjectLabel}}
+ · {{event.subjectLabel}}
+ {{/if}}
+
+
+ {{n-a event.performedBy.name}}
+ ·
+
+
+
+
+ {{/each}}
+
+ {{/if}}
+
\ No newline at end of file
diff --git a/addon/components/widget/recent-activity.js b/addon/components/widget/recent-activity.js
new file mode 100644
index 00000000..c72f0bd1
--- /dev/null
+++ b/addon/components/widget/recent-activity.js
@@ -0,0 +1,52 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { task } from 'ember-concurrency';
+
+export default class WidgetRecentActivityComponent extends Component {
+ @service fetch;
+ @service notifications;
+
+ @tracked events = [];
+
+ constructor() {
+ super(...arguments);
+ this.loadActivity.perform();
+ }
+
+ @task({ restartable: true })
+ *loadActivity() {
+ try {
+ const data = yield this.fetch.get('audits', { limit: 15, sort: '-created_at' }, { namespace: 'pallet/int/v1' });
+ this.events = data.audits ?? data ?? [];
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ eventIcon(eventType) {
+ const icons = {
+ stock_adjustment: 'sliders',
+ po_received: 'truck-ramp-box',
+ so_fulfilled: 'box-open',
+ cycle_count: 'clipboard-list',
+ stock_transfer: 'arrows-left-right',
+ inventory_created: 'plus-circle',
+ batch_created: 'layer-group',
+ };
+ return icons[eventType] ?? 'circle-dot';
+ }
+
+ eventColor(eventType) {
+ const colors = {
+ stock_adjustment: 'text-orange-500',
+ po_received: 'text-blue-500',
+ so_fulfilled: 'text-green-500',
+ cycle_count: 'text-purple-500',
+ stock_transfer: 'text-yellow-500',
+ inventory_created: 'text-teal-500',
+ batch_created: 'text-indigo-500',
+ };
+ return colors[eventType] ?? 'text-gray-400';
+ }
+}
diff --git a/addon/components/widget/so-status.hbs b/addon/components/widget/so-status.hbs
new file mode 100644
index 00000000..fc622121
--- /dev/null
+++ b/addon/components/widget/so-status.hbs
@@ -0,0 +1,52 @@
+
+ {{#if this.loadStatus.isRunning}}
+
+
+
+ {{else}}
+ {{! Status summary badges }}
+
+
+
+
+
{{this.pending}}
+
Pending
+
+
+
+
+
+
{{this.partiallyFulfilled}}
+
Partial
+
+
+
+
+
+
{{this.fulfilled}}
+
Fulfilled
+
+
+
+
+
+
{{this.cancelled}}
+
Cancelled
+
+
+
+
+ {{! Recent orders list }}
+
+ {{#each this.recentOrders as |order|}}
+
+
+ {{n-a order.public_id}}
+ {{n-a order.customer_name}}
+
+
+
+ {{/each}}
+
+ {{/if}}
+
\ No newline at end of file
diff --git a/addon/components/widget/so-status.js b/addon/components/widget/so-status.js
new file mode 100644
index 00000000..f7524888
--- /dev/null
+++ b/addon/components/widget/so-status.js
@@ -0,0 +1,38 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { task } from 'ember-concurrency';
+
+export default class WidgetSoStatusComponent extends Component {
+ @service fetch;
+ @service notifications;
+
+ @tracked pending = 0;
+ @tracked partiallyFulfilled = 0;
+ @tracked fulfilled = 0;
+ @tracked cancelled = 0;
+ @tracked recentOrders = [];
+
+ get total() {
+ return this.pending + this.partiallyFulfilled + this.fulfilled + this.cancelled;
+ }
+
+ constructor() {
+ super(...arguments);
+ this.loadStatus.perform();
+ }
+
+ @task({ restartable: true })
+ *loadStatus() {
+ try {
+ const data = yield this.fetch.get('metrics/so-status', {}, { namespace: 'pallet/int/v1' });
+ this.pending = data.pending ?? 0;
+ this.partiallyFulfilled = data.partially_fulfilled ?? 0;
+ this.fulfilled = data.fulfilled ?? 0;
+ this.cancelled = data.cancelled ?? 0;
+ this.recentOrders = data.recent ?? [];
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+}
diff --git a/addon/components/widget/stock-value.hbs b/addon/components/widget/stock-value.hbs
new file mode 100644
index 00000000..6d9c4079
--- /dev/null
+++ b/addon/components/widget/stock-value.hbs
@@ -0,0 +1,34 @@
+
+ {{#if this.loadStockValue.isRunning}}
+
+
+
+ {{else if (eq this.warehouses.length 0)}}
+
+
+ No warehouse data
+
+ {{else}}
+
+ Total Stock Value
+ {{this.totalValue}}
+
+
+ {{#each this.warehouses as |warehouse|}}
+
+
+
+ {{n-a warehouse.name}}
+
+
+ {{n-a warehouse.value}}
+
+
+
+
+ {{/each}}
+
+ {{/if}}
+
\ No newline at end of file
diff --git a/addon/components/widget/stock-value.js b/addon/components/widget/stock-value.js
new file mode 100644
index 00000000..59d2b0c4
--- /dev/null
+++ b/addon/components/widget/stock-value.js
@@ -0,0 +1,38 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { task } from 'ember-concurrency';
+
+export default class WidgetStockValueComponent extends Component {
+ @service fetch;
+ @service notifications;
+
+ @tracked warehouses = [];
+ @tracked totalValue = 0;
+
+ constructor() {
+ super(...arguments);
+ this.loadStockValue.perform();
+ }
+
+ @task({ restartable: true })
+ *loadStockValue() {
+ try {
+ const data = yield this.fetch.get('metrics/stock-value', {}, { namespace: 'pallet/int/v1' });
+ this.warehouses = data.warehouses ?? [];
+ this.totalValue = data.total_value ?? 0;
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ get maxValue() {
+ if (!this.warehouses.length) return 1;
+ return Math.max(...this.warehouses.map((w) => w.value ?? 0));
+ }
+
+ barWidth(value) {
+ if (!this.maxValue) return '0%';
+ return `${Math.round((value / this.maxValue) * 100)}%`;
+ }
+}
diff --git a/addon/components/widget/top-products.hbs b/addon/components/widget/top-products.hbs
new file mode 100644
index 00000000..9ce4be7c
--- /dev/null
+++ b/addon/components/widget/top-products.hbs
@@ -0,0 +1,36 @@
+
+ {{#if this.loadTopProducts.isRunning}}
+
+
+
+ {{else if (eq this.products.length 0)}}
+
+
+ No movement data yet
+
+ {{else}}
+
+ {{#each this.products as |product index|}}
+
+
+ {{add index 1}}
+
+
+
+
+ {{n-a product.name}}
+
+
+ {{product.movement_count}}
+ moves
+
+
+
+
+
+ {{/each}}
+
+ {{/if}}
+
\ No newline at end of file
diff --git a/addon/components/widget/top-products.js b/addon/components/widget/top-products.js
new file mode 100644
index 00000000..24b9aede
--- /dev/null
+++ b/addon/components/widget/top-products.js
@@ -0,0 +1,36 @@
+import Component from '@glimmer/component';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { task } from 'ember-concurrency';
+
+export default class WidgetTopProductsComponent extends Component {
+ @service fetch;
+ @service notifications;
+
+ @tracked products = [];
+
+ constructor() {
+ super(...arguments);
+ this.loadTopProducts.perform();
+ }
+
+ @task({ restartable: true })
+ *loadTopProducts() {
+ try {
+ const data = yield this.fetch.get('metrics/top-products', { limit: 10 }, { namespace: 'pallet/int/v1' });
+ this.products = data.products ?? [];
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ }
+
+ get maxMovement() {
+ if (!this.products.length) return 1;
+ return Math.max(...this.products.map((p) => p.movement_count ?? 0));
+ }
+
+ barWidth(count) {
+ if (!this.maxMovement) return '0%';
+ return `${Math.round((count / this.maxMovement) * 100)}%`;
+ }
+}
diff --git a/addon/controllers/analytics/audits/index.js b/addon/controllers/analytics/audits/index.js
new file mode 100644
index 00000000..89f0450d
--- /dev/null
+++ b/addon/controllers/analytics/audits/index.js
@@ -0,0 +1 @@
+export { default } from '../../audits/index';
diff --git a/addon/controllers/analytics/audits/index/details.js b/addon/controllers/analytics/audits/index/details.js
new file mode 100644
index 00000000..4ec65ecf
--- /dev/null
+++ b/addon/controllers/analytics/audits/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../audits/index/details';
diff --git a/addon/controllers/analytics/audits/index/edit.js b/addon/controllers/analytics/audits/index/edit.js
new file mode 100644
index 00000000..5006ad01
--- /dev/null
+++ b/addon/controllers/analytics/audits/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../audits/index/edit';
diff --git a/addon/controllers/analytics/audits/index/new.js b/addon/controllers/analytics/audits/index/new.js
new file mode 100644
index 00000000..1837b8a6
--- /dev/null
+++ b/addon/controllers/analytics/audits/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../audits/index/new';
diff --git a/addon/controllers/analytics/reports/index.js b/addon/controllers/analytics/reports/index.js
new file mode 100644
index 00000000..52f9ceb7
--- /dev/null
+++ b/addon/controllers/analytics/reports/index.js
@@ -0,0 +1,101 @@
+import Controller from '@ember/controller';
+import { inject as service } from '@ember/service';
+import { tracked } from '@glimmer/tracking';
+
+export default class AnalyticsReportsIndexController extends Controller {
+ @service reportActions;
+ @service intl;
+
+ @tracked queryParams = ['page', 'limit', 'sort', 'query', 'public_id', 'name', 'created_at'];
+ @tracked page = 1;
+ @tracked limit;
+ @tracked sort = '-created_at';
+ @tracked public_id;
+ @tracked name;
+ @tracked created_at;
+ @tracked table;
+
+ get actionButtons() {
+ return [
+ {
+ icon: 'refresh',
+ onClick: this.reportActions.refresh,
+ helpText: this.intl.t('common.refresh'),
+ },
+ {
+ text: this.intl.t('common.new'),
+ type: 'primary',
+ icon: 'plus',
+ onClick: this.reportActions.transition.create,
+ },
+ ];
+ }
+
+ get bulkActions() {
+ return [
+ {
+ label: 'Delete selected...',
+ class: 'text-red-500',
+ fn: this.reportActions.bulkDelete,
+ },
+ ];
+ }
+
+ get columns() {
+ return [
+ {
+ sticky: true,
+ label: 'Title',
+ valuePath: 'title',
+ cellComponent: 'table/cell/anchor',
+ action: this.reportActions.transition.view,
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'ID',
+ valuePath: 'public_id',
+ cellComponent: 'click-to-copy',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: '',
+ cellComponent: 'table/cell/dropdown',
+ ddButtonText: false,
+ ddButtonIcon: 'ellipsis-h',
+ ddButtonIconPrefix: 'fas',
+ ddMenuLabel: this.intl.t('common.resource-actions', { resource: this.intl.t('resource.report') }),
+ cellClassNames: 'overflow-visible',
+ wrapperClass: 'flex items-center justify-end mx-2',
+ sticky: 'right',
+ width: 60,
+ actions: [
+ {
+ label: 'View report...',
+ fn: this.reportActions.transition.view,
+ },
+ {
+ label: 'Edit report...',
+ fn: this.reportActions.transition.edit,
+ },
+ {
+ separator: true,
+ },
+ {
+ label: 'Delete report...',
+ fn: this.reportActions.delete,
+ },
+ ],
+ sortable: false,
+ filterable: false,
+ resizable: false,
+ searchable: false,
+ },
+ ];
+ }
+}
diff --git a/addon/controllers/analytics/reports/index/details.js b/addon/controllers/analytics/reports/index/details.js
new file mode 100644
index 00000000..5b162290
--- /dev/null
+++ b/addon/controllers/analytics/reports/index/details.js
@@ -0,0 +1,26 @@
+import Controller from '@ember/controller';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+
+export default class AnalyticsReportsIndexDetailsController extends Controller {
+ @service hostRouter;
+
+ @tracked tabs = [
+ {
+ route: 'analytics.reports.index.details.index',
+ label: 'Overview',
+ },
+ {
+ route: 'analytics.reports.index.details.result',
+ label: 'Result',
+ icon: 'table',
+ },
+ ];
+
+ @tracked actionButtons = [
+ {
+ icon: 'pencil',
+ fn: () => this.hostRouter.transitionTo('console.pallet.analytics.reports.index.edit', this.model),
+ },
+ ];
+}
diff --git a/addon/controllers/analytics/reports/index/edit.js b/addon/controllers/analytics/reports/index/edit.js
new file mode 100644
index 00000000..a1eb4256
--- /dev/null
+++ b/addon/controllers/analytics/reports/index/edit.js
@@ -0,0 +1,81 @@
+import Controller from '@ember/controller';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
+
+export default class AnalyticsReportsIndexEditController extends Controller {
+ @service hostRouter;
+ @service intl;
+ @service notifications;
+ @service modalsManager;
+ @service events;
+
+ @tracked overlay;
+ @tracked actionButtons = [
+ {
+ icon: 'eye',
+ fn: this.view,
+ },
+ ];
+
+ @task *save(report) {
+ try {
+ yield report.validate();
+
+ try {
+ const result = yield report.execute();
+ report.fillResult(result);
+
+ yield report.save();
+ this.events.trackResourceUpdated(report);
+ this.overlay?.close();
+
+ yield this.hostRouter.transitionTo('console.pallet.analytics.reports.index.details', report);
+ this.notifications.success(
+ this.intl.t('common.resource-updated-success', {
+ resource: this.intl.t('resource.report'),
+ resourceName: report.title,
+ })
+ );
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ } catch (error) {
+ if (error.message) {
+ this.notifications.error(error?.validation_errors?.firstObject ?? error?.message ?? 'Error validating report configuration');
+ } else {
+ this.notifications.serverError(error);
+ }
+ }
+ }
+
+ @action cancel() {
+ if (this.model.hasDirtyAttributes) {
+ return this.#confirmContinueWithUnsavedChanges(this.model);
+ }
+
+ return this.hostRouter.transitionTo('console.pallet.analytics.reports.index');
+ }
+
+ @action view() {
+ if (this.model.hasDirtyAttributes) {
+ return this.#confirmContinueWithUnsavedChanges(this.model);
+ }
+
+ return this.hostRouter.transitionTo('console.pallet.analytics.reports.index.details', this.model);
+ }
+
+ #confirmContinueWithUnsavedChanges(report, options = {}) {
+ return this.modalsManager.confirm({
+ title: this.intl.t('common.continue-without-saving'),
+ body: this.intl.t('common.continue-without-saving-prompt', { resource: this.intl.t('resource.report') }),
+ acceptButtonText: this.intl.t('common.continue'),
+ confirm: async () => {
+ report.rollbackAttributes();
+ await this.hostRouter.transitionTo('console.pallet.analytics.reports.index.details', report);
+ },
+ ...options,
+ });
+ }
+}
diff --git a/addon/controllers/analytics/reports/index/new.js b/addon/controllers/analytics/reports/index/new.js
new file mode 100644
index 00000000..7d6e9590
--- /dev/null
+++ b/addon/controllers/analytics/reports/index/new.js
@@ -0,0 +1,54 @@
+import Controller from '@ember/controller';
+import { tracked } from '@glimmer/tracking';
+import { inject as service } from '@ember/service';
+import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
+
+export default class AnalyticsReportsIndexNewController extends Controller {
+ @service reportActions;
+ @service hostRouter;
+ @service intl;
+ @service notifications;
+ @service events;
+
+ @tracked overlay;
+ @tracked validationErrors = [];
+ @tracked report = this.reportActions.createNewInstance({ type: 'pallet' });
+
+ @task *save(report) {
+ try {
+ yield report.validate();
+
+ try {
+ const result = yield report.execute();
+ report.fillResult(result);
+
+ yield report.save();
+ this.events.trackResourceCreated(report);
+ this.overlay?.close();
+
+ yield this.hostRouter.refresh();
+ yield this.hostRouter.transitionTo('console.pallet.analytics.reports.index.details', report);
+ this.notifications.success(
+ this.intl.t('common.resource-created-success-name', {
+ resource: this.intl.t('resource.report'),
+ resourceName: report.title,
+ })
+ );
+ this.resetForm();
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
+ } catch (error) {
+ if (error.message) {
+ this.notifications.error(error?.validation_errors?.firstObject ?? error?.message ?? 'Error validating report configuration');
+ } else {
+ this.notifications.serverError(error);
+ }
+ }
+ }
+
+ @action resetForm() {
+ this.report = this.reportActions.createNewInstance({ type: 'pallet' });
+ }
+}
diff --git a/addon/controllers/audits/index.js b/addon/controllers/audits/index.js
index 4ca21d3b..55b30a54 100644
--- a/addon/controllers/audits/index.js
+++ b/addon/controllers/audits/index.js
@@ -1,3 +1,200 @@
import Controller from '@ember/controller';
+import { inject as service } from '@ember/service';
+import { tracked } from '@glimmer/tracking';
+import { action } from '@ember/object';
+import { isBlank } from '@ember/utils';
+import { timeout } from 'ember-concurrency';
+import { task } from 'ember-concurrency-decorators';
-export default class AuditsIndexController extends Controller {}
+/**
+ * AuditsIndexController
+ *
+ * Displays the WMS operational audit trail. This is a read-only view of
+ * intentional warehouse events (stock adjustments, cycle counts, PO receipts,
+ * SO fulfilments, stock transfers). It is NOT a generic data-change log —
+ * that is handled by Spatie Activity Log at the framework level.
+ */
+export default class AuditsIndexController extends Controller {
+ /**
+ * @service notifications
+ */
+ @service notifications;
+
+ /**
+ * @service store
+ */
+ @service store;
+
+ /**
+ * @service filters
+ */
+ @service filters;
+
+ /**
+ * @service hostRouter
+ */
+ @service hostRouter;
+
+ /**
+ * @service fetch
+ */
+ @service fetch;
+
+ /**
+ * Queryable parameters for this controller's model.
+ * @var {Array}
+ */
+ queryParams = ['page', 'limit', 'sort', 'query', 'event_type', 'auditable_type'];
+
+ /** @tracked page = 1 */
+ @tracked page = 1;
+
+ /** @tracked limit */
+ @tracked limit;
+
+ /** @tracked sort = '-created_at' */
+ @tracked sort = '-created_at';
+
+ /** @tracked query — free-text search */
+ @tracked query;
+
+ /**
+ * Filter by WMS event type (e.g. 'stock_adjustment', 'cycle_count').
+ * @var {String}
+ */
+ @tracked event_type;
+
+ /**
+ * Filter by the subject model class (e.g. 'Inventory', 'PurchaseOrder').
+ * @var {String}
+ */
+ @tracked auditable_type;
+
+ /**
+ * Reference to the rendered table component.
+ * @var {Object}
+ */
+ @tracked table;
+
+ /**
+ * Available event type filter options, matching AuditEventType constants.
+ * @var {Array}
+ */
+ eventTypeOptions = [
+ { label: 'All Events', value: null },
+ { label: 'Stock Adjustment', value: 'stock_adjustment' },
+ { label: 'Cycle Count', value: 'cycle_count' },
+ { label: 'PO Received', value: 'po_received' },
+ { label: 'SO Fulfilled', value: 'so_fulfilled' },
+ { label: 'Stock Transfer', value: 'stock_transfer' },
+ { label: 'Inventory Received', value: 'inventory_created' },
+ { label: 'Batch Created', value: 'batch_created' },
+ ];
+
+ /**
+ * Column definitions for the operational audit trail table.
+ * Columns reflect the new schema: event_type, subject, action, reason, performed_by, date.
+ *
+ * @var {Array}
+ */
+ @tracked columns = [
+ {
+ label: 'Event',
+ valuePath: 'eventTypeLabel',
+ cellComponent: 'table/cell/status',
+ width: '160px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/select',
+ filterOptions: [
+ { label: 'Stock Adjustment', value: 'stock_adjustment' },
+ { label: 'Cycle Count', value: 'cycle_count' },
+ { label: 'PO Received', value: 'po_received' },
+ { label: 'SO Fulfilled', value: 'so_fulfilled' },
+ { label: 'Stock Transfer', value: 'stock_transfer' },
+ { label: 'Inventory Received', value: 'inventory_created' },
+ ],
+ filterParam: 'event_type',
+ },
+ {
+ label: 'Action',
+ valuePath: 'action',
+ width: '140px',
+ resizable: true,
+ sortable: false,
+ },
+ {
+ label: 'Subject',
+ valuePath: 'subjectLabel',
+ width: '140px',
+ resizable: true,
+ sortable: false,
+ },
+ {
+ label: 'Subject ID',
+ valuePath: 'auditable_uuid',
+ width: '200px',
+ resizable: true,
+ sortable: false,
+ },
+ {
+ label: 'Reason',
+ valuePath: 'reason',
+ width: '200px',
+ resizable: true,
+ sortable: false,
+ },
+ {
+ label: 'Performed By',
+ valuePath: 'performedBy.name',
+ width: '160px',
+ resizable: true,
+ sortable: false,
+ },
+ {
+ label: 'Date',
+ valuePath: 'createdAt',
+ width: '160px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/date',
+ },
+ ];
+
+ /**
+ * Search task — debounced free-text search.
+ * @void
+ */
+ @task({ restartable: true }) *search({ target: { value } }) {
+ if (isBlank(value)) {
+ this.query = null;
+ return;
+ }
+ yield timeout(250);
+ if (this.page > 1) {
+ this.page = 1;
+ }
+ this.query = value;
+ }
+
+ /**
+ * Filter by event type from the dropdown.
+ * @param {String|null} value
+ */
+ @action filterByEventType(value) {
+ this.event_type = value || null;
+ this.page = 1;
+ }
+
+ /**
+ * Clear all active filters.
+ */
+ @action clearFilters() {
+ this.event_type = null;
+ this.auditable_type = null;
+ this.query = null;
+ this.page = 1;
+ }
+}
diff --git a/addon/controllers/catalog/products/index.js b/addon/controllers/catalog/products/index.js
new file mode 100644
index 00000000..42c5f5ac
--- /dev/null
+++ b/addon/controllers/catalog/products/index.js
@@ -0,0 +1 @@
+export { default } from '../../products/index';
diff --git a/addon/controllers/catalog/products/index/details.js b/addon/controllers/catalog/products/index/details.js
new file mode 100644
index 00000000..3dc28e03
--- /dev/null
+++ b/addon/controllers/catalog/products/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../products/index/details';
diff --git a/addon/controllers/catalog/products/index/edit.js b/addon/controllers/catalog/products/index/edit.js
new file mode 100644
index 00000000..d55397cf
--- /dev/null
+++ b/addon/controllers/catalog/products/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../products/index/edit';
diff --git a/addon/controllers/catalog/products/index/new.js b/addon/controllers/catalog/products/index/new.js
new file mode 100644
index 00000000..a47a39d1
--- /dev/null
+++ b/addon/controllers/catalog/products/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../products/index/new';
diff --git a/addon/controllers/catalog/suppliers/index.js b/addon/controllers/catalog/suppliers/index.js
new file mode 100644
index 00000000..d667da7d
--- /dev/null
+++ b/addon/controllers/catalog/suppliers/index.js
@@ -0,0 +1 @@
+export { default } from '../../suppliers/index';
diff --git a/addon/controllers/catalog/suppliers/index/details.js b/addon/controllers/catalog/suppliers/index/details.js
new file mode 100644
index 00000000..98d1b5e5
--- /dev/null
+++ b/addon/controllers/catalog/suppliers/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../suppliers/index/details';
diff --git a/addon/controllers/catalog/suppliers/index/edit.js b/addon/controllers/catalog/suppliers/index/edit.js
new file mode 100644
index 00000000..beda627d
--- /dev/null
+++ b/addon/controllers/catalog/suppliers/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../suppliers/index/edit';
diff --git a/addon/controllers/catalog/suppliers/index/new.js b/addon/controllers/catalog/suppliers/index/new.js
new file mode 100644
index 00000000..40190ff9
--- /dev/null
+++ b/addon/controllers/catalog/suppliers/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../suppliers/index/new';
diff --git a/addon/controllers/facilities/warehouses/index.js b/addon/controllers/facilities/warehouses/index.js
new file mode 100644
index 00000000..17044cc7
--- /dev/null
+++ b/addon/controllers/facilities/warehouses/index.js
@@ -0,0 +1 @@
+export { default } from '../../warehouses/index';
diff --git a/addon/controllers/facilities/warehouses/index/details.js b/addon/controllers/facilities/warehouses/index/details.js
new file mode 100644
index 00000000..360dc75a
--- /dev/null
+++ b/addon/controllers/facilities/warehouses/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../warehouses/index/details';
diff --git a/addon/controllers/facilities/warehouses/index/edit.js b/addon/controllers/facilities/warehouses/index/edit.js
new file mode 100644
index 00000000..15f198ed
--- /dev/null
+++ b/addon/controllers/facilities/warehouses/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../warehouses/index/edit';
diff --git a/addon/controllers/facilities/warehouses/index/new.js b/addon/controllers/facilities/warehouses/index/new.js
new file mode 100644
index 00000000..8ba85beb
--- /dev/null
+++ b/addon/controllers/facilities/warehouses/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../warehouses/index/new';
diff --git a/addon/controllers/inventory/expired-stock.js b/addon/controllers/inventory/expired-stock.js
index 4fac5c2f..02b54318 100644
--- a/addon/controllers/inventory/expired-stock.js
+++ b/addon/controllers/inventory/expired-stock.js
@@ -262,7 +262,7 @@ export default class InventoryExpiredStockController extends Controller {
* @void
*/
@action viewInventory(inventory) {
- return this.transitionToRoute('inventory.index.details', inventory);
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.details', inventory);
}
/**
@@ -272,11 +272,11 @@ export default class InventoryExpiredStockController extends Controller {
* @void
*/
@action createInventory() {
- return this.transitionToRoute('inventory.index.new');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.new');
}
@action makeStockAdjustment() {
- return this.transitionToRoute('inventory.index.new-stock-adjustment');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.new-stock-adjustment');
}
/**
@@ -287,6 +287,6 @@ export default class InventoryExpiredStockController extends Controller {
* @void
*/
@action async editInventory(inventory) {
- return this.transitionToRoute('inventory.index.edit', inventory);
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.edit', inventory);
}
}
diff --git a/addon/controllers/inventory/index.js b/addon/controllers/inventory/index.js
index 306c7698..1eb4582c 100644
--- a/addon/controllers/inventory/index.js
+++ b/addon/controllers/inventory/index.js
@@ -270,7 +270,7 @@ export default class InventoryIndexController extends Controller {
* @void
*/
@action viewInventory(inventory) {
- return this.transitionToRoute('inventory.index.details', inventory.public_id);
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.details', inventory.public_id);
}
/**
@@ -280,11 +280,11 @@ export default class InventoryIndexController extends Controller {
* @void
*/
@action createInventory() {
- return this.transitionToRoute('inventory.index.new');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.new');
}
@action makeStockAdjustment() {
- return this.transitionToRoute('inventory.index.new-stock-adjustment');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.new-stock-adjustment');
}
/**
@@ -295,6 +295,6 @@ export default class InventoryIndexController extends Controller {
* @void
*/
@action async editInventory(inventory) {
- return this.transitionToRoute('inventory.index.edit', inventory);
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.edit', inventory);
}
}
diff --git a/addon/controllers/inventory/index/details.js b/addon/controllers/inventory/index/details.js
index c2365709..51f75a15 100644
--- a/addon/controllers/inventory/index/details.js
+++ b/addon/controllers/inventory/index/details.js
@@ -30,7 +30,7 @@ export default class InventoryIndexDetailsController extends Controller {
* @returns {Transition} The transition object representing the route change.
*/
@action transitionBack() {
- return this.transitionToRoute('inventory.index');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index');
}
/**
@@ -42,7 +42,7 @@ export default class InventoryIndexDetailsController extends Controller {
* @returns {Transition} The transition object representing the route change.
*/
@action onEdit(inventory) {
- return this.transitionToRoute('inventory.index.edit', inventory);
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.edit', inventory);
}
/**
diff --git a/addon/controllers/inventory/index/edit.js b/addon/controllers/inventory/index/edit.js
index 44ccc2ae..8d6f7442 100644
--- a/addon/controllers/inventory/index/edit.js
+++ b/addon/controllers/inventory/index/edit.js
@@ -36,12 +36,12 @@ export default class InventoryIndexEditController extends Controller {
return this.confirmContinueWithUnsavedChanges(inventory, {
confirm: () => {
inventory.rollbackAttributes();
- return this.transitionToRoute('inventory.index');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index');
},
});
}
- return this.transitionToRoute('inventory.index');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index');
}
/**
@@ -67,7 +67,7 @@ export default class InventoryIndexEditController extends Controller {
return this.confirmContinueWithUnsavedChanges(inventory);
}
- return this.transitionToRoute('inventory.index.details', inventory);
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.details', inventory);
}
/**
@@ -83,7 +83,7 @@ export default class InventoryIndexEditController extends Controller {
}
this.hostRouter.refresh();
- return this.transitionToRoute('inventory.index.details', inventory);
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.details', inventory);
}
/**
@@ -102,7 +102,7 @@ export default class InventoryIndexEditController extends Controller {
acceptButtonText: 'Continue without saving',
confirm: () => {
inventory.rollbackAttributes();
- return this.transitionToRoute('inventory.index.details', inventory);
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.details', inventory);
},
...options,
});
diff --git a/addon/controllers/inventory/index/new-stock-adjustment.js b/addon/controllers/inventory/index/new-stock-adjustment.js
index 00c01128..eae6ca95 100644
--- a/addon/controllers/inventory/index/new-stock-adjustment.js
+++ b/addon/controllers/inventory/index/new-stock-adjustment.js
@@ -56,7 +56,7 @@ export default class InventoryIndexNewStockAdjustmentController extends Controll
* @memberof InventoryIndexNewStockAdjustmentController
*/
@action transitionBack() {
- return this.transitionToRoute('inventory.index');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index');
}
/**
@@ -72,7 +72,7 @@ export default class InventoryIndexNewStockAdjustmentController extends Controll
}
this.hostRouter.refresh();
- return this.transitionToRoute('inventory.index');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index');
}
/**
diff --git a/addon/controllers/inventory/index/new.js b/addon/controllers/inventory/index/new.js
index 5a4c1a80..d4f9195a 100644
--- a/addon/controllers/inventory/index/new.js
+++ b/addon/controllers/inventory/index/new.js
@@ -60,7 +60,7 @@ export default class InventoryIndexNewController extends Controller {
* @memberof InventoryIndexNewController
*/
@action transitionBack() {
- return this.transitionToRoute('inventory.index');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index');
}
/**
@@ -76,7 +76,7 @@ export default class InventoryIndexNewController extends Controller {
}
this.hostRouter.refresh();
- return this.transitionToRoute('inventory.index.details', inventory).then(() => {
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.details', inventory).then(() => {
this.resetForm();
});
}
diff --git a/addon/controllers/inventory/low-stock.js b/addon/controllers/inventory/low-stock.js
index bd5a2d0a..cfce844d 100644
--- a/addon/controllers/inventory/low-stock.js
+++ b/addon/controllers/inventory/low-stock.js
@@ -261,7 +261,7 @@ export default class InventoryLowStockController extends Controller {
* @void
*/
@action viewInventory(inventory) {
- return this.transitionToRoute('inventory.index.details', inventory);
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.details', inventory);
}
/**
@@ -271,11 +271,11 @@ export default class InventoryLowStockController extends Controller {
* @void
*/
@action createInventory() {
- return this.transitionToRoute('inventory.index.new');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.new');
}
@action makeStockAdjustment() {
- return this.transitionToRoute('inventory.index.new-stock-adjustment');
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.new-stock-adjustment');
}
/**
@@ -286,6 +286,6 @@ export default class InventoryLowStockController extends Controller {
* @void
*/
@action async editInventory(inventory) {
- return this.transitionToRoute('inventory.index.edit', inventory);
+ return this.hostRouter.transitionTo('console.pallet.inventory.index.edit', inventory);
}
}
diff --git a/addon/controllers/orders/purchase-orders/index.js b/addon/controllers/orders/purchase-orders/index.js
new file mode 100644
index 00000000..0ef09286
--- /dev/null
+++ b/addon/controllers/orders/purchase-orders/index.js
@@ -0,0 +1 @@
+export { default } from '../../purchase-orders/index';
diff --git a/addon/controllers/orders/purchase-orders/index/details.js b/addon/controllers/orders/purchase-orders/index/details.js
new file mode 100644
index 00000000..82326fce
--- /dev/null
+++ b/addon/controllers/orders/purchase-orders/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../purchase-orders/index/details';
diff --git a/addon/controllers/orders/purchase-orders/index/edit.js b/addon/controllers/orders/purchase-orders/index/edit.js
new file mode 100644
index 00000000..56239eef
--- /dev/null
+++ b/addon/controllers/orders/purchase-orders/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../purchase-orders/index/edit';
diff --git a/addon/controllers/orders/purchase-orders/index/new.js b/addon/controllers/orders/purchase-orders/index/new.js
new file mode 100644
index 00000000..d32a2a7c
--- /dev/null
+++ b/addon/controllers/orders/purchase-orders/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../purchase-orders/index/new';
diff --git a/addon/controllers/orders/sales-orders/index.js b/addon/controllers/orders/sales-orders/index.js
new file mode 100644
index 00000000..afa349db
--- /dev/null
+++ b/addon/controllers/orders/sales-orders/index.js
@@ -0,0 +1 @@
+export { default } from '../../sales-orders/index';
diff --git a/addon/controllers/orders/sales-orders/index/details.js b/addon/controllers/orders/sales-orders/index/details.js
new file mode 100644
index 00000000..ed64c1ba
--- /dev/null
+++ b/addon/controllers/orders/sales-orders/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../sales-orders/index/details';
diff --git a/addon/controllers/orders/sales-orders/index/edit.js b/addon/controllers/orders/sales-orders/index/edit.js
new file mode 100644
index 00000000..dec8e1f5
--- /dev/null
+++ b/addon/controllers/orders/sales-orders/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../sales-orders/index/edit';
diff --git a/addon/controllers/orders/sales-orders/index/new.js b/addon/controllers/orders/sales-orders/index/new.js
new file mode 100644
index 00000000..4b2728c5
--- /dev/null
+++ b/addon/controllers/orders/sales-orders/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../sales-orders/index/new';
diff --git a/addon/controllers/products/index.js b/addon/controllers/products/index.js
index f39c1a9b..e3c0e703 100644
--- a/addon/controllers/products/index.js
+++ b/addon/controllers/products/index.js
@@ -1,66 +1,13 @@
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
import { tracked } from '@glimmer/tracking';
-import { action } from '@ember/object';
import { isBlank } from '@ember/utils';
import { task, timeout } from 'ember-concurrency';
export default class ProductsIndexController extends Controller {
- /**
- * Inject the `contextPanel` service
- *
- * @var {Service}
- */
- @service contextPanel;
-
- /**
- * Inject the `notifications` service
- *
- * @var {Service}
- */
- @service notifications;
-
- /**
- * Inject the `modals-manager` service
- *
- * @var {Service}
- */
- @service modalsManager;
-
- /**
- * Inject the `store` service
- *
- * @var {Service}
- */
- @service store;
-
- /**
- * Inject the `fetch` service
- *
- * @var {Service}
- */
- @service fetch;
-
- /**
- * Inject the `filters` service
- *
- * @var {Service}
- */
- @service filters;
-
- /**
- * Inject the `hostRouter` service
- *
- * @var {Service}
- */
- @service hostRouter;
-
- /**
- * Inject the `crud` service
- *
- * @var {Service}
- */
- @service crud;
+ @service productActions;
+ @service tableContext;
+ @service intl;
/**
* Queryable parameters for this controller's model
@@ -190,110 +137,152 @@ export default class ProductsIndexController extends Controller {
*
* @var {Array}
*/
- @tracked columns = [
- {
- label: 'Product',
- valuePath: 'name',
- width: '170px',
- cellComponent: 'cell/product-info',
- action: this.viewProduct,
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'ID',
- valuePath: 'public_id',
- width: '120px',
- cellComponent: 'click-to-copy',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'SKU',
- valuePath: 'sku',
- cellComponent: 'click-to-copy',
- width: '120px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'Internal ID',
- valuePath: 'internal_id',
- cellComponent: 'click-to-copy',
- width: '120px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'Value',
- valuePath: 'price',
- cellComponent: 'click-to-copy',
- width: '120px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: ' Date Added',
- valuePath: 'createdAt',
- sortParam: 'created_at',
- width: '10%',
- resizable: true,
- sortable: true,
- hidden: true,
- filterable: true,
- filterComponent: 'filter/date',
- },
- {
- label: 'Last Updated',
- valuePath: 'updatedAt',
- sortParam: 'updated_at',
- width: '10%',
- resizable: true,
- sortable: true,
- hidden: true,
- filterable: true,
- filterComponent: 'filter/date',
- },
- {
- label: '',
- cellComponent: 'table/cell/dropdown',
- ddButtonText: false,
- ddButtonIcon: 'ellipsis-h',
- ddButtonIconPrefix: 'fas',
- ddMenuLabel: 'Product Actions',
- cellClassNames: 'overflow-visible',
- wrapperClass: 'flex items-center justify-end mx-2',
- width: '10%',
- actions: [
- {
- label: 'View Product',
- fn: this.viewProduct,
- },
- {
- label: 'Edit Product',
- fn: this.editProduct,
- },
- {
- label: 'Delete Product',
- fn: this.deleteProduct,
- },
- ],
- sortable: false,
- filterable: false,
- resizable: false,
- searchable: false,
- },
- ];
+ @tracked table;
+
+ get actionButtons() {
+ return [
+ {
+ icon: 'refresh',
+ onClick: this.productActions.refresh,
+ helpText: this.intl.t('common.refresh'),
+ },
+ {
+ text: this.intl.t('common.new'),
+ type: 'primary',
+ icon: 'plus',
+ onClick: this.productActions.transition.create,
+ },
+ {
+ text: this.intl.t('common.export'),
+ icon: 'long-arrow-up',
+ iconClass: 'rotate-icon-45',
+ wrapperClass: 'hidden md:flex',
+ onClick: this.productActions.export,
+ },
+ ];
+ }
+
+ get bulkActions() {
+ const selected = this.tableContext.getSelectedRows();
+
+ return [
+ {
+ label: this.intl.t('common.delete-selected-count', { count: selected.length }),
+ class: 'text-red-500',
+ fn: this.productActions.bulkDelete,
+ },
+ ];
+ }
+
+ get columns() {
+ return [
+ {
+ label: 'Product',
+ valuePath: 'name',
+ width: '170px',
+ cellComponent: 'cell/product-info',
+ action: this.productActions.transition.view,
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'ID',
+ valuePath: 'public_id',
+ width: '120px',
+ cellComponent: 'click-to-copy',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'SKU',
+ valuePath: 'sku',
+ cellComponent: 'click-to-copy',
+ width: '120px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Internal ID',
+ valuePath: 'internal_id',
+ cellComponent: 'click-to-copy',
+ width: '120px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Value',
+ valuePath: 'unit_price',
+ cellComponent: 'click-to-copy',
+ width: '120px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Date Added',
+ valuePath: 'createdAt',
+ sortParam: 'created_at',
+ width: '10%',
+ resizable: true,
+ sortable: true,
+ hidden: true,
+ filterable: true,
+ filterComponent: 'filter/date',
+ },
+ {
+ label: 'Last Updated',
+ valuePath: 'updatedAt',
+ sortParam: 'updated_at',
+ width: '10%',
+ resizable: true,
+ sortable: true,
+ hidden: true,
+ filterable: true,
+ filterComponent: 'filter/date',
+ },
+ {
+ label: '',
+ cellComponent: 'table/cell/dropdown',
+ ddButtonText: false,
+ ddButtonIcon: 'ellipsis-h',
+ ddButtonIconPrefix: 'fas',
+ ddMenuLabel: this.intl.t('common.resource-actions', { resource: 'Product' }),
+ cellClassNames: 'overflow-visible',
+ wrapperClass: 'flex items-center justify-end mx-2',
+ width: '10%',
+ actions: [
+ {
+ label: this.intl.t('common.view-resource', { resource: 'Product' }),
+ fn: this.productActions.transition.view,
+ },
+ {
+ label: this.intl.t('common.edit-resource', { resource: 'Product' }),
+ fn: this.productActions.transition.edit,
+ },
+ {
+ separator: true,
+ },
+ {
+ label: this.intl.t('common.delete-resource', { resource: 'Product' }),
+ fn: this.productActions.delete,
+ },
+ ],
+ sortable: false,
+ filterable: false,
+ resizable: false,
+ searchable: false,
+ },
+ ];
+ }
/**
* The search task.
@@ -318,77 +307,4 @@ export default class ProductsIndexController extends Controller {
// update the query param
this.query = value;
}
-
- /**
- * Toggles dialog to export `product`
- *
- * @void
- */
- @action exportProcuts() {
- this.crud.export('product');
- }
-
- /**
- * View a `product` details in overlay
- *
- * @param {ProductModel} product
- * @param {Object} options
- * @void
- */
- @action viewProduct(product) {
- return this.transitionToRoute('products.index.details', product);
- }
-
- /**
- * Create a new `product` in modal
- *
- * @void
- */
- @action createProduct() {
- return this.transitionToRoute('products.index.new');
- }
- /**
- * Edit a `product` details
- *
- * @param {ProductModel} product
- * @param {Object} options
- * @void
- */
- @action async editProduct(product) {
- return this.transitionToRoute('products.index.edit', product);
- }
-
- /**
- * Delete a `product` via confirm prompt
- *
- * @param {ProductModel} product
- * @param {Object} options
- * @void
- */
- @action deleteProduct(product, options = {}) {
- this.crud.delete(product, {
- onConfirm: () => {
- return this.hostRouter.refresh();
- },
- ...options,
- });
- }
-
- /**
- * Bulk deletes selected `product` via confirm prompt
- *
- * @param {Array} selected an array of selected models
- * @void
- */
- @action bulkDeleteProducts() {
- const selected = this.table.selectedRows;
-
- this.crud.bulkDelete(selected, {
- modelNamePath: `name`,
- acceptButtonText: 'Delete Products',
- onSuccess: () => {
- return this.hostRouter.refresh();
- },
- });
- }
}
diff --git a/addon/controllers/products/index/details.js b/addon/controllers/products/index/details.js
index fb5330e9..3fb9979d 100644
--- a/addon/controllers/products/index/details.js
+++ b/addon/controllers/products/index/details.js
@@ -1,55 +1,23 @@
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
-import { action } from '@ember/object';
+import { inject as service } from '@ember/service';
export default class ProductsIndexDetailsController extends Controller {
- /**
- * The currently active view tab ('details' by default).
- *
- * @type {String}
- * @tracked
- */
- @tracked view = 'details';
+ @service hostRouter;
- /**
- * An array of query parameters to be serialized in the URL.
- *
- * @type {String[]}
- * @tracked
- */
- @tracked queryParams = ['view'];
+ @tracked tabs = [
+ {
+ route: 'catalog.products.index.details.index',
+ label: 'Overview',
+ },
+ ];
- /**
- * Transitions back to the "products.index" route.
- *
- * @method
- * @action
- * @returns {Transition} The transition object representing the route change.
- */
- @action transitionBack() {
- return this.transitionToRoute('products.index');
- }
-
- /**
- * Transitions to the edit view for a specific product.
- *
- * @method
- * @param {productModel} product - The product to be edited.
- * @action
- * @returns {Transition} The transition object representing the route change.
- */
- @action onEdit(product) {
- return this.transitionToRoute('products.index.edit', product);
- }
-
- /**
- * Updates the active view tab.
- *
- * @method
- * @param {String} tab - The name of the tab to activate.
- * @action
- */
- @action onTabChanged(tab) {
- this.view = tab;
+ get actionButtons() {
+ return [
+ {
+ icon: 'pencil',
+ fn: () => this.hostRouter.transitionTo('console.pallet.catalog.products.index.edit', this.model),
+ },
+ ];
}
}
diff --git a/addon/controllers/products/index/edit.js b/addon/controllers/products/index/edit.js
index 21bb7376..9709e7ed 100644
--- a/addon/controllers/products/index/edit.js
+++ b/addon/controllers/products/index/edit.js
@@ -2,110 +2,69 @@ import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
export default class ProductsIndexEditController extends Controller {
- /**
- * Inject the `hostRouter` service
- *
- * @memberof ProductsIndexEditController
- */
@service hostRouter;
-
- /**
- * Inject the `hostRouter` service
- *
- * @memberof ProductsIndexEditController
- */
+ @service intl;
+ @service notifications;
@service modalsManager;
+ @service events;
- /**
- * The overlay component context.
- *
- * @memberof ProductsIndexEditController
- */
@tracked overlay;
- /**
- * When exiting the overlay.
- *
- * @return {Transition}
- * @memberof productsIndexEditController
- */
- @action transitionBack(product) {
- // check if product record has been edited and prompt for confirmation
- if (product.hasDirtyAttributes) {
- return this.confirmContinueWithUnsavedChanges(product, {
- confirm: () => {
- product.rollbackAttributes();
- return this.transitionToRoute('products.index');
- },
- });
- }
-
- return this.transitionToRoute('products.index');
+ get actionButtons() {
+ return [
+ {
+ icon: 'eye',
+ fn: this.view,
+ },
+ ];
}
- /**
- * Set the overlay component context object.
- *
- * @param {OverlayContext} overlay
- * @memberof ProductsIndexEditController
- */
- @action setOverlayContext(overlay) {
- this.overlay = overlay;
+ @task *save(product) {
+ try {
+ yield product.save();
+ this.events.trackResourceUpdated(product);
+ this.overlay?.close();
+
+ yield this.hostRouter.transitionTo('console.pallet.catalog.products.index.details', product);
+ this.notifications.success(
+ this.intl.t('common.resource-updated-success', {
+ resource: 'Product',
+ resourceName: product.name,
+ })
+ );
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
}
- /**
- * When product details button is clicked in overlay.
- *
- * @param {ProductModel} product
- * @return {Promise}
- * @memberof ProductsIndexEditController
- */
- @action onViewDetails(product) {
- // check if product record has been edited and prompt for confirmation
- if (product.hasDirtyAttributes) {
- return this.confirmContinueWithUnsavedChanges(product);
+ @action cancel() {
+ if (this.model.hasDirtyAttributes) {
+ return this.confirmContinueWithUnsavedChanges(this.model, 'console.pallet.catalog.products.index');
}
- return this.transitionToRoute('products.index.details', product);
+ return this.hostRouter.transitionTo('console.pallet.catalog.products.index');
}
- /**
- * Trigger a route refresh and focus the new product created.
- *
- * @param {ProductModel} product
- * @return {Promise}
- * @memberof ProductsIndexEditController
- */
- @action onAfterSave(product) {
- if (this.overlay) {
- this.overlay.close();
+ @action view() {
+ if (this.model.hasDirtyAttributes) {
+ return this.confirmContinueWithUnsavedChanges(this.model, 'console.pallet.catalog.products.index.details');
}
- this.hostRouter.refresh();
- return this.transitionToRoute('products.index.details', product);
+ return this.hostRouter.transitionTo('console.pallet.catalog.products.index.details', this.model);
}
- /**
- * Prompts the user to confirm if they wish to continue with unsaved changes.
- *
- * @method
- * @param {ProductModel} product - The product object with unsaved changes.
- * @param {Object} [options={}] - Additional options for configuring the modal.
- * @returns {Promise} A promise that resolves when the user confirms, and transitions to a new route.
- * @memberof ProductsIndexEditController
- */
- confirmContinueWithUnsavedChanges(product, options = {}) {
+ confirmContinueWithUnsavedChanges(product, routeName) {
return this.modalsManager.confirm({
- title: 'Continue Without Saving?',
- body: 'Unsaved changes to this product will be lost. Click continue to proceed.',
- acceptButtonText: 'Continue without saving',
- confirm: () => {
+ title: this.intl.t('common.continue-without-saving'),
+ body: this.intl.t('common.continue-without-saving-prompt', { resource: 'Product' }),
+ acceptButtonText: this.intl.t('common.continue'),
+ confirm: async () => {
product.rollbackAttributes();
- return this.transitionToRoute('products.index.details', product);
+ await this.hostRouter.transitionTo(routeName, product);
},
- ...options,
});
}
}
diff --git a/addon/controllers/products/index/new.js b/addon/controllers/products/index/new.js
index e131a91c..bb3e6607 100644
--- a/addon/controllers/products/index/new.js
+++ b/addon/controllers/products/index/new.js
@@ -2,87 +2,40 @@ import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
export default class ProductsIndexNewController extends Controller {
- /**
- * Inject the `store` service
- *
- * @memberof ProductsIndexNewController
- */
- @service store;
-
- /**
- * Inject the `hostRouter` service
- *
- * @memberof ProductsIndexNewController
- */
+ @service productActions;
@service hostRouter;
+ @service intl;
+ @service notifications;
+ @service events;
- /**
- * Inject the `hostRouter` service
- *
- * @memberof ProductsIndexNewController
- */
- @service modalsManager;
-
- /**
- * The overlay component context.
- *
- * @memberof ProductsIndexNewController
- */
@tracked overlay;
-
- /**
- * The product being created.
- *
- * @var {EntityModel}
- */
- @tracked product = this.store.createRecord('pallet-product', { type: 'pallet-product' });
-
- /**
- * Set the overlay component context object.
- *
- * @param {OverlayContext} overlay
- * @memberof ProductsIndexNewController
- */
- @action setOverlayContext(overlay) {
- this.overlay = overlay;
- }
-
- /**
- * When exiting the overlay.
- *
- * @return {Transition}
- * @memberof ProductsIndexNewController
- */
- @action transitionBack() {
- return this.transitionToRoute('products.index');
- }
-
- /**
- * Trigger a route refresh and focus the new product created.
- *
- * @param {productModel} product
- * @return {Promise}
- * @memberof ProductsIndexNewController
- */
- @action onAfterSave(product) {
- if (this.overlay) {
- this.overlay.close();
- }
-
- this.hostRouter.refresh();
- return this.transitionToRoute('products.index.details', product).then(() => {
+ @tracked product = this.productActions.createNewInstance();
+
+ @task *save(product) {
+ try {
+ yield product.save();
+ this.events.trackResourceCreated(product);
+ this.overlay?.close();
+
+ yield this.hostRouter.refresh();
+ yield this.hostRouter.transitionTo('console.pallet.catalog.products.index.details', product);
+ this.notifications.success(
+ this.intl.t('common.resource-created-success-name', {
+ resource: 'Product',
+ resourceName: product.name,
+ })
+ );
this.resetForm();
- });
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
}
- /**
- * Resets the form with a new product record
- *
- * @memberof ProductsIndexNewController
- */
+ @action
resetForm() {
- this.product = this.store.createRecord('pallet-product', { type: 'pallet-product', status: 'active' });
+ this.product = this.productActions.createNewInstance();
}
}
diff --git a/addon/controllers/purchase-orders/index.js b/addon/controllers/purchase-orders/index.js
index 6a8184bc..2564aa99 100644
--- a/addon/controllers/purchase-orders/index.js
+++ b/addon/controllers/purchase-orders/index.js
@@ -106,15 +106,34 @@ export default class PurchaseOrdersIndexController extends Controller {
@tracked status;
/**
- * All columns applicable for orders
+ * The table instance
+ *
+ * @var {Object}
+ */
+ @tracked table;
+
+ /**
+ * Status options for the filter
+ *
+ * @var {Array}
+ */
+ statusOptions = [
+ { value: 'pending', label: 'Pending' },
+ { value: 'partial', label: 'Partial' },
+ { value: 'received', label: 'Received' },
+ { value: 'cancelled', label: 'Cancelled' },
+ ];
+
+ /**
+ * All columns applicable for purchase orders
*
* @var {Array}
*/
@tracked columns = [
{
- label: 'ID',
+ label: 'PO Number',
valuePath: 'public_id',
- width: '130px',
+ width: '140px',
cellComponent: 'table/cell/anchor',
action: this.viewPurchaseOrder,
resizable: true,
@@ -123,21 +142,55 @@ export default class PurchaseOrdersIndexController extends Controller {
hidden: false,
filterComponent: 'filter/string',
},
+ {
+ label: 'Supplier',
+ valuePath: 'supplier.name',
+ width: '160px',
+ resizable: true,
+ sortable: false,
+ filterable: false,
+ },
+ {
+ label: 'Reference',
+ valuePath: 'reference_code',
+ width: '130px',
+ resizable: true,
+ sortable: false,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Items',
+ valuePath: 'item_count',
+ width: '70px',
+ resizable: false,
+ sortable: false,
+ filterable: false,
+ },
{
label: 'Status',
valuePath: 'status',
cellComponent: 'table/cell/status',
- width: '100px',
+ width: '110px',
resizable: true,
sortable: true,
filterable: true,
filterComponent: 'filter/multi-option',
- filterOptions: this.statusOption,
+ filterOptions: this.statusOptions,
+ },
+ {
+ label: 'Expected Delivery',
+ valuePath: 'expected_delivery_at',
+ width: '140px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/date',
},
{
label: 'Created At',
valuePath: 'createdAt',
- sortParam: 'createdAt',
+ sortParam: 'created_at',
width: '120px',
resizable: true,
sortable: true,
@@ -161,7 +214,7 @@ export default class PurchaseOrdersIndexController extends Controller {
ddButtonText: false,
ddButtonIcon: 'ellipsis-h',
ddButtonIconPrefix: 'fas',
- ddMenuLabel: 'Sales Order Actions',
+ ddMenuLabel: 'Purchase Order Actions',
cellClassNames: 'overflow-visible',
wrapperClass: 'flex items-center justify-end mx-2',
width: '10%',
@@ -171,14 +224,22 @@ export default class PurchaseOrdersIndexController extends Controller {
fn: this.viewPurchaseOrder,
},
{
- label: 'Edit Sales Order',
+ label: 'Receive Goods',
+ fn: this.receivePurchaseOrder,
+ isVisible: (purchaseOrder) => ['pending', 'partial'].includes(purchaseOrder.status),
+ },
+ {
+ separator: true,
+ },
+ {
+ label: 'Edit Purchase Order',
fn: this.editPurchaseOrder,
},
{
separator: true,
},
{
- label: 'Delete Sales Order',
+ label: 'Delete Purchase Order',
fn: this.deletePurchaseOrder,
},
],
@@ -214,46 +275,73 @@ export default class PurchaseOrdersIndexController extends Controller {
}
/**
- * Toggles dialog to export a Sales Order
+ * Export purchase orders
*
* @void
*/
- @action exportFuelReports() {
+ @action exportPurchaseOrders() {
this.crud.export('purchase-order');
}
/**
- * View the selected Sales Order
+ * View the selected Purchase Order
*
- * @param {PurchaseOrderModel} fuelReport
- * @param {Object} options
+ * @param {PurchaseOrderModel} purchaseOrder
* @void
*/
@action viewPurchaseOrder(purchaseOrder) {
- this.transitionToRoute('purchase-orders.index.details', purchaseOrder);
+ this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index.details', purchaseOrder);
}
/**
- * Create a new Sales Order
+ * Create a new Purchase Order
*
* @void
*/
@action createPurchaseOrder() {
- this.transitionToRoute('purchase-orders.index.new');
+ this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index.new');
}
/**
- * Edit a Sales Order
+ * Edit a Purchase Order
*
* @param {PurchaseOrderModel} purchaseOrder
* @void
*/
@action editPurchaseOrder(purchaseOrder) {
- this.transitionToRoute('purchase-orders.index.edit', purchaseOrder);
+ this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index.edit', purchaseOrder);
+ }
+
+ /**
+ * Open the Receive Goods panel for a Purchase Order.
+ * Loads the PO with its items before opening the panel.
+ *
+ * @param {PurchaseOrderModel} purchaseOrder
+ * @void
+ */
+ @action async receivePurchaseOrder(purchaseOrder) {
+ this.loader.showOnInitialTransition = false;
+
+ // Ensure items are loaded
+ if (!purchaseOrder.items || purchaseOrder.items.length === 0) {
+ try {
+ await purchaseOrder.reload();
+ } catch (e) {
+ // proceed with whatever is loaded
+ }
+ }
+
+ this.contextPanel.focus(purchaseOrder, 'receiving', {
+ args: {
+ onReceived: () => {
+ this.hostRouter.refresh();
+ },
+ },
+ });
}
/**
- * Prompt to delete a Sales Order
+ * Prompt to delete a Purchase Order
*
* @param {PurchaseOrderModel} purchaseOrder
* @param {Object} options
@@ -269,7 +357,7 @@ export default class PurchaseOrdersIndexController extends Controller {
}
/**
- * Bulk deletes selected Sales Order's via confirm prompt
+ * Bulk deletes selected Purchase Orders via confirm prompt
*
* @param {Array} selected an array of selected models
* @void
@@ -279,7 +367,7 @@ export default class PurchaseOrdersIndexController extends Controller {
this.crud.bulkDelete(selected, {
modelNamePath: 'public_id',
- acceptButtonText: 'Delete Sales Order',
+ acceptButtonText: 'Delete Purchase Orders',
onSuccess: () => {
return this.hostRouter.refresh();
},
diff --git a/addon/controllers/purchase-orders/index/details.js b/addon/controllers/purchase-orders/index/details.js
index 7fef3458..57ddec79 100644
--- a/addon/controllers/purchase-orders/index/details.js
+++ b/addon/controllers/purchase-orders/index/details.js
@@ -30,7 +30,7 @@ export default class PurchaseOrdersIndexDetailsController extends Controller {
* @returns {Transition} The transition object representing the route change.
*/
@action transitionBack() {
- return this.transitionToRoute('purchase-orders.index');
+ return this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index');
}
/**
@@ -42,7 +42,7 @@ export default class PurchaseOrdersIndexDetailsController extends Controller {
* @returns {Transition} The transition object representing the route change.
*/
@action onEdit(purchaseOrder) {
- return this.transitionToRoute('purchase-orders.index.edit', purchaseOrder);
+ return this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index.edit', purchaseOrder);
}
/**
diff --git a/addon/controllers/purchase-orders/index/edit.js b/addon/controllers/purchase-orders/index/edit.js
index 584e80c2..506b9ae4 100644
--- a/addon/controllers/purchase-orders/index/edit.js
+++ b/addon/controllers/purchase-orders/index/edit.js
@@ -36,12 +36,12 @@ export default class PurchaseOrdersIndexEditController extends Controller {
return this.confirmContinueWithUnsavedChanges(purchaseOrder, {
confirm: () => {
purchaseOrder.rollbackAttributes();
- return this.transitionToRoute('purchase-orders.index');
+ return this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index');
},
});
}
- return this.transitionToRoute('purchase-orders.index');
+ return this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index');
}
/**
@@ -67,7 +67,7 @@ export default class PurchaseOrdersIndexEditController extends Controller {
return this.confirmContinueWithUnsavedChanges(purchaseOrder);
}
- return this.transitionToRoute('purchase-orders.index.details', purchaseOrder);
+ return this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index.details', purchaseOrder);
}
/**
@@ -83,7 +83,7 @@ export default class PurchaseOrdersIndexEditController extends Controller {
}
this.hostRouter.refresh();
- return this.transitionToRoute('purchase-orders.details', purchaseOrder);
+ return this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index.details', purchaseOrder);
}
/**
@@ -102,7 +102,7 @@ export default class PurchaseOrdersIndexEditController extends Controller {
acceptButtonText: 'Continue without saving',
confirm: () => {
purchaseOrder.rollbackAttributes();
- return this.transitionToRoute('purchase-orders.index.details', purchaseOrder);
+ return this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index.details', purchaseOrder);
},
...options,
});
diff --git a/addon/controllers/purchase-orders/index/new.js b/addon/controllers/purchase-orders/index/new.js
index 0e245694..3fe6952f 100644
--- a/addon/controllers/purchase-orders/index/new.js
+++ b/addon/controllers/purchase-orders/index/new.js
@@ -63,7 +63,7 @@ export default class PurchaseOrdersIndexNewController extends Controller {
* @memberof PurchaseOrdersIndexNewController
*/
@action transitionBack() {
- return this.transitionToRoute('purchase-orders.index');
+ return this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index');
}
/**
@@ -79,7 +79,7 @@ export default class PurchaseOrdersIndexNewController extends Controller {
}
this.hostRouter.refresh();
- return this.transitionToRoute('purchase-orders.index.details', purchaseOrder).then(() => {
+ return this.hostRouter.transitionTo('console.pallet.orders.purchase-orders.index.details', purchaseOrder).then(() => {
this.resetForm();
});
}
diff --git a/addon/controllers/reports/index.js b/addon/controllers/reports/index.js
index b7a8cea8..8e30cb60 100644
--- a/addon/controllers/reports/index.js
+++ b/addon/controllers/reports/index.js
@@ -1,3 +1 @@
-import Controller from '@ember/controller';
-
-export default class ReportsIndexController extends Controller {}
+export { default } from '../analytics/reports/index';
diff --git a/addon/controllers/sales-orders/index.js b/addon/controllers/sales-orders/index.js
index 9394614c..33271f49 100644
--- a/addon/controllers/sales-orders/index.js
+++ b/addon/controllers/sales-orders/index.js
@@ -106,15 +106,34 @@ export default class SalesOrdersIndexController extends Controller {
@tracked status;
/**
- * All columns applicable for orders
+ * The table instance
+ *
+ * @var {Object}
+ */
+ @tracked table;
+
+ /**
+ * Status options for the filter
+ *
+ * @var {Array}
+ */
+ statusOptions = [
+ { value: 'pending', label: 'Pending' },
+ { value: 'partial', label: 'Partial' },
+ { value: 'fulfilled', label: 'Fulfilled' },
+ { value: 'cancelled', label: 'Cancelled' },
+ ];
+
+ /**
+ * All columns applicable for sales orders
*
* @var {Array}
*/
@tracked columns = [
{
- label: 'ID',
+ label: 'SO Number',
valuePath: 'public_id',
- width: '130px',
+ width: '140px',
cellComponent: 'table/cell/anchor',
action: this.viewSalesOrder,
resizable: true,
@@ -124,31 +143,55 @@ export default class SalesOrdersIndexController extends Controller {
filterComponent: 'filter/string',
},
{
- label: 'Comments',
- valuePath: 'comments',
+ label: 'Customer Ref',
+ valuePath: 'customer_reference_code',
+ width: '140px',
+ resizable: true,
+ sortable: false,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Reference',
+ valuePath: 'reference_code',
width: '130px',
- cellComponent: 'table/cell/anchor',
resizable: true,
- sortable: true,
+ sortable: false,
filterable: true,
- hidden: false,
filterComponent: 'filter/string',
},
+ {
+ label: 'Items',
+ valuePath: 'item_count',
+ width: '70px',
+ resizable: false,
+ sortable: false,
+ filterable: false,
+ },
{
label: 'Status',
valuePath: 'status',
cellComponent: 'table/cell/status',
- width: '100px',
+ width: '110px',
resizable: true,
sortable: true,
filterable: true,
filterComponent: 'filter/multi-option',
- filterOptions: this.statusOption,
+ filterOptions: this.statusOptions,
+ },
+ {
+ label: 'Expected Delivery',
+ valuePath: 'expected_delivery_at',
+ width: '140px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/date',
},
{
label: 'Created At',
valuePath: 'createdAt',
- sortParam: 'createdAt',
+ sortParam: 'created_at',
width: '120px',
resizable: true,
sortable: true,
@@ -181,6 +224,14 @@ export default class SalesOrdersIndexController extends Controller {
label: 'View Details',
fn: this.viewSalesOrder,
},
+ {
+ label: 'Fulfill Order',
+ fn: this.fulfillSalesOrder,
+ isVisible: (salesOrder) => ['pending', 'partial'].includes(salesOrder.status),
+ },
+ {
+ separator: true,
+ },
{
label: 'Edit Sales Order',
fn: this.editSalesOrder,
@@ -225,23 +276,22 @@ export default class SalesOrdersIndexController extends Controller {
}
/**
- * Toggles dialog to export a Sales Order
+ * Export sales orders
*
* @void
*/
- @action exportFuelReports() {
+ @action exportSalesOrders() {
this.crud.export('sales-order');
}
/**
* View the selected Sales Order
*
- * @param {SalesOrderModel} fuelReport
- * @param {Object} options
+ * @param {SalesOrderModel} salesOrder
* @void
*/
@action viewSalesOrder(salesOrder) {
- this.transitionToRoute('sales-orders.index.details', salesOrder);
+ this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index.details', salesOrder);
}
/**
@@ -250,7 +300,7 @@ export default class SalesOrdersIndexController extends Controller {
* @void
*/
@action createSalesOrder() {
- this.transitionToRoute('sales-orders.index.new');
+ this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index.new');
}
/**
@@ -260,7 +310,35 @@ export default class SalesOrdersIndexController extends Controller {
* @void
*/
@action editSalesOrder(salesOrder) {
- this.transitionToRoute('sales-orders.index.edit', salesOrder);
+ this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index.edit', salesOrder);
+ }
+
+ /**
+ * Open the Fulfill Order panel for a Sales Order.
+ * Loads the SO with its items before opening the panel.
+ *
+ * @param {SalesOrderModel} salesOrder
+ * @void
+ */
+ @action async fulfillSalesOrder(salesOrder) {
+ this.loader.showOnInitialTransition = false;
+
+ // Ensure items are loaded
+ if (!salesOrder.items || salesOrder.items.length === 0) {
+ try {
+ await salesOrder.reload();
+ } catch (e) {
+ // proceed with whatever is loaded
+ }
+ }
+
+ this.contextPanel.focus(salesOrder, 'fulfilling', {
+ args: {
+ onFulfilled: () => {
+ this.hostRouter.refresh();
+ },
+ },
+ });
}
/**
@@ -280,7 +358,7 @@ export default class SalesOrdersIndexController extends Controller {
}
/**
- * Bulk deletes selected Sales Order's via confirm prompt
+ * Bulk deletes selected Sales Orders via confirm prompt
*
* @param {Array} selected an array of selected models
* @void
@@ -291,9 +369,6 @@ export default class SalesOrdersIndexController extends Controller {
this.crud.bulkDelete(selected, {
modelNamePath: 'public_id',
acceptButtonText: 'Delete Sales Orders',
- fetchOptions: {
- namespace: 'pallet/int/v1',
- },
onSuccess: () => {
return this.hostRouter.refresh();
},
diff --git a/addon/controllers/sales-orders/index/details.js b/addon/controllers/sales-orders/index/details.js
index adf58af4..80446422 100644
--- a/addon/controllers/sales-orders/index/details.js
+++ b/addon/controllers/sales-orders/index/details.js
@@ -30,7 +30,7 @@ export default class SalesOrdersIndexDetailsController extends Controller {
* @returns {Transition} The transition object representing the route change.
*/
@action transitionBack() {
- return this.transitionToRoute('sales-orders.index');
+ return this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index');
}
/**
@@ -42,7 +42,7 @@ export default class SalesOrdersIndexDetailsController extends Controller {
* @returns {Transition} The transition object representing the route change.
*/
@action onEdit(salesOrder) {
- return this.transitionToRoute('sales-orders.index.edit', salesOrder);
+ return this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index.edit', salesOrder);
}
/**
diff --git a/addon/controllers/sales-orders/index/edit.js b/addon/controllers/sales-orders/index/edit.js
index feea5f33..21acc173 100644
--- a/addon/controllers/sales-orders/index/edit.js
+++ b/addon/controllers/sales-orders/index/edit.js
@@ -36,12 +36,12 @@ export default class SalesOrdersIndexEditController extends Controller {
return this.confirmContinueWithUnsavedChanges(salesOrder, {
confirm: () => {
salesOrder.rollbackAttributes();
- return this.transitionToRoute('sales-orders.index');
+ return this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index');
},
});
}
- return this.transitionToRoute('sales-orders.index');
+ return this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index');
}
/**
@@ -67,7 +67,7 @@ export default class SalesOrdersIndexEditController extends Controller {
return this.confirmContinueWithUnsavedChanges(salesOrder);
}
- return this.transitionToRoute('sales-orders.index.details', salesOrder);
+ return this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index.details', salesOrder);
}
/**
@@ -83,7 +83,7 @@ export default class SalesOrdersIndexEditController extends Controller {
}
this.hostRouter.refresh();
- return this.transitionToRoute('sales-orders.index.details', salesOrder);
+ return this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index.details', salesOrder);
}
/**
@@ -102,7 +102,7 @@ export default class SalesOrdersIndexEditController extends Controller {
acceptButtonText: 'Continue without saving',
confirm: () => {
salesOrder.rollbackAttributes();
- return this.transitionToRoute('sales-orders.index.details', salesOrder);
+ return this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index.details', salesOrder);
},
...options,
});
diff --git a/addon/controllers/sales-orders/index/new.js b/addon/controllers/sales-orders/index/new.js
index 1c86b09b..614675bd 100644
--- a/addon/controllers/sales-orders/index/new.js
+++ b/addon/controllers/sales-orders/index/new.js
@@ -63,7 +63,7 @@ export default class SalesOrdersIndexNewController extends Controller {
* @memberof SalesOrdersIndexNewController
*/
@action transitionBack() {
- return this.transitionToRoute('sales-orders.index');
+ return this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index');
}
/**
@@ -79,7 +79,7 @@ export default class SalesOrdersIndexNewController extends Controller {
}
this.hostRouter.refresh();
- return this.transitionToRoute('sales-orders.index.details', salesOrder).then(() => {
+ return this.hostRouter.transitionTo('console.pallet.orders.sales-orders.index.details', salesOrder).then(() => {
this.resetForm();
});
}
diff --git a/addon/controllers/suppliers/index.js b/addon/controllers/suppliers/index.js
index c714a60b..7f410f75 100644
--- a/addon/controllers/suppliers/index.js
+++ b/addon/controllers/suppliers/index.js
@@ -14,55 +14,12 @@ export default class SuppliersIndexController extends Controller {
*/
@controller('warehouses.index') warehouses;
- /**
- * Inject the `notifications` service
- *
- * @var {Service}
- */
- @service notifications;
-
- /**
- * Inject the `modals-manager` service
- *
- * @var {Service}
- */
- @service modalsManager;
-
- /**
- * Inject the `crud` service
- *
- * @var {Service}
- */
- @service crud;
-
- /**
- * Inject the `store` service
- *
- * @var {Service}
- */
+ @service supplierActions;
+ @service warehouseActions;
+ @service tableContext;
+ @service intl;
@service store;
- /**
- * Inject the `filters` service
- *
- * @var {Service}
- */
- @service filters;
-
- /**
- * Inject the `hostRouter` service
- *
- * @var {Service}
- */
- @service hostRouter;
-
- /**
- * Inject the `fetch` service
- *
- * @var {Service}
- */
- @service fetch;
-
/**
* Queryable parameters for this controller's model
*
@@ -159,180 +116,210 @@ export default class SuppliersIndexController extends Controller {
*
* @var {Array}
*/
- @tracked rows = [];
+ @tracked table;
- /**
- * All columns for the table
- *
- * @var {Array}
- */
- @tracked columns = [
- {
- label: 'Name',
- valuePath: 'name',
- width: '180px',
- cellComponent: 'table/cell/media-name',
- mediaPath: 'logo_url',
- action: this.viewSupplier,
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'ID',
- valuePath: 'public_id',
- cellComponent: 'click-to-copy',
- width: '110px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'Internal ID',
- valuePath: 'internal_id',
- cellComponent: 'click-to-copy',
- width: '100px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'Email',
- valuePath: 'email',
- cellComponent: 'click-to-copy',
- width: '80px',
- resizable: true,
- sortable: true,
- hidden: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'Website URL',
- valuePath: 'website_url',
- cellComponent: 'click-to-copy',
- width: '80px',
- resizable: true,
- sortable: true,
- hidden: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'Phone',
- valuePath: 'phone',
- cellComponent: 'click-to-copy',
- width: '80px',
- resizable: true,
- sortable: true,
- hidden: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'Address',
- valuePath: 'address',
- cellComponent: 'table/cell/anchor',
- action: this.viewSupplierPlace,
- width: '150px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterParam: 'address',
- filterComponent: 'filter/string',
- },
- {
- label: 'Type',
- valuePath: 'type',
- cellComponent: 'table/cell/anchor',
- action: this.viewSupplierPlace,
- width: '150px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterParam: 'type',
- filterComponent: 'filter/string',
- },
- {
- label: 'Country',
- valuePath: 'country',
- cellComponent: 'table/cell/base',
- cellClassNames: 'uppercase',
- width: '120px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/country',
- filterParam: 'country',
- },
- {
- label: 'Created At',
- valuePath: 'createdAt',
- sortParam: 'created_at',
- width: '150px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/date',
- },
- {
- label: 'Updated At',
- valuePath: 'updatedAt',
- sortParam: 'updated_at',
- width: '130px',
- resizable: true,
- sortable: true,
- hidden: true,
- filterable: true,
- filterComponent: 'filter/date',
- },
- {
- label: 'Status',
- valuePath: 'status',
- cellComponent: 'table/cell/status',
- width: '130px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/multi-option',
- filterOptions: getSupplierStatusOptions(),
- },
- {
- label: '',
- cellComponent: 'table/cell/dropdown',
- ddButtonText: false,
- ddButtonIcon: 'ellipsis-h',
- ddButtonIconPrefix: 'fas',
- ddMenuLabel: 'Supplier Actions',
- cellClassNames: 'overflow-visible',
- wrapperClass: 'flex items-center justify-end mx-2',
- width: '7%',
- actions: [
- {
- label: 'View Supplier Details',
- fn: this.viewSupplier,
- },
- {
- label: 'Edit Supplier',
- fn: this.editSupplier,
- },
- {
- separator: true,
- },
- {
- label: 'Delete Supplier',
- fn: this.deleteSupplier,
- },
- ],
- sortable: false,
- filterable: false,
- resizable: false,
- searchable: false,
- },
- ];
+ get actionButtons() {
+ return [
+ {
+ icon: 'refresh',
+ onClick: this.supplierActions.refresh,
+ helpText: this.intl.t('common.refresh'),
+ },
+ {
+ text: this.intl.t('common.new'),
+ type: 'primary',
+ icon: 'plus',
+ onClick: this.supplierActions.transition.create,
+ },
+ {
+ text: this.intl.t('common.export'),
+ icon: 'long-arrow-up',
+ iconClass: 'rotate-icon-45',
+ wrapperClass: 'hidden md:flex',
+ onClick: this.supplierActions.export,
+ },
+ ];
+ }
+
+ get bulkActions() {
+ const selected = this.tableContext.getSelectedRows();
+
+ return [
+ {
+ label: this.intl.t('common.delete-selected-count', { count: selected.length }),
+ class: 'text-red-500',
+ fn: this.supplierActions.bulkDelete,
+ },
+ ];
+ }
+
+ get columns() {
+ return [
+ {
+ label: 'Name',
+ valuePath: 'name',
+ width: '180px',
+ cellComponent: 'table/cell/media-name',
+ mediaPath: 'logo_url',
+ action: this.supplierActions.transition.view,
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'ID',
+ valuePath: 'public_id',
+ cellComponent: 'click-to-copy',
+ width: '110px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Internal ID',
+ valuePath: 'internal_id',
+ cellComponent: 'click-to-copy',
+ width: '100px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Email',
+ valuePath: 'email',
+ cellComponent: 'click-to-copy',
+ width: '80px',
+ resizable: true,
+ sortable: true,
+ hidden: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Website URL',
+ valuePath: 'website_url',
+ cellComponent: 'click-to-copy',
+ width: '80px',
+ resizable: true,
+ sortable: true,
+ hidden: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Phone',
+ valuePath: 'phone',
+ cellComponent: 'click-to-copy',
+ width: '80px',
+ resizable: true,
+ sortable: true,
+ hidden: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Address',
+ valuePath: 'address',
+ cellComponent: 'table/cell/anchor',
+ action: this.viewSupplierWarehouse,
+ width: '150px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterParam: 'address',
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Type',
+ valuePath: 'type',
+ width: '150px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterParam: 'type',
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Country',
+ valuePath: 'country',
+ cellComponent: 'table/cell/base',
+ cellClassNames: 'uppercase',
+ width: '120px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/country',
+ filterParam: 'country',
+ },
+ {
+ label: 'Created At',
+ valuePath: 'createdAt',
+ sortParam: 'created_at',
+ width: '150px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/date',
+ },
+ {
+ label: 'Updated At',
+ valuePath: 'updatedAt',
+ sortParam: 'updated_at',
+ width: '130px',
+ resizable: true,
+ sortable: true,
+ hidden: true,
+ filterable: true,
+ filterComponent: 'filter/date',
+ },
+ {
+ label: 'Status',
+ valuePath: 'status',
+ cellComponent: 'table/cell/status',
+ width: '130px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/multi-option',
+ filterOptions: getSupplierStatusOptions(),
+ },
+ {
+ label: '',
+ cellComponent: 'table/cell/dropdown',
+ ddButtonText: false,
+ ddButtonIcon: 'ellipsis-h',
+ ddButtonIconPrefix: 'fas',
+ ddMenuLabel: this.intl.t('common.resource-actions', { resource: 'Supplier' }),
+ cellClassNames: 'overflow-visible',
+ wrapperClass: 'flex items-center justify-end mx-2',
+ width: '7%',
+ actions: [
+ {
+ label: this.intl.t('common.view-resource', { resource: 'Supplier' }),
+ fn: this.supplierActions.transition.view,
+ },
+ {
+ label: this.intl.t('common.edit-resource', { resource: 'Supplier' }),
+ fn: this.supplierActions.transition.edit,
+ },
+ {
+ separator: true,
+ },
+ {
+ label: this.intl.t('common.delete-resource', { resource: 'Supplier' }),
+ fn: this.supplierActions.delete,
+ },
+ ],
+ sortable: false,
+ filterable: false,
+ resizable: false,
+ searchable: false,
+ },
+ ];
+ }
/**
* The search task.
@@ -358,121 +345,14 @@ export default class SuppliersIndexController extends Controller {
this.query = value;
}
- /**
- * Toggles dialog to export `supplier`
- *
- * @void
- */
- @action exportSuppliers() {
- this.crud.export('supplier');
- }
-
- /**
- * View a `supplier` details in modal
- *
- * @param {SupplierModel} supplier
- * @void
- */
- @action viewSupplier(supplier) {
- return this.transitionToRoute('suppliers.index.details', supplier);
- }
-
- /**
- * Create a new `supplier` in modal
- *
- * @void
- */
- @action async createSupplier() {
- return this.transitionToRoute('suppliers.index.new');
- }
-
- /**
- * Edit a `supplier` details
- *
- * @param {SupplierModel} supplier
- * @void
- */
- @action editSupplier(supplier) {
- return this.transitionToRoute('suppliers.index.edit', supplier);
- }
-
- /**
- * Delete a `supplier` via confirm prompt
- *
- * @param {SupplierModel} supplier
- * @param {Object} options
- * @void
- */
- @action deleteSupplier(supplier, options = {}) {
- this.crud.delete(supplier, {
- acceptButtonIcon: 'trash',
- onSuccess: () => {
- return this.hostRouter.refresh();
- },
- ...options,
- });
- }
-
- /**
- * Bulk deletes selected `supplier` via confirm prompt
- *
- * @param {Array} selected an array of selected models
- * @void
- */
- @action bulkDeleteSuppliers() {
- const selected = this.table.selectedRows;
-
- this.crud.bulkDelete(selected, {
- modelNamePath: `name`,
- acceptButtonText: 'Delete Suppliers',
- onSuccess: () => {
- return this.hostRouter.refresh();
- },
- });
- }
-
- /**
- * View information about the suppliers warehouse
- *
- * @param {SupplierModel} supplier
- * @void
- */
- @action async viewSupplierPlace(supplier) {
- const warehouse = await this.store.findRecord('warehouse', supplier.warehouse_uuid);
-
- if (warehouse) {
- this.contextPanel.focus(warehouse);
+ @action async viewSupplierWarehouse(supplier) {
+ if (!supplier?.warehouse_uuid) {
+ return;
}
- }
- /**
- * Edit a supplier's current warehouse
- *
- * @param {SupplierModel} supplier
- * @void
- */
- @action async editSupplierPlace(supplier) {
const warehouse = await this.store.findRecord('warehouse', supplier.warehouse_uuid);
-
if (warehouse) {
- this.contextPanel.focus(warehouse, 'editing');
+ return this.warehouseActions.transition.view(warehouse);
}
}
-
- /**
- * Create a new warehouse for a supplier.
- *
- * @param {SupplierModel} supplier
- * @void
- */
- @action async createSupplierPlace(supplier) {
- const warehouse = this.store.createRecord('warehouse');
-
- this.contextPanel.focus(warehouse, 'editing', {
- onAfterSave: (warehouse) => {
- supplier.set('warehouse_uuid', warehouse.id);
- supplier.save();
- },
- });
- }
}
diff --git a/addon/controllers/suppliers/index/details.js b/addon/controllers/suppliers/index/details.js
index c9f72878..e518de6e 100644
--- a/addon/controllers/suppliers/index/details.js
+++ b/addon/controllers/suppliers/index/details.js
@@ -1,55 +1,23 @@
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
-import { action } from '@ember/object';
+import { inject as service } from '@ember/service';
export default class SuppliersIndexDetailsController extends Controller {
- /**
- * The currently active view tab ('details' by default).
- *
- * @type {String}
- * @tracked
- */
- @tracked view = 'details';
+ @service hostRouter;
- /**
- * An array of query parameters to be serialized in the URL.
- *
- * @type {String[]}
- * @tracked
- */
- @tracked queryParams = ['view'];
+ @tracked tabs = [
+ {
+ route: 'catalog.suppliers.index.details.index',
+ label: 'Overview',
+ },
+ ];
- /**
- * Transitions back to the "supplier.index" route.
- *
- * @method
- * @action
- * @returns {Transition} The transition object representing the route change.
- */
- @action transitionBack() {
- return this.transitionToRoute('suppliers.index');
- }
-
- /**
- * Transitions to the edit view for a specific supplier.
- *
- * @method
- * @param {SupplierModel} supplier - The supplier to be edited.
- * @action
- * @returns {Transition} The transition object representing the route change.
- */
- @action onEdit(supplier) {
- return this.transitionToRoute('suppliers.index.edit', supplier);
- }
-
- /**
- * Updates the active view tab.
- *
- * @method
- * @param {String} tab - The name of the tab to activate.
- * @action
- */
- @action onTabChanged(tab) {
- this.view = tab;
+ get actionButtons() {
+ return [
+ {
+ icon: 'pencil',
+ fn: () => this.hostRouter.transitionTo('console.pallet.catalog.suppliers.index.edit', this.model),
+ },
+ ];
}
}
diff --git a/addon/controllers/suppliers/index/edit.js b/addon/controllers/suppliers/index/edit.js
index 5ca4a494..c7b420b8 100644
--- a/addon/controllers/suppliers/index/edit.js
+++ b/addon/controllers/suppliers/index/edit.js
@@ -2,109 +2,69 @@ import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
+
export default class SuppliersIndexEditController extends Controller {
- /**
- * Inject the `hostRouter` service
- *
- * @memberof ManagementSuppliersIndexEditController
- */
@service hostRouter;
-
- /**
- * Inject the `hostRouter` service
- *
- * @memberof ManagementSuppliersIndexEditController
- */
+ @service intl;
+ @service notifications;
@service modalsManager;
+ @service events;
- /**
- * The overlay component context.
- *
- * @memberof ManagementSuppliersIndexEditController
- */
@tracked overlay;
- /**
- * When exiting the overlay.
- *
- * @return {Transition}
- * @memberof ManagementSuppliersIndexEditController
- */
- @action transitionBack(supplier) {
- // check if supplier record has been edited and prompt for confirmation
- if (supplier.hasDirtyAttributes) {
- return this.confirmContinueWithUnsavedChanges(supplier, {
- confirm: () => {
- supplier.rollbackAttributes();
- return this.transitionToRoute('supplier.index');
- },
- });
- }
-
- return this.transitionToRoute('supplier.index');
+ get actionButtons() {
+ return [
+ {
+ icon: 'eye',
+ fn: this.view,
+ },
+ ];
}
- /**
- * Set the overlay component context object.
- *
- * @param {OverlayContext} overlay
- * @memberof ManagementSuppliersIndexEditController
- */
- @action setOverlayContext(overlay) {
- this.overlay = overlay;
+ @task *save(supplier) {
+ try {
+ yield supplier.save();
+ this.events.trackResourceUpdated(supplier);
+ this.overlay?.close();
+
+ yield this.hostRouter.transitionTo('console.pallet.catalog.suppliers.index.details', supplier);
+ this.notifications.success(
+ this.intl.t('common.resource-updated-success', {
+ resource: 'Supplier',
+ resourceName: supplier.name,
+ })
+ );
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
}
- /**
- * When supplier details button is clicked in overlay.
- *
- * @param {SupplierModel} supplier
- * @return {Promise}
- * @memberof ManagementSuppliersIndexEditController
- */
- @action onViewDetails(supplier) {
- // check if supplier record has been edited and prompt for confirmation
- if (supplier.hasDirtyAttributes) {
- return this.confirmContinueWithUnsavedChanges(supplier);
+ @action cancel() {
+ if (this.model.hasDirtyAttributes) {
+ return this.confirmContinueWithUnsavedChanges(this.model, 'console.pallet.catalog.suppliers.index');
}
- return this.transitionToRoute('suppliers.index.details', supplier);
+ return this.hostRouter.transitionTo('console.pallet.catalog.suppliers.index');
}
- /**
- * Trigger a route refresh and focus the new supplier created.
- *
- * @param {SupplierModel} supplier
- * @return {Promise}
- * @memberof ManagementSuppliersIndexEditController
- */
- @action onAfterSave(supplier) {
- if (this.overlay) {
- this.overlay.close();
+ @action view() {
+ if (this.model.hasDirtyAttributes) {
+ return this.confirmContinueWithUnsavedChanges(this.model, 'console.pallet.catalog.suppliers.index.details');
}
- this.hostRouter.refresh();
- return this.transitionToRoute('suppliers.index.details', supplier);
+ return this.hostRouter.transitionTo('console.pallet.catalog.suppliers.index.details', this.model);
}
- /**
- * Prompts the user to confirm if they wish to continue with unsaved changes.
- *
- * @method
- * @param {SupplierModel} supplier - The supplier object with unsaved changes.
- * @param {Object} [options={}] - Additional options for configuring the modal.
- * @returns {Promise} A promise that resolves when the user confirms, and transitions to a new route.
- * @memberof ManagementSuppliersIndexEditController
- */
- confirmContinueWithUnsavedChanges(supplier, options = {}) {
+ confirmContinueWithUnsavedChanges(supplier, routeName) {
return this.modalsManager.confirm({
- title: 'Continue Without Saving?',
- body: 'Unsaved changes to this supplier will be lost. Click continue to proceed.',
- acceptButtonText: 'Continue without saving',
- confirm: () => {
+ title: this.intl.t('common.continue-without-saving'),
+ body: this.intl.t('common.continue-without-saving-prompt', { resource: 'Supplier' }),
+ acceptButtonText: this.intl.t('common.continue'),
+ confirm: async () => {
supplier.rollbackAttributes();
- return this.transitionToRoute('supplier.index.details', supplier);
+ await this.hostRouter.transitionTo(routeName, supplier);
},
- ...options,
});
}
}
diff --git a/addon/controllers/suppliers/index/new.js b/addon/controllers/suppliers/index/new.js
index 6f6090cc..1b091906 100644
--- a/addon/controllers/suppliers/index/new.js
+++ b/addon/controllers/suppliers/index/new.js
@@ -2,87 +2,40 @@ import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
export default class SuppliersIndexNewController extends Controller {
- /**
- * Inject the `store` service
- *
- * @memberof ManagementSupplierIndexNewController
- */
- @service store;
-
- /**
- * Inject the `hostRouter` service
- *
- * @memberof ManagementSupplierIndexNewController
- */
+ @service supplierActions;
@service hostRouter;
+ @service intl;
+ @service notifications;
+ @service events;
- /**
- * Inject the `hostRouter` service
- *
- * @memberof ManagementSupplierIndexNewController
- */
- @service modalsManager;
-
- /**
- * The overlay component context.
- *
- * @memberof ManagementSupplierIndexNewController
- */
@tracked overlay;
-
- /**
- * The supplier being created.
- *
- * @var {SupplierModel}
- */
- @tracked supplier = this.store.createRecord('supplier', { status: 'active' });
-
- /**
- * Set the overlay component context object.
- *
- * @param {OverlayContext} overlay
- * @memberof ManagementSuppliersIndexNewController
- */
- @action setOverlayContext(overlay) {
- this.overlay = overlay;
- }
-
- /**
- * When exiting the overlay.
- *
- * @return {Transition}
- * @memberof ManagementSupplierIndexNewController
- */
- @action transitionBack() {
- return this.transitionToRoute('suppliers.index');
- }
-
- /**
- * Trigger a route refresh and focus the new supplier created.
- *
- * @param {SupplierModel} supplier
- * @return {Promise}
- * @memberof ManagementSuppliersIndexNewController
- */
- @action onAfterSave(supplier) {
- if (this.overlay) {
- this.overlay.close();
- }
-
- this.hostRouter.refresh();
- return this.transitionToRoute('suppliers.index.details', supplier).then(() => {
+ @tracked supplier = this.supplierActions.createNewInstance();
+
+ @task *save(supplier) {
+ try {
+ yield supplier.save();
+ this.events.trackResourceCreated(supplier);
+ this.overlay?.close();
+
+ yield this.hostRouter.refresh();
+ yield this.hostRouter.transitionTo('console.pallet.catalog.suppliers.index.details', supplier);
+ this.notifications.success(
+ this.intl.t('common.resource-created-success-name', {
+ resource: 'Supplier',
+ resourceName: supplier.name,
+ })
+ );
this.resetForm();
- });
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
}
- /**
- * Resets the form with a new supplier record
- *
- * @memberof ManagementSupplierIndexNewController
- */
+ @action
resetForm() {
- this.supplier = this.store.createRecord('supplier', { status: 'active' });
+ this.supplier = this.supplierActions.createNewInstance();
}
}
diff --git a/addon/controllers/warehouses/index.js b/addon/controllers/warehouses/index.js
index 41cb667a..f4499a28 100644
--- a/addon/controllers/warehouses/index.js
+++ b/addon/controllers/warehouses/index.js
@@ -1,59 +1,13 @@
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
import { tracked } from '@glimmer/tracking';
-import { action } from '@ember/object';
import { isBlank } from '@ember/utils';
import { task, timeout } from 'ember-concurrency';
export default class WarehousesIndexController extends Controller {
- /**
- * Inject the `notifications` service
- *
- * @var {Service}
- */
- @service notifications;
-
- /**
- * Inject the `modals-manager` service
- *
- * @var {Service}
- */
- @service modalsManager;
-
- /**
- * Inject the `store` service
- *
- * @var {Service}
- */
- @service store;
-
- /**
- * Inject the `fetch` service
- *
- * @var {Service}
- */
- @service fetch;
-
- /**
- * Inject the `filters` service
- *
- * @var {Service}
- */
- @service filters;
-
- /**
- * Inject the `hostRouter` service
- *
- * @var {Service}
- */
- @service hostRouter;
-
- /**
- * Inject the `crud` service
- *
- * @var {Service}
- */
- @service crud;
+ @service warehouseActions;
+ @service tableContext;
+ @service intl;
/**
* Queryable parameters for this controller's model
@@ -132,164 +86,195 @@ export default class WarehousesIndexController extends Controller {
*/
@tracked neighborhood;
- @tracked warehouse;
+ @tracked table;
- /**
- * All columns applicable for orders
- *
- * @var {Array}
- */
- @tracked columns = [
- {
- label: 'Name',
- valuePath: 'name',
- width: '200px',
- cellComponent: 'table/cell/anchor',
- action: this.viewWarehouse,
- resizable: true,
- sortable: true,
- filterable: true,
- filterParam: 'name',
- filterComponent: 'filter/string',
- },
- {
- label: 'Description',
- valuePath: 'meta.description',
- width: '200px',
- cellComponent: 'table/cell/anchor',
- resizable: true,
- sortable: true,
- filterable: true,
- filterParam: 'description',
- filterComponent: 'filter/string',
- },
- {
- label: 'Address',
- valuePath: 'address',
- cellComponent: 'table/cell/anchor',
- action: this.viewWarehouse,
- width: '320px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterParam: 'address',
- filterComponent: 'filter/string',
- },
- {
- label: 'Stock Items',
- valuePath: 'stockItems',
- width: '120px',
- cellComponent: 'table/cell/anchor',
- resizable: true,
- sortable: true,
- filterable: false,
- },
- {
- label: 'ID',
- valuePath: 'public_id',
- width: '120px',
- cellComponent: 'click-to-copy',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/string',
- },
- {
- label: 'Country',
- valuePath: 'country_name',
- cellComponent: 'table/cell/base',
- cellClassNames: 'uppercase',
- width: '120px',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/country',
- filterParam: 'country',
- },
- {
- label: 'Structural',
- valuePath: 'meta.structural',
- width: '120px',
- cellComponent: 'table/cell/base',
- resizable: true,
- sortable: true,
- filterable: true,
- filterParam: 'structural',
- filterComponent: 'filter/string',
- },
- {
- label: 'External',
- valuePath: 'meta.external',
- width: '120px',
- cellComponent: 'table/cell/base',
- resizable: true,
- sortable: true,
- filterable: true,
- filterParam: 'external',
- filterComponent: 'filter/string',
- },
- {
- label: 'Created At',
- valuePath: 'createdAt',
- sortParam: 'created_at',
- width: '10%',
- resizable: true,
- sortable: true,
- filterable: true,
- filterComponent: 'filter/date',
- },
- {
- label: 'Updated At',
- valuePath: 'updatedAt',
- sortParam: 'updated_at',
- width: '10%',
- resizable: true,
- sortable: true,
- hidden: true,
- filterable: true,
- filterComponent: 'filter/date',
- },
+ get actionButtons() {
+ return [
+ {
+ icon: 'refresh',
+ onClick: this.warehouseActions.refresh,
+ helpText: this.intl.t('common.refresh'),
+ },
+ {
+ text: this.intl.t('common.new'),
+ type: 'primary',
+ icon: 'plus',
+ onClick: this.warehouseActions.transition.create,
+ },
+ {
+ text: this.intl.t('common.export'),
+ icon: 'long-arrow-up',
+ iconClass: 'rotate-icon-45',
+ wrapperClass: 'hidden md:flex',
+ onClick: this.warehouseActions.export,
+ },
+ ];
+ }
+
+ get bulkActions() {
+ const selected = this.tableContext.getSelectedRows();
+
+ return [
+ {
+ label: this.intl.t('common.delete-selected-count', { count: selected.length }),
+ class: 'text-red-500',
+ fn: this.warehouseActions.bulkDelete,
+ },
+ ];
+ }
- {
- label: '',
- cellComponent: 'table/cell/dropdown',
- ddButtonText: false,
- ddButtonIcon: 'ellipsis-h',
- ddButtonIconPrefix: 'fas',
- ddMenuLabel: 'Warehouse Actions',
- cellClassNames: 'overflow-visible',
- wrapperClass: 'flex items-center justify-end mx-2',
- width: '10%',
- actions: [
- {
- label: 'View Warehouse Details',
- fn: this.viewWarehouse,
- },
- {
- label: 'Edit Warehouse',
- fn: this.viewWarehouse,
- },
- {
- separator: true,
- },
- {
- label: 'View Warehouse on Map',
- fn: this.viewWarehouse,
- },
- {
- separator: true,
- },
- {
- label: 'Delete Warehouse',
- fn: this.deleteWarehouse,
- },
- ],
- sortable: false,
- filterable: false,
- resizable: false,
- searchable: false,
- },
- ];
+ get columns() {
+ return [
+ {
+ label: 'Name',
+ valuePath: 'name',
+ width: '200px',
+ cellComponent: 'table/cell/anchor',
+ action: this.warehouseActions.transition.view,
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterParam: 'name',
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Description',
+ valuePath: 'meta.description',
+ width: '200px',
+ cellComponent: 'table/cell/anchor',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterParam: 'description',
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Address',
+ valuePath: 'address',
+ cellComponent: 'table/cell/anchor',
+ action: this.warehouseActions.transition.view,
+ width: '320px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterParam: 'address',
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Stock Items',
+ valuePath: 'stockItems',
+ width: '120px',
+ cellComponent: 'table/cell/anchor',
+ resizable: true,
+ sortable: true,
+ filterable: false,
+ },
+ {
+ label: 'ID',
+ valuePath: 'public_id',
+ width: '120px',
+ cellComponent: 'click-to-copy',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Country',
+ valuePath: 'country_name',
+ cellComponent: 'table/cell/base',
+ cellClassNames: 'uppercase',
+ width: '120px',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/country',
+ filterParam: 'country',
+ },
+ {
+ label: 'Structural',
+ valuePath: 'meta.structural',
+ width: '120px',
+ cellComponent: 'table/cell/base',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterParam: 'structural',
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'External',
+ valuePath: 'meta.external',
+ width: '120px',
+ cellComponent: 'table/cell/base',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterParam: 'external',
+ filterComponent: 'filter/string',
+ },
+ {
+ label: 'Created At',
+ valuePath: 'createdAt',
+ sortParam: 'created_at',
+ width: '10%',
+ resizable: true,
+ sortable: true,
+ filterable: true,
+ filterComponent: 'filter/date',
+ },
+ {
+ label: 'Updated At',
+ valuePath: 'updatedAt',
+ sortParam: 'updated_at',
+ width: '10%',
+ resizable: true,
+ sortable: true,
+ hidden: true,
+ filterable: true,
+ filterComponent: 'filter/date',
+ },
+ {
+ label: '',
+ cellComponent: 'table/cell/dropdown',
+ ddButtonText: false,
+ ddButtonIcon: 'ellipsis-h',
+ ddButtonIconPrefix: 'fas',
+ ddMenuLabel: this.intl.t('common.resource-actions', { resource: 'Warehouse' }),
+ cellClassNames: 'overflow-visible',
+ wrapperClass: 'flex items-center justify-end mx-2',
+ width: '10%',
+ actions: [
+ {
+ label: this.intl.t('common.view-resource', { resource: 'Warehouse' }),
+ fn: this.warehouseActions.transition.view,
+ },
+ {
+ label: this.intl.t('common.edit-resource', { resource: 'Warehouse' }),
+ fn: this.warehouseActions.transition.edit,
+ },
+ {
+ separator: true,
+ },
+ {
+ label: 'View Warehouse on Map',
+ fn: this.warehouseActions.locate,
+ },
+ {
+ separator: true,
+ },
+ {
+ label: this.intl.t('common.delete-resource', { resource: 'Warehouse' }),
+ fn: this.warehouseActions.delete,
+ },
+ ],
+ sortable: false,
+ filterable: false,
+ resizable: false,
+ searchable: false,
+ },
+ ];
+ }
/**
* The search task.
@@ -314,108 +299,4 @@ export default class WarehousesIndexController extends Controller {
// update the query param
this.query = value;
}
-
- /**
- * Toggles dialog to export `warehouse`
- *
- * @void
- */
- @action exportProcuts() {
- this.crud.export('warehouse');
- }
-
- /**
- * View a `warehouse` details in overlay
- *
- * @param {WarehouseModel} warehouse
- * @param {Object} options
- * @void
- */
- @action viewWarehouse(warehouse) {
- this.transitionToRoute('warehouses.index.details', warehouse);
- }
-
- /**
- * Create a new `warehouse` in modal
- *
- * @param {Object} options
- * @void
- */
- @action createWarehouse() {
- this.transitionToRoute('warehouses.index.new');
- }
-
- /**
- * Edit a `warehouse` details
- *
- * @param {WarehouseModel} warehouse
- * @param {Object} options
- * @void
- */
- @action async editWarehouse(warehouse) {
- this.transitionToRoute('warehouses.index.edit', warehouse);
- }
-
- /**
- * Delete a `warehouse` via confirm prompt
- *
- * @param {WarehouseModel} warehouse
- * @param {Object} options
- * @void
- */
- @action deleteWarehouse(warehouse, options = {}) {
- this.crud.delete(warehouse, {
- onConfirm: () => {
- return this.hostRouter.refresh();
- },
- ...options,
- });
- }
-
- /**
- * Bulk deletes selected `warehouse` via confirm prompt
- *
- * @param {Array} selected an array of selected models
- * @void
- */
- @action bulkDeleteWarehouses() {
- const selected = this.table.selectedRows;
-
- this.crud.bulkDelete(selected, {
- modelNamePath: `address`,
- acceptButtonText: 'Delete Warehouse',
- onSuccess: () => {
- return this.hostRouter.refresh();
- },
- });
- }
-
- /**
- * Prompt user to assign a `vendor` to a `place`
- *
- * @param {PlaceModel} place
- * @param {Object} options
- * @void
- */
-
- /**
- * View a place location on map
- *
- * @param {WarehouseModel} place
- * @param {Object} options
- * @void
- */
- @action viewOnMap(warehouse, options = {}) {
- const { latitude, longitude } = warehouse;
-
- this.modalsManager.show('modals/point-map', {
- title: `Location of ${warehouse.name}`,
- acceptButtonText: 'Done',
- hideDeclineButton: true,
- latitude,
- longitude,
- location: [latitude, longitude],
- ...options,
- });
- }
}
diff --git a/addon/controllers/warehouses/index/details.js b/addon/controllers/warehouses/index/details.js
index 5fdbf829..1d7a6b54 100644
--- a/addon/controllers/warehouses/index/details.js
+++ b/addon/controllers/warehouses/index/details.js
@@ -1,55 +1,23 @@
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
-import { action } from '@ember/object';
+import { inject as service } from '@ember/service';
export default class WarehousesIndexDetailsController extends Controller {
- /**
- * The currently active view tab ('details' by default).
- *
- * @type {String}
- * @tracked
- */
- @tracked view = 'details';
+ @service hostRouter;
- /**
- * An array of query parameters to be serialized in the URL.
- *
- * @type {String[]}
- * @tracked
- */
- @tracked queryParams = ['view'];
+ @tracked tabs = [
+ {
+ route: 'facilities.warehouses.index.details.index',
+ label: 'Overview',
+ },
+ ];
- /**
- * Transitions back to the "warehouses.index" route.
- *
- * @method
- * @action
- * @returns {Transition} The transition object representing the route change.
- */
- @action transitionBack() {
- return this.transitionToRoute('warehouses.index');
- }
-
- /**
- * Transitions to the edit view for a specific warehouse.
- *
- * @method
- * @param {warehouseModel} warehouse - The warehouse to be edited.
- * @action
- * @returns {Transition} The transition object representing the route change.
- */
- @action onEdit(warehouse) {
- return this.transitionToRoute('warehouses.index.edit', warehouse);
- }
-
- /**
- * Updates the active view tab.
- *
- * @method
- * @param {String} tab - The name of the tab to activate.
- * @action
- */
- @action onTabChanged(tab) {
- this.view = tab;
+ get actionButtons() {
+ return [
+ {
+ icon: 'pencil',
+ fn: () => this.hostRouter.transitionTo('console.pallet.facilities.warehouses.index.edit', this.model),
+ },
+ ];
}
}
diff --git a/addon/controllers/warehouses/index/edit.js b/addon/controllers/warehouses/index/edit.js
index 2f3e602b..bfb79472 100644
--- a/addon/controllers/warehouses/index/edit.js
+++ b/addon/controllers/warehouses/index/edit.js
@@ -2,110 +2,69 @@ import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
export default class WarehousesIndexEditController extends Controller {
- /**
- * Inject the `hostRouter` service
- *
- * @memberof WarehousesIndexEditController
- */
@service hostRouter;
-
- /**
- * Inject the `hostRouter` service
- *
- * @memberof WarehousesIndexEditController
- */
+ @service intl;
+ @service notifications;
@service modalsManager;
+ @service events;
- /**
- * The overlay component context.
- *
- * @memberof WarehousesIndexEditController
- */
@tracked overlay;
- /**
- * When exiting the overlay.
- *
- * @return {Transition}
- * @memberof warehousesIndexEditController
- */
- @action transitionBack(warehouse) {
- // check if warehouse record has been edited and prompt for confirmation
- if (warehouse.hasDirtyAttributes) {
- return this.confirmContinueWithUnsavedChanges(warehouse, {
- confirm: () => {
- warehouse.rollbackAttributes();
- return this.transitionToRoute('management.warehouses.index');
- },
- });
- }
-
- return this.transitionToRoute('warehouses.index');
+ get actionButtons() {
+ return [
+ {
+ icon: 'eye',
+ fn: this.view,
+ },
+ ];
}
- /**
- * Set the overlay component context object.
- *
- * @param {OverlayContext} overlay
- * @memberof WarehousesIndexEditController
- */
- @action setOverlayContext(overlay) {
- this.overlay = overlay;
+ @task *save(warehouse) {
+ try {
+ yield warehouse.save();
+ this.events.trackResourceUpdated(warehouse);
+ this.overlay?.close();
+
+ yield this.hostRouter.transitionTo('console.pallet.facilities.warehouses.index.details', warehouse);
+ this.notifications.success(
+ this.intl.t('common.resource-updated-success', {
+ resource: 'Warehouse',
+ resourceName: warehouse.name,
+ })
+ );
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
}
- /**
- * When warehouse details button is clicked in overlay.
- *
- * @param {WarehouseModel} warehouse
- * @return {Promise}
- * @memberof WarehousesIndexEditController
- */
- @action onViewDetails(warehouse) {
- // check if warehouse record has been edited and prompt for confirmation
- if (warehouse.hasDirtyAttributes) {
- return this.confirmContinueWithUnsavedChanges(warehouse);
+ @action cancel() {
+ if (this.model.hasDirtyAttributes) {
+ return this.confirmContinueWithUnsavedChanges(this.model, 'console.pallet.facilities.warehouses.index');
}
- return this.transitionToRoute('warehouses.index.details', warehouse);
+ return this.hostRouter.transitionTo('console.pallet.facilities.warehouses.index');
}
- /**
- * Trigger a route refresh and focus the new warehouse created.
- *
- * @param {WarehouseModel} warehouse
- * @return {Promise}
- * @memberof WarehousesIndexEditController
- */
- @action onAfterSave(warehouse) {
- if (this.overlay) {
- this.overlay.close();
+ @action view() {
+ if (this.model.hasDirtyAttributes) {
+ return this.confirmContinueWithUnsavedChanges(this.model, 'console.pallet.facilities.warehouses.index.details');
}
- this.hostRouter.refresh();
- return this.transitionToRoute('warehouses.index.details', warehouse);
+ return this.hostRouter.transitionTo('console.pallet.facilities.warehouses.index.details', this.model);
}
- /**
- * Prompts the user to confirm if they wish to continue with unsaved changes.
- *
- * @method
- * @param {WarehouseModel} warehouse - The warehouse object with unsaved changes.
- * @param {Object} [options={}] - Additional options for configuring the modal.
- * @returns {Promise} A promise that resolves when the user confirms, and transitions to a new route.
- * @memberof WarehousesIndexEditController
- */
- confirmContinueWithUnsavedChanges(warehouse, options = {}) {
+ confirmContinueWithUnsavedChanges(warehouse, routeName) {
return this.modalsManager.confirm({
- title: 'Continue Without Saving?',
- body: 'Unsaved changes to this warehouse will be lost. Click continue to proceed.',
- acceptButtonText: 'Continue without saving',
- confirm: () => {
+ title: this.intl.t('common.continue-without-saving'),
+ body: this.intl.t('common.continue-without-saving-prompt', { resource: 'Warehouse' }),
+ acceptButtonText: this.intl.t('common.continue'),
+ confirm: async () => {
warehouse.rollbackAttributes();
- return this.transitionToRoute('warehouses.index.details', warehouse);
+ await this.hostRouter.transitionTo(routeName, warehouse);
},
- ...options,
});
}
}
diff --git a/addon/controllers/warehouses/index/new.js b/addon/controllers/warehouses/index/new.js
index af941fa7..6c55b18d 100644
--- a/addon/controllers/warehouses/index/new.js
+++ b/addon/controllers/warehouses/index/new.js
@@ -2,95 +2,40 @@ import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
+import { task } from 'ember-concurrency';
export default class WarehousesIndexNewController extends Controller {
- /**
- * Inject the `store` service
- *
- * @memberof WarehousesIndexNewController
- */
- @service store;
-
- /**
- * Inject the `hostRouter` service
- *
- * @memberof WarehousesIndexNewController
- */
+ @service warehouseActions;
@service hostRouter;
+ @service intl;
+ @service notifications;
+ @service events;
- /**
- * Inject the `hostRouter` service
- *
- * @memberof WarehousesIndexNewController
- */
- @service modalsManager;
-
- /**
- * The overlay component context.
- *
- * @memberof WarehousesIndexNewController
- */
@tracked overlay;
-
- /**
- * The warehouse being created.
- *
- * @var {PlaceModel}
- */
- @tracked warehouse = this.store.createRecord('warehouse', {
- type: 'pallet-warehouse',
- status: 'active',
- meta: {},
- });
-
- /**
- * Set the overlay component context object.
- *
- * @param {OverlayContext} overlay
- * @memberof WarehousesIndexNewController
- */
- @action setOverlayContext(overlay) {
- this.overlay = overlay;
- }
-
- /**
- * When exiting the overlay.
- *
- * @return {Transition}
- * @memberof WarehousesIndexNewController
- */
- @action transitionBack() {
- return this.transitionToRoute('warehouses.index');
- }
-
- /**
- * Trigger a route refresh and focus the new warehouse created.
- *
- * @param {warehouseModel} warehouse
- * @return {Promise}
- * @memberof WarehousesIndexNewController
- */
- @action onAfterSave(warehouse) {
- if (this.overlay) {
- this.overlay.close();
- }
-
- this.hostRouter.refresh();
- return this.transitionToRoute('warehouses.index.details', warehouse).then(() => {
+ @tracked warehouse = this.warehouseActions.createNewInstance();
+
+ @task *save(warehouse) {
+ try {
+ yield warehouse.save();
+ this.events.trackResourceCreated(warehouse);
+ this.overlay?.close();
+
+ yield this.hostRouter.refresh();
+ yield this.hostRouter.transitionTo('console.pallet.facilities.warehouses.index.details', warehouse);
+ this.notifications.success(
+ this.intl.t('common.resource-created-success-name', {
+ resource: 'Warehouse',
+ resourceName: warehouse.name,
+ })
+ );
this.resetForm();
- });
+ } catch (error) {
+ this.notifications.serverError(error);
+ }
}
- /**
- * Resets the form with a new warehouse record
- *
- * @memberof WarehousesIndexNewController
- */
+ @action
resetForm() {
- this.warehouse = this.store.createRecord('warehouse', {
- type: 'pallet-warehouse',
- status: 'active',
- meta: {},
- });
+ this.warehouse = this.warehouseActions.createNewInstance();
}
}
diff --git a/addon/engine.js b/addon/engine.js
index afbe46fa..39118cd4 100644
--- a/addon/engine.js
+++ b/addon/engine.js
@@ -2,12 +2,9 @@ import Engine from '@ember/engine';
import loadInitializers from 'ember-load-initializers';
import Resolver from 'ember-resolver';
import config from './config/environment';
-import services from '@fleetbase/ember-core/exports/services';
-import AdminProductCategoryComponent from './components/admin/product-category';
+import { services, externalRoutes } from '@fleetbase/ember-core/exports';
const { modulePrefix } = config;
-const externalRoutes = ['console', 'extensions'];
-
export default class PalletEngine extends Engine {
modulePrefix = modulePrefix;
Resolver = Resolver;
@@ -15,25 +12,6 @@ export default class PalletEngine extends Engine {
services,
externalRoutes,
};
- setupExtension = function (app, engine, universe) {
- // register menu item in header
- universe.registerHeaderMenuItem('Pallet', 'console.pallet', { icon: 'pallet', priority: 1 });
-
- // register admin settings -- create a pallet menu panel with it's own setting options
- universe.registerAdminMenuPanel(
- 'Pallet Config',
- [
- {
- title: 'Product Category',
- icon: 'eye',
- component: AdminProductCategoryComponent,
- },
- ],
- {
- slug: 'pallet',
- }
- );
- };
}
loadInitializers(PalletEngine, modulePrefix);
diff --git a/addon/extension.js b/addon/extension.js
new file mode 100644
index 00000000..71ef7d96
--- /dev/null
+++ b/addon/extension.js
@@ -0,0 +1,106 @@
+import { Widget, ExtensionComponent } from '@fleetbase/ember-core/contracts';
+
+export default {
+ setupExtension(app, universe) {
+ const menuService = universe.getService('universe/menu-service');
+ const widgetService = universe.getService('universe/widget-service');
+
+ // Register header navigation
+ menuService.registerHeaderMenuItem('Pallet', 'console.pallet', { icon: 'pallet', priority: 1 });
+
+ // Register dashboard and widgets
+ this.registerWidgets(widgetService);
+ },
+
+ registerWidgets(widgetService) {
+ const widgets = [
+ new Widget({
+ id: 'pallet-inventory-summary',
+ name: 'Inventory Summary',
+ description: 'Overview of total SKUs, total stock units, and inventory value across all warehouses',
+ icon: 'boxes-stacked',
+ component: new ExtensionComponent('@fleetbase/pallet-engine', 'widget/inventory-summary'),
+ grid_options: { w: 12, h: 6, minW: 8, minH: 5 },
+ options: { title: 'Inventory Summary' },
+ default: true,
+ }),
+
+ new Widget({
+ id: 'pallet-low-stock',
+ name: 'Low Stock Alerts',
+ description: 'Products that have fallen at or below their minimum stock threshold',
+ icon: 'triangle-exclamation',
+ component: new ExtensionComponent('@fleetbase/pallet-engine', 'widget/low-stock'),
+ grid_options: { w: 6, h: 8, minW: 4, minH: 6 },
+ options: { title: 'Low Stock Alerts' },
+ default: true,
+ }),
+
+ new Widget({
+ id: 'pallet-po-status',
+ name: 'Purchase Order Status',
+ description: 'Breakdown of purchase orders by status - pending, partially received, and fully received',
+ icon: 'truck-ramp-box',
+ component: new ExtensionComponent('@fleetbase/pallet-engine', 'widget/po-status'),
+ grid_options: { w: 6, h: 8, minW: 4, minH: 6 },
+ options: { title: 'Purchase Order Status' },
+ default: true,
+ }),
+
+ new Widget({
+ id: 'pallet-so-status',
+ name: 'Sales Order Status',
+ description: 'Breakdown of sales orders by status - pending, partially fulfilled, and fully fulfilled',
+ icon: 'file-invoice',
+ component: new ExtensionComponent('@fleetbase/pallet-engine', 'widget/so-status'),
+ grid_options: { w: 6, h: 8, minW: 4, minH: 6 },
+ options: { title: 'Sales Order Status' },
+ default: true,
+ }),
+
+ new Widget({
+ id: 'pallet-recent-activity',
+ name: 'Recent Activity',
+ description: 'Latest operational audit trail events - stock adjustments, receipts, fulfillments, and cycle counts',
+ icon: 'clock-rotate-left',
+ component: new ExtensionComponent('@fleetbase/pallet-engine', 'widget/recent-activity'),
+ grid_options: { w: 6, h: 8, minW: 4, minH: 6 },
+ options: { title: 'Recent Activity' },
+ default: true,
+ }),
+
+ new Widget({
+ id: 'pallet-stock-value',
+ name: 'Stock Value by Warehouse',
+ description: 'Total inventory value broken down per warehouse',
+ icon: 'chart-bar',
+ component: new ExtensionComponent('@fleetbase/pallet-engine', 'widget/stock-value'),
+ grid_options: { w: 8, h: 7, minW: 6, minH: 5 },
+ options: { title: 'Stock Value by Warehouse' },
+ }),
+
+ new Widget({
+ id: 'pallet-expiring-stock',
+ name: 'Expiring Stock',
+ description: 'Inventory batches that are expiring within the next 30 days',
+ icon: 'calendar-xmark',
+ component: new ExtensionComponent('@fleetbase/pallet-engine', 'widget/expiring-stock'),
+ grid_options: { w: 6, h: 7, minW: 4, minH: 5 },
+ options: { title: 'Expiring Stock' },
+ }),
+
+ new Widget({
+ id: 'pallet-top-products',
+ name: 'Top Products by Movement',
+ description: 'Most frequently moved products based on stock transactions',
+ icon: 'arrow-trend-up',
+ component: new ExtensionComponent('@fleetbase/pallet-engine', 'widget/top-products'),
+ grid_options: { w: 6, h: 7, minW: 4, minH: 5 },
+ options: { title: 'Top Products by Movement' },
+ }),
+ ];
+
+ widgetService.registerDashboard('pallet');
+ widgetService.registerWidgets('pallet', widgets);
+ },
+};
diff --git a/addon/helpers/point-coordinates.js b/addon/helpers/point-coordinates.js
deleted file mode 100644
index 6be3ae2f..00000000
--- a/addon/helpers/point-coordinates.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { helper } from '@ember/component/helper';
-import Point from '../utils/geojson/point';
-
-export default helper(function pointCoordinates([point]) {
- if (point instanceof Point) {
- return `${point.coordinates[1]} ${point.coordinates[0]}`;
- }
-
- return 'Invalid coordinates';
-});
diff --git a/addon/helpers/point-to-coordinates.js b/addon/helpers/point-to-coordinates.js
deleted file mode 100644
index f1cfd006..00000000
--- a/addon/helpers/point-to-coordinates.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import { helper } from '@ember/component/helper';
-import extractCoordinates from '../utils/extract-coordinates';
-
-export default helper(function pointToCoordinates([point, format = 'array']) {
- const [latitude, longitude] = extractCoordinates(point?.coordinates);
-
- if (format === 'array') {
- return [latitude, longitude];
- }
-
- if (format === 'latitudelongitude') {
- return { latitude, longitude };
- }
-
- if (format === 'latlng') {
- return {
- lat: latitude,
- lng: longitude,
- };
- }
-
- if (format === 'xy') {
- return {
- x: latitude,
- y: longitude,
- };
- }
-});
diff --git a/addon/models/audit.js b/addon/models/audit.js
index a685f18b..b5baafe4 100644
--- a/addon/models/audit.js
+++ b/addon/models/audit.js
@@ -1,3 +1,119 @@
-import Model from '@ember-data/model';
+import Model, { attr, belongsTo } from '@ember-data/model';
+import { computed } from '@ember/object';
+import { format as formatDate, isValid as isValidDate, formatDistanceToNow } from 'date-fns';
-export default class AuditModel extends Model {}
+/**
+ * AuditModel represents a Pallet WMS operational audit event.
+ *
+ * This is NOT a generic CRUD log — that is handled by Spatie Activity Log.
+ * This model captures intentional, business-significant warehouse events such as:
+ * - Stock adjustments
+ * - Cycle count completions / approvals
+ * - Purchase order receipts
+ * - Sales order fulfilments
+ * - Stock transfer completions
+ *
+ * The audit trail is immutable — records are created programmatically by WMS
+ * models and services, never by direct user API calls.
+ */
+export default class AuditModel extends Model {
+ /** @ids */
+ @attr('string') uuid;
+ @attr('string') public_id;
+ @attr('string') company_uuid;
+ @attr('string') performed_by_uuid;
+ @attr('string') auditable_uuid;
+ @attr('string') auditable_type;
+ @attr('string') subject_uuid;
+ @attr('string') subject_type;
+ @attr('string') subject_label;
+
+ /** @relationships */
+ @belongsTo('user') performedBy;
+
+ /** @attributes */
+ @attr('string') event_type;
+ @attr('string') action;
+ @attr('string') type;
+ @attr('string') reason;
+ @attr('string') comments;
+ @attr('raw') meta;
+
+ /** @dates */
+ @attr('date') scheduled_at;
+ @attr('date') completed_at;
+ @attr('date') created_at;
+ @attr('date') updated_at;
+
+ /** @computed */
+
+ /**
+ * Returns a human-readable label for the event type.
+ * Maps the snake_case event_type constant to a display string.
+ */
+ @computed('event_type') get eventTypeLabel() {
+ const labels = {
+ stock_adjustment: 'Stock Adjustment',
+ cycle_count: 'Cycle Count',
+ po_received: 'PO Received',
+ so_fulfilled: 'SO Fulfilled',
+ stock_transfer: 'Stock Transfer',
+ inventory_created: 'Inventory Received',
+ batch_created: 'Batch Created',
+ };
+ return labels[this.event_type] || (this.event_type ? this.event_type.replace(/_/g, ' ') : '—');
+ }
+
+ /**
+ * Returns the short class name of the subject model.
+ * e.g. "Fleetbase\Pallet\Models\Inventory" → "Inventory"
+ */
+ @computed('subject_label', 'auditable_type', 'subject_type') get subjectLabel() {
+ if (this.subject_label) {
+ return this.subject_label;
+ }
+
+ const type = this.auditable_type || this.subject_type;
+ if (!type) {
+ return null;
+ }
+ const parts = type.split('\\');
+ return parts[parts.length - 1];
+ }
+
+ /**
+ * Returns a badge colour class based on the event type for use in the UI.
+ */
+ @computed('event_type') get eventTypeBadgeClass() {
+ const colours = {
+ stock_adjustment: 'bg-yellow-100 text-yellow-800',
+ cycle_count: 'bg-blue-100 text-blue-800',
+ po_received: 'bg-green-100 text-green-800',
+ so_fulfilled: 'bg-purple-100 text-purple-800',
+ stock_transfer: 'bg-indigo-100 text-indigo-800',
+ inventory_created: 'bg-teal-100 text-teal-800',
+ };
+ return colours[this.event_type] || 'bg-gray-100 text-gray-800';
+ }
+
+ @computed('created_at') get createdAgo() {
+ if (!isValidDate(this.created_at)) {
+ return null;
+ }
+ return formatDistanceToNow(this.created_at, { addSuffix: true });
+ }
+
+ @computed('created_at') get createdAt() {
+ if (!isValidDate(this.created_at)) {
+ return null;
+ }
+ return formatDate(this.created_at, 'PPP p');
+ }
+
+ @computed('created_at') get createdAtShort() {
+ if (!isValidDate(this.created_at)) {
+ return null;
+ }
+ return formatDate(this.created_at, 'PP');
+ }
+}
diff --git a/addon/models/batch.js b/addon/models/batch.js
index 4c45cb2b..4a50ac1b 100644
--- a/addon/models/batch.js
+++ b/addon/models/batch.js
@@ -9,11 +9,13 @@ export default class BatchModel extends Model {
@attr('string') company_uuid;
@attr('string') created_by_uuid;
@attr('string') product_uuid;
+ @attr('string') variant_uuid;
/** @relationships */
@belongsTo('company') company;
@belongsTo('user') createdBy;
@belongsTo('pallet-product') product;
+ @belongsTo('pallet-product-variant') variant;
/** @attributes */
@attr('string') batch_number;
diff --git a/addon/models/inventory.js b/addon/models/inventory.js
index 04b322c5..25a68ab3 100644
--- a/addon/models/inventory.js
+++ b/addon/models/inventory.js
@@ -9,23 +9,35 @@ export default class InventoryModel extends Model {
@attr('string') company_uuid;
@attr('string') created_by_uuid;
@attr('string') product_uuid;
+ @attr('string') variant_uuid;
@attr('string') warehouse_uuid;
@attr('string') supplier_uuid;
@attr('string') batch_uuid;
+ @attr('string') bin_location_uuid;
+ @attr('string') zone_uuid;
/** @relationships */
@belongsTo('company') company;
@belongsTo('user') createdBy;
@belongsTo('pallet-product') product;
+ @belongsTo('pallet-product-variant') variant;
@belongsTo('warehouse') warehouse;
- @belongsTo('vendor') supplier;
+ @belongsTo('supplier') supplier;
@belongsTo('batch') batch;
/** @attributes */
+ @attr('string') status;
+ @attr('string') lot_number;
+ @attr('string') serial_number;
+ @attr('string') uom;
@attr('string') comments;
@attr('number') quantity;
+ @attr('number') reserved_quantity;
+ @attr('number') available_quantity;
@attr('number') min_quantity;
- @attr('number') status;
+ @attr('number') max_quantity;
+ @attr('number') reorder_point;
+ @attr('number') unit_cost;
@attr('raw') meta;
/** @date */
@@ -33,6 +45,8 @@ export default class InventoryModel extends Model {
@attr('date') updated_at;
@attr('date') expiry_date_at;
@attr('date') manufactured_date_at;
+ @attr('date') received_at;
+ @attr('date') last_counted_at;
/** @computed */
@computed('created_at') get createdAgo() {
@@ -81,7 +95,31 @@ export default class InventoryModel extends Model {
if (!isValidDate(this.expiry_date_at)) {
return null;
}
-
return formatDate(this.expiry_date_at, 'yyyy-MM-dd');
}
+
+ @computed('received_at') get receivedAt() {
+ if (!isValidDate(this.received_at)) {
+ return null;
+ }
+ return formatDate(this.received_at, 'PPP p');
+ }
+
+ @computed('last_counted_at') get lastCountedAt() {
+ if (!isValidDate(this.last_counted_at)) {
+ return null;
+ }
+ return formatDate(this.last_counted_at, 'PPP p');
+ }
+
+ @computed('quantity', 'min_quantity') get isLowStock() {
+ return this.quantity !== null && this.min_quantity !== null && this.quantity <= this.min_quantity;
+ }
+
+ @computed('expiry_date_at') get isExpired() {
+ if (!isValidDate(this.expiry_date_at)) {
+ return false;
+ }
+ return new Date() > this.expiry_date_at;
+ }
}
diff --git a/addon/models/pallet-product-variant.js b/addon/models/pallet-product-variant.js
new file mode 100644
index 00000000..ac9dcf11
--- /dev/null
+++ b/addon/models/pallet-product-variant.js
@@ -0,0 +1,33 @@
+import Model, { attr, belongsTo } from '@ember-data/model';
+
+export default class PalletProductVariantModel extends Model {
+ /** @ids */
+ @attr('string') uuid;
+ @attr('string') public_id;
+ @attr('string') company_uuid;
+ @attr('string') created_by_uuid;
+ @attr('string') product_uuid;
+
+ /** @relationships */
+ @belongsTo('pallet-product', { async: false }) product;
+
+ /** @attributes */
+ @attr('string') name;
+ @attr('string') display_name;
+ @attr('string') sku;
+ @attr('string') barcode;
+ @attr('raw') option_values;
+ @attr('string') currency;
+ @attr('number') unit_cost;
+ @attr('number') unit_price;
+ @attr('number') sale_price;
+ @attr('number') declared_value;
+ @attr('number') weight;
+ @attr('string') weight_unit;
+ @attr('number') total_stock;
+ @attr('number') available_stock;
+ @attr('string') status;
+ @attr('raw') meta;
+ @attr('date') created_at;
+ @attr('date') updated_at;
+}
diff --git a/addon/models/pallet-product.js b/addon/models/pallet-product.js
index 018b5ab4..fc4a6423 100644
--- a/addon/models/pallet-product.js
+++ b/addon/models/pallet-product.js
@@ -1,7 +1,98 @@
-import EntityModel from '@fleetbase/fleetops-data/models/entity';
-import { hasMany } from '@ember-data/model';
+import Model, { attr, belongsTo, hasMany } from '@ember-data/model';
+import { computed } from '@ember/object';
+import { format as formatDate, isValid as isValidDate, formatDistanceToNow } from 'date-fns';
+
+export default class PalletProductModel extends Model {
+ /** @ids */
+ @attr('string') uuid;
+ @attr('string') public_id;
+ @attr('string') company_uuid;
+ @attr('string') created_by_uuid;
+ @attr('string') category_uuid;
+ @attr('string') supplier_uuid;
+ @attr('string') photo_uuid;
-export default class PalletProductModel extends EntityModel {
/** @relationships */
+ @belongsTo('supplier') supplier;
+ @hasMany('pallet-product-variant', { async: false }) variants;
@hasMany('file') files;
+
+ /** @attributes */
+ @attr('string') internal_id;
+ @attr('string') name;
+ @attr('string') description;
+ @attr('string') sku;
+ @attr('string') barcode;
+ @attr('string') currency;
+ @attr('number') unit_cost;
+ @attr('number') unit_price;
+ @attr('number') sale_price;
+ @attr('number') declared_value;
+ @attr('number') weight;
+ @attr('string') weight_unit;
+ @attr('number') length;
+ @attr('number') width;
+ @attr('number') height;
+ @attr('string') dimensions_unit;
+ @attr('raw') dimensions;
+ @attr('boolean') has_variants;
+ @attr('number') variant_count;
+ @attr('boolean') is_serialized;
+ @attr('boolean') is_lot_tracked;
+ @attr('boolean') is_kit;
+ @attr('boolean') is_perishable;
+ @attr('boolean') requires_quality_check;
+ @attr('number') reorder_point;
+ @attr('number') reorder_quantity;
+ @attr('number') shelf_life_days;
+ @attr('number') total_stock;
+ @attr('number') available_stock;
+ @attr('string') status;
+ @attr('string') slug;
+ @attr('string') photo_url;
+ @attr('raw') meta;
+ @attr('date') created_at;
+ @attr('date') updated_at;
+
+ @computed('created_at') get createdAt() {
+ if (!isValidDate(this.created_at)) {
+ return null;
+ }
+ return formatDate(this.created_at, 'PPP p');
+ }
+
+ @computed('created_at') get createdAtShort() {
+ if (!isValidDate(this.created_at)) {
+ return null;
+ }
+ return formatDate(this.created_at, 'PP');
+ }
+
+ @computed('created_at') get createdAgo() {
+ if (!isValidDate(this.created_at)) {
+ return null;
+ }
+ return formatDistanceToNow(this.created_at);
+ }
+
+ @computed('updated_at') get updatedAt() {
+ if (!isValidDate(this.updated_at)) {
+ return null;
+ }
+ return formatDate(this.updated_at, 'PPP p');
+ }
+
+ @computed('updated_at') get updatedAtShort() {
+ if (!isValidDate(this.updated_at)) {
+ return null;
+ }
+ return formatDate(this.updated_at, 'PP');
+ }
+
+ @computed('updated_at') get updatedAgo() {
+ if (!isValidDate(this.updated_at)) {
+ return null;
+ }
+ return formatDistanceToNow(this.updated_at);
+ }
}
diff --git a/addon/models/purchase-order-item.js b/addon/models/purchase-order-item.js
new file mode 100644
index 00000000..497adb9c
--- /dev/null
+++ b/addon/models/purchase-order-item.js
@@ -0,0 +1,77 @@
+import Model, { attr, belongsTo } from '@ember-data/model';
+import { computed } from '@ember/object';
+
+export default class PurchaseOrderItemModel extends Model {
+ /** @ids */
+ @attr('string') public_id;
+ @attr('string') purchase_order_uuid;
+ @attr('string') product_uuid;
+ @attr('string') variant_uuid;
+ @attr('string') warehouse_uuid;
+
+ /** @relationships */
+ @belongsTo('pallet-product', { async: false }) product;
+ @belongsTo('pallet-product-variant', { async: false }) variant;
+ @belongsTo('pallet-warehouse', { async: false }) warehouse;
+
+ /** @quantities */
+ @attr('number') quantity;
+ @attr('number') quantity_received;
+ @attr('number') outstanding_quantity;
+
+ /** @pricing */
+ @attr('string') currency;
+ @attr('number') unit_price;
+ @attr('number') unit_cost;
+ @attr('number') total_price;
+
+ /** @tracking */
+ @attr('string') unit_of_measure;
+ @attr('string') sku;
+ @attr('string') lot_number;
+ @attr('string') serial_number;
+ @attr('date') expiry_date;
+
+ /** @status */
+ @attr('string') status;
+
+ /** @meta */
+ @attr('string') notes;
+ @attr() meta;
+
+ /** @dates */
+ @attr('date') received_at;
+ @attr('date') created_at;
+ @attr('date') updated_at;
+
+ /**
+ * The display name for this line item — uses the product name if loaded,
+ * falls back to the SKU, then the public_id.
+ *
+ * @type {String}
+ */
+ @computed('product.name', 'variant.display_name', 'sku', 'public_id')
+ get displayName() {
+ return this.variant?.display_name ?? this.product?.name ?? this.sku ?? this.public_id;
+ }
+
+ /**
+ * Returns true when the item has been fully received.
+ *
+ * @type {Boolean}
+ */
+ @computed('quantity', 'quantity_received')
+ get isFullyReceived() {
+ return this.quantity_received >= this.quantity;
+ }
+
+ /**
+ * Returns true when the item is only partially received.
+ *
+ * @type {Boolean}
+ */
+ @computed('status')
+ get isPartial() {
+ return this.status === 'partial';
+ }
+}
diff --git a/addon/models/purchase-order.js b/addon/models/purchase-order.js
index 51c63ae3..b9b63307 100644
--- a/addon/models/purchase-order.js
+++ b/addon/models/purchase-order.js
@@ -1,4 +1,4 @@
-import Model, { attr, belongsTo } from '@ember-data/model';
+import Model, { attr, belongsTo, hasMany } from '@ember-data/model';
import { computed } from '@ember/object';
import { format as formatDate, isValid as isValidDate, formatDistanceToNow } from 'date-fns';
@@ -16,21 +16,27 @@ export default class PurchaseOrderModel extends Model {
/** @relationships */
@belongsTo('company') company;
@belongsTo('user') createdBy;
- @belongsTo('vendor') supplier;
+ @belongsTo('supplier') supplier;
@belongsTo('transaction') transaction;
@belongsTo('user') assignedTo;
@belongsTo('contact') pointOfContact;
+ @hasMany('purchase-order-item', { async: false }) items;
/** @attributes */
+ @attr('string') order_number;
+ @attr('number') item_count;
+ @attr('number') total_value;
@attr('string') reference_code;
@attr('string') reference_url;
+ @attr('string') customer_reference_code;
@attr('string') description;
@attr('string') comments;
@attr('string') currency;
@attr('string') status;
+ @attr('raw') meta;
/** @date */
- @attr('date') order_created_at;
+ @attr('date') order_date_at;
@attr('date') expected_delivery_at;
@attr('date') created_at;
@attr('date') updated_at;
@@ -85,7 +91,13 @@ export default class PurchaseOrderModel extends Model {
if (!isValidDate(this.expected_delivery_at)) {
return null;
}
-
return formatDate(this.expected_delivery_at, 'yyyy-MM-dd');
}
+
+ @computed('order_date_at') get orderDate() {
+ if (!isValidDate(this.order_date_at)) {
+ return null;
+ }
+ return formatDate(this.order_date_at, 'PPP');
+ }
}
diff --git a/addon/models/sales-order-item.js b/addon/models/sales-order-item.js
new file mode 100644
index 00000000..29f8bf43
--- /dev/null
+++ b/addon/models/sales-order-item.js
@@ -0,0 +1,77 @@
+import Model, { attr, belongsTo } from '@ember-data/model';
+import { computed } from '@ember/object';
+
+export default class SalesOrderItemModel extends Model {
+ /** @ids */
+ @attr('string') public_id;
+ @attr('string') sales_order_uuid;
+ @attr('string') product_uuid;
+ @attr('string') variant_uuid;
+ @attr('string') warehouse_uuid;
+ @attr('string') inventory_uuid;
+
+ /** @relationships */
+ @belongsTo('pallet-product', { async: false }) product;
+ @belongsTo('pallet-product-variant', { async: false }) variant;
+ @belongsTo('pallet-warehouse', { async: false }) warehouse;
+ @belongsTo('inventory', { async: false }) inventory;
+
+ /** @quantities */
+ @attr('number') quantity;
+ @attr('number') quantity_fulfilled;
+ @attr('number') outstanding_quantity;
+
+ /** @pricing */
+ @attr('string') currency;
+ @attr('number') unit_price;
+ @attr('number') total_price;
+
+ /** @tracking */
+ @attr('string') unit_of_measure;
+ @attr('string') sku;
+ @attr('string') lot_number;
+ @attr('string') serial_number;
+
+ /** @status */
+ @attr('string') status;
+
+ /** @meta */
+ @attr('string') notes;
+ @attr() meta;
+
+ /** @dates */
+ @attr('date') fulfilled_at;
+ @attr('date') created_at;
+ @attr('date') updated_at;
+
+ /**
+ * The display name for this line item — uses the product name if loaded,
+ * falls back to the SKU, then the public_id.
+ *
+ * @type {String}
+ */
+ @computed('product.name', 'variant.display_name', 'sku', 'public_id')
+ get displayName() {
+ return this.variant?.display_name ?? this.product?.name ?? this.sku ?? this.public_id;
+ }
+
+ /**
+ * Returns true when the item has been fully fulfilled.
+ *
+ * @type {Boolean}
+ */
+ @computed('quantity', 'quantity_fulfilled')
+ get isFullyFulfilled() {
+ return this.quantity_fulfilled >= this.quantity;
+ }
+
+ /**
+ * Returns true when the item is only partially fulfilled.
+ *
+ * @type {Boolean}
+ */
+ @computed('status')
+ get isPartial() {
+ return this.status === 'partial';
+ }
+}
diff --git a/addon/models/sales-order.js b/addon/models/sales-order.js
index 4aa14530..60e36ee8 100644
--- a/addon/models/sales-order.js
+++ b/addon/models/sales-order.js
@@ -1,4 +1,4 @@
-import Model, { attr, belongsTo } from '@ember-data/model';
+import Model, { attr, belongsTo, hasMany } from '@ember-data/model';
import { computed } from '@ember/object';
import { format as formatDate, isValid as isValidDate, formatDistanceToNow } from 'date-fns';
@@ -18,23 +18,30 @@ export default class SalesOrderModel extends Model {
@belongsTo('user') createdBy;
@belongsTo('transaction') transaction;
@belongsTo('user') assignedTo;
- @belongsTo('vendor') supplier;
+ @belongsTo('supplier') supplier;
@belongsTo('contact') pointOfContact;
+ @hasMany('sales-order-item', { async: false }) items;
/** @attributes */
+ @attr('string') order_number;
+ @attr('number') item_count;
+ @attr('number') total_value;
@attr('string') status;
@attr('string') customer_reference_code;
@attr('string') reference_code;
@attr('string') reference_url;
@attr('string') description;
@attr('string') comments;
+ @attr('string') currency;
+ @attr('raw') meta;
+
+ /** @date */
@attr('date') order_date_at;
@attr('date') expected_delivery_at;
@attr('date') created_at;
@attr('date') updated_at;
/** @computed */
-
@computed('created_at') get createdAgo() {
if (!isValidDate(this.created_at)) {
return null;
@@ -81,7 +88,13 @@ export default class SalesOrderModel extends Model {
if (!isValidDate(this.expected_delivery_at)) {
return null;
}
-
return formatDate(this.expected_delivery_at, 'yyyy-MM-dd');
}
+
+ @computed('order_date_at') get orderDate() {
+ if (!isValidDate(this.order_date_at)) {
+ return null;
+ }
+ return formatDate(this.order_date_at, 'PPP');
+ }
}
diff --git a/addon/models/stock-adjustment.js b/addon/models/stock-adjustment.js
index 4e6ec3be..283f8049 100644
--- a/addon/models/stock-adjustment.js
+++ b/addon/models/stock-adjustment.js
@@ -9,12 +9,14 @@ export default class StockAdjustmentModel extends Model {
@attr('string') company_uuid;
@attr('string') created_by_uuid;
@attr('string') product_uuid;
+ @attr('string') variant_uuid;
@attr('string') assignee_uuid;
/** @relationships */
@belongsTo('company') company;
@belongsTo('user') createdBy;
@belongsTo('pallet-product') product;
+ @belongsTo('pallet-product-variant') variant;
/** @attributes */
@attr('string') type;
diff --git a/addon/models/warehouse.js b/addon/models/warehouse.js
index 6340782f..289368c5 100644
--- a/addon/models/warehouse.js
+++ b/addon/models/warehouse.js
@@ -1,7 +1,78 @@
-import PlaceModel from '@fleetbase/fleetops-data/models/place';
-import { hasMany } from '@ember-data/model';
+import Model, { attr, belongsTo, hasMany } from '@ember-data/model';
+import { computed } from '@ember/object';
-export default class WarehouseModel extends PlaceModel {
- @hasMany('warehouse-section') sections;
- @hasMany('warehouse-dock') docks;
+export default class WarehouseModel extends Model {
+ /** @ids */
+ @attr('string') public_id;
+ @attr('string') uuid;
+ @attr('string') company_uuid;
+ @attr('string') created_by_uuid;
+ @attr('string') place_uuid;
+ @attr('string') manager_uuid;
+
+ /** @relationships */
+ @belongsTo('place', { async: false }) place;
+
+ @hasMany('warehouse-section', { async: false }) sections;
+ @hasMany('warehouse-dock', { async: false }) docks;
+ @hasMany('warehouse-zone', { async: false }) zones;
+
+ /** @attributes */
+ @attr('string') name;
+ @attr('string') code;
+ @attr('string') type;
+ @attr('string') status;
+ @attr('number') capacity;
+ @attr('number') current_utilization;
+ @attr('number') utilization_percentage;
+ @attr('number') floor_area_sqm;
+ @attr('string') timezone;
+ @attr('string') phone;
+ @attr('string') email;
+ @attr('number') total_docks;
+ @attr('boolean') is_active;
+ @attr('boolean') is_default;
+ @attr() operating_hours;
+ @attr() meta;
+
+ /** @address fields (proxied from place) */
+ @attr('string') address;
+ @attr('string') address_html;
+ @attr('string') street1;
+ @attr('string') street2;
+ @attr('string') city;
+ @attr('string') province;
+ @attr('string') postal_code;
+ @attr('string') neighborhood;
+ @attr('string') district;
+ @attr('string') building;
+ @attr('string') country;
+ @attr('string') country_name;
+ @attr('number') latitude;
+ @attr('number') longitude;
+ @attr() location;
+
+ /** @computed */
+ @attr('number') total_zones;
+ @attr('number') total_bins;
+
+ /** @dates */
+ @attr('date') updated_at;
+ @attr('date') created_at;
+
+ @computed('name', 'code')
+ get displayName() {
+ if (this.code) {
+ return `${this.name} (${this.code})`;
+ }
+ return this.name;
+ }
+
+ @computed('capacity', 'current_utilization')
+ get utilizationPercentage() {
+ if (!this.capacity || this.capacity === 0) {
+ return 0;
+ }
+ return Math.round((this.current_utilization / this.capacity) * 100 * 100) / 100;
+ }
}
diff --git a/addon/routes.js b/addon/routes.js
index 3217c6b3..e78c4bc5 100644
--- a/addon/routes.js
+++ b/addon/routes.js
@@ -2,6 +2,33 @@ import buildRoutes from 'ember-engines/routes';
export default buildRoutes(function () {
this.route('home', { path: '/' });
+ this.route('catalog', function () {
+ this.route('products', function () {
+ this.route('index', { path: '/' }, function () {
+ this.route('new');
+ this.route('details', { path: '/:public_id' });
+ this.route('edit', { path: '/edit/:public_id' });
+ });
+ });
+ this.route('suppliers', function () {
+ this.route('index', { path: '/' }, function () {
+ this.route('new');
+ this.route('details', { path: '/:public_id' });
+ this.route('edit', { path: '/edit/:public_id' });
+ });
+ });
+ });
+ this.route('facilities', function () {
+ this.route('warehouses', function () {
+ this.route('index', { path: '/' }, function () {
+ this.route('new');
+ this.route('details', { path: '/:public_id' });
+ this.route('edit', { path: '/edit/:public_id' });
+ });
+ });
+ this.route('locations');
+ this.route('zones');
+ });
this.route('products', function () {
this.route('index', { path: '/' }, function () {
this.route('new');
@@ -12,6 +39,8 @@ export default buildRoutes(function () {
this.route('inventory', function () {
this.route('low-stock');
this.route('expired-stock');
+ this.route('batches');
+ this.route('adjustments');
this.route('index', { path: '/' }, function () {
this.route('new');
this.route('new-stock-adjustment');
@@ -33,6 +62,22 @@ export default buildRoutes(function () {
this.route('edit', { path: '/edit/:public_id' });
});
});
+ this.route('orders', function () {
+ this.route('sales-orders', function () {
+ this.route('index', { path: '/' }, function () {
+ this.route('new');
+ this.route('details', { path: '/:public_id' });
+ this.route('edit', { path: '/edit/:public_id' });
+ });
+ });
+ this.route('purchase-orders', function () {
+ this.route('index', { path: '/' }, function () {
+ this.route('new');
+ this.route('details', { path: '/:public_id' });
+ this.route('edit', { path: '/edit/:public_id' });
+ });
+ });
+ });
this.route('sales-orders', function () {
this.route('index', { path: '/' }, function () {
this.route('new');
@@ -47,7 +92,43 @@ export default buildRoutes(function () {
this.route('edit', { path: '/edit/:public_id' });
});
});
- this.route('batch', function () {});
- this.route('audits', function () {});
- this.route('reports', function () {});
+ this.route('operations', function () {
+ this.route('transfers');
+ this.route('cycle-counts');
+ this.route('pick-lists');
+ this.route('waves');
+ this.route('reservations');
+ });
+ this.route('analytics', function () {
+ this.route('audits', function () {
+ this.route('index', { path: '/' }, function () {
+ this.route('new');
+ this.route('details', { path: '/:public_id' });
+ this.route('edit', { path: '/edit/:public_id' });
+ });
+ });
+ this.route('reports', function () {
+ this.route('index', { path: '/' }, function () {
+ this.route('new');
+ this.route('details', { path: '/:public_id' }, function () {
+ this.route('index', { path: '/' });
+ this.route('result');
+ });
+ this.route('edit', { path: '/edit/:public_id' });
+ });
+ });
+ });
+ this.route('batch', function () {
+ this.route('index', { path: '/' });
+ });
+ this.route('audits', function () {
+ this.route('index', { path: '/' }, function () {
+ this.route('new');
+ this.route('details', { path: '/:public_id' });
+ this.route('edit', { path: '/edit/:public_id' });
+ });
+ });
+ this.route('reports', function () {
+ this.route('index', { path: '/' });
+ });
});
diff --git a/addon/routes/analytics/audits/index.js b/addon/routes/analytics/audits/index.js
new file mode 100644
index 00000000..89f0450d
--- /dev/null
+++ b/addon/routes/analytics/audits/index.js
@@ -0,0 +1 @@
+export { default } from '../../audits/index';
diff --git a/addon/routes/analytics/audits/index/details.js b/addon/routes/analytics/audits/index/details.js
new file mode 100644
index 00000000..4ec65ecf
--- /dev/null
+++ b/addon/routes/analytics/audits/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../audits/index/details';
diff --git a/addon/routes/analytics/audits/index/edit.js b/addon/routes/analytics/audits/index/edit.js
new file mode 100644
index 00000000..5006ad01
--- /dev/null
+++ b/addon/routes/analytics/audits/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../audits/index/edit';
diff --git a/addon/routes/analytics/audits/index/new.js b/addon/routes/analytics/audits/index/new.js
new file mode 100644
index 00000000..1837b8a6
--- /dev/null
+++ b/addon/routes/analytics/audits/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../audits/index/new';
diff --git a/addon/routes/analytics/reports/index.js b/addon/routes/analytics/reports/index.js
new file mode 100644
index 00000000..9814c4f0
--- /dev/null
+++ b/addon/routes/analytics/reports/index.js
@@ -0,0 +1,21 @@
+import Route from '@ember/routing/route';
+import { inject as service } from '@ember/service';
+
+export default class AnalyticsReportsIndexRoute extends Route {
+ @service store;
+
+ queryParams = {
+ page: { refreshModel: true },
+ limit: { refreshModel: true },
+ sort: { refreshModel: true },
+ query: { refreshModel: true },
+ name: { refreshModel: true },
+ public_id: { refreshModel: true },
+ created_at: { refreshModel: true },
+ updated_at: { refreshModel: true },
+ };
+
+ model(params) {
+ return this.store.query('report', { type: 'pallet', ...params });
+ }
+}
diff --git a/addon/routes/analytics/reports/index/details.js b/addon/routes/analytics/reports/index/details.js
new file mode 100644
index 00000000..3ea4895d
--- /dev/null
+++ b/addon/routes/analytics/reports/index/details.js
@@ -0,0 +1,24 @@
+import Route from '@ember/routing/route';
+import { inject as service } from '@ember/service';
+import { action } from '@ember/object';
+
+export default class AnalyticsReportsIndexDetailsRoute extends Route {
+ @service store;
+ @service notifications;
+ @service hostRouter;
+
+ @action error(error) {
+ this.notifications.serverError(error);
+ if (typeof error.message === 'string' && error.message.endsWith('not found')) {
+ return this.hostRouter.transitionTo('console.pallet.analytics.reports.index');
+ }
+ }
+
+ queryParams = {
+ view: { refreshModel: false },
+ };
+
+ model({ public_id }) {
+ return this.store.queryRecord('report', { public_id, type: 'pallet', single: true });
+ }
+}
diff --git a/addon/routes/analytics/reports/index/edit.js b/addon/routes/analytics/reports/index/edit.js
new file mode 100644
index 00000000..4192e24a
--- /dev/null
+++ b/addon/routes/analytics/reports/index/edit.js
@@ -0,0 +1,20 @@
+import Route from '@ember/routing/route';
+import { inject as service } from '@ember/service';
+import { action } from '@ember/object';
+
+export default class AnalyticsReportsIndexEditRoute extends Route {
+ @service store;
+ @service notifications;
+ @service hostRouter;
+
+ @action error(error) {
+ this.notifications.serverError(error);
+ if (typeof error.message === 'string' && error.message.endsWith('not found')) {
+ return this.hostRouter.transitionTo('console.pallet.analytics.reports.index');
+ }
+ }
+
+ model({ public_id }) {
+ return this.store.queryRecord('report', { public_id, type: 'pallet', single: true });
+ }
+}
diff --git a/addon/routes/analytics/reports/index/new.js b/addon/routes/analytics/reports/index/new.js
new file mode 100644
index 00000000..3bd42eb9
--- /dev/null
+++ b/addon/routes/analytics/reports/index/new.js
@@ -0,0 +1,3 @@
+import Route from '@ember/routing/route';
+
+export default class AnalyticsReportsIndexNewRoute extends Route {}
diff --git a/addon/routes/catalog/products/index.js b/addon/routes/catalog/products/index.js
new file mode 100644
index 00000000..42c5f5ac
--- /dev/null
+++ b/addon/routes/catalog/products/index.js
@@ -0,0 +1 @@
+export { default } from '../../products/index';
diff --git a/addon/routes/catalog/products/index/details.js b/addon/routes/catalog/products/index/details.js
new file mode 100644
index 00000000..3dc28e03
--- /dev/null
+++ b/addon/routes/catalog/products/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../products/index/details';
diff --git a/addon/routes/catalog/products/index/edit.js b/addon/routes/catalog/products/index/edit.js
new file mode 100644
index 00000000..d55397cf
--- /dev/null
+++ b/addon/routes/catalog/products/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../products/index/edit';
diff --git a/addon/routes/catalog/products/index/new.js b/addon/routes/catalog/products/index/new.js
new file mode 100644
index 00000000..a47a39d1
--- /dev/null
+++ b/addon/routes/catalog/products/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../products/index/new';
diff --git a/addon/routes/catalog/suppliers/index.js b/addon/routes/catalog/suppliers/index.js
new file mode 100644
index 00000000..d667da7d
--- /dev/null
+++ b/addon/routes/catalog/suppliers/index.js
@@ -0,0 +1 @@
+export { default } from '../../suppliers/index';
diff --git a/addon/routes/catalog/suppliers/index/details.js b/addon/routes/catalog/suppliers/index/details.js
new file mode 100644
index 00000000..98d1b5e5
--- /dev/null
+++ b/addon/routes/catalog/suppliers/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../suppliers/index/details';
diff --git a/addon/routes/catalog/suppliers/index/edit.js b/addon/routes/catalog/suppliers/index/edit.js
new file mode 100644
index 00000000..beda627d
--- /dev/null
+++ b/addon/routes/catalog/suppliers/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../suppliers/index/edit';
diff --git a/addon/routes/catalog/suppliers/index/new.js b/addon/routes/catalog/suppliers/index/new.js
new file mode 100644
index 00000000..40190ff9
--- /dev/null
+++ b/addon/routes/catalog/suppliers/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../suppliers/index/new';
diff --git a/addon/routes/facilities/locations.js b/addon/routes/facilities/locations.js
new file mode 100644
index 00000000..3af9dabf
--- /dev/null
+++ b/addon/routes/facilities/locations.js
@@ -0,0 +1,3 @@
+import Route from '@ember/routing/route';
+
+export default class FacilitiesLocationsRoute extends Route {}
diff --git a/addon/routes/facilities/warehouses/index.js b/addon/routes/facilities/warehouses/index.js
new file mode 100644
index 00000000..17044cc7
--- /dev/null
+++ b/addon/routes/facilities/warehouses/index.js
@@ -0,0 +1 @@
+export { default } from '../../warehouses/index';
diff --git a/addon/routes/facilities/warehouses/index/details.js b/addon/routes/facilities/warehouses/index/details.js
new file mode 100644
index 00000000..360dc75a
--- /dev/null
+++ b/addon/routes/facilities/warehouses/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../warehouses/index/details';
diff --git a/addon/routes/facilities/warehouses/index/edit.js b/addon/routes/facilities/warehouses/index/edit.js
new file mode 100644
index 00000000..15f198ed
--- /dev/null
+++ b/addon/routes/facilities/warehouses/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../warehouses/index/edit';
diff --git a/addon/routes/facilities/warehouses/index/new.js b/addon/routes/facilities/warehouses/index/new.js
new file mode 100644
index 00000000..8ba85beb
--- /dev/null
+++ b/addon/routes/facilities/warehouses/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../warehouses/index/new';
diff --git a/addon/routes/facilities/zones.js b/addon/routes/facilities/zones.js
new file mode 100644
index 00000000..8d4fc7f6
--- /dev/null
+++ b/addon/routes/facilities/zones.js
@@ -0,0 +1,3 @@
+import Route from '@ember/routing/route';
+
+export default class FacilitiesZonesRoute extends Route {}
diff --git a/addon/routes/inventory/adjustments.js b/addon/routes/inventory/adjustments.js
new file mode 100644
index 00000000..c17b0aea
--- /dev/null
+++ b/addon/routes/inventory/adjustments.js
@@ -0,0 +1,3 @@
+import Route from '@ember/routing/route';
+
+export default class InventoryAdjustmentsRoute extends Route {}
diff --git a/addon/routes/inventory/batches.js b/addon/routes/inventory/batches.js
new file mode 100644
index 00000000..9d1453b8
--- /dev/null
+++ b/addon/routes/inventory/batches.js
@@ -0,0 +1,3 @@
+import Route from '@ember/routing/route';
+
+export default class InventoryBatchesRoute extends Route {}
diff --git a/addon/routes/operations/cycle-counts.js b/addon/routes/operations/cycle-counts.js
new file mode 100644
index 00000000..18de5980
--- /dev/null
+++ b/addon/routes/operations/cycle-counts.js
@@ -0,0 +1,3 @@
+import Route from '@ember/routing/route';
+
+export default class OperationsCycleCountsRoute extends Route {}
diff --git a/addon/routes/operations/pick-lists.js b/addon/routes/operations/pick-lists.js
new file mode 100644
index 00000000..104b9156
--- /dev/null
+++ b/addon/routes/operations/pick-lists.js
@@ -0,0 +1,3 @@
+import Route from '@ember/routing/route';
+
+export default class OperationsPickListsRoute extends Route {}
diff --git a/addon/routes/operations/reservations.js b/addon/routes/operations/reservations.js
new file mode 100644
index 00000000..130aa06a
--- /dev/null
+++ b/addon/routes/operations/reservations.js
@@ -0,0 +1,3 @@
+import Route from '@ember/routing/route';
+
+export default class OperationsReservationsRoute extends Route {}
diff --git a/addon/routes/operations/transfers.js b/addon/routes/operations/transfers.js
new file mode 100644
index 00000000..49a5239b
--- /dev/null
+++ b/addon/routes/operations/transfers.js
@@ -0,0 +1,3 @@
+import Route from '@ember/routing/route';
+
+export default class OperationsTransfersRoute extends Route {}
diff --git a/addon/routes/operations/waves.js b/addon/routes/operations/waves.js
new file mode 100644
index 00000000..01c6c2f9
--- /dev/null
+++ b/addon/routes/operations/waves.js
@@ -0,0 +1,3 @@
+import Route from '@ember/routing/route';
+
+export default class OperationsWavesRoute extends Route {}
diff --git a/addon/routes/orders/purchase-orders/index.js b/addon/routes/orders/purchase-orders/index.js
new file mode 100644
index 00000000..0ef09286
--- /dev/null
+++ b/addon/routes/orders/purchase-orders/index.js
@@ -0,0 +1 @@
+export { default } from '../../purchase-orders/index';
diff --git a/addon/routes/orders/purchase-orders/index/details.js b/addon/routes/orders/purchase-orders/index/details.js
new file mode 100644
index 00000000..82326fce
--- /dev/null
+++ b/addon/routes/orders/purchase-orders/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../purchase-orders/index/details';
diff --git a/addon/routes/orders/purchase-orders/index/edit.js b/addon/routes/orders/purchase-orders/index/edit.js
new file mode 100644
index 00000000..56239eef
--- /dev/null
+++ b/addon/routes/orders/purchase-orders/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../purchase-orders/index/edit';
diff --git a/addon/routes/orders/purchase-orders/index/new.js b/addon/routes/orders/purchase-orders/index/new.js
new file mode 100644
index 00000000..d32a2a7c
--- /dev/null
+++ b/addon/routes/orders/purchase-orders/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../purchase-orders/index/new';
diff --git a/addon/routes/orders/sales-orders/index.js b/addon/routes/orders/sales-orders/index.js
new file mode 100644
index 00000000..afa349db
--- /dev/null
+++ b/addon/routes/orders/sales-orders/index.js
@@ -0,0 +1 @@
+export { default } from '../../sales-orders/index';
diff --git a/addon/routes/orders/sales-orders/index/details.js b/addon/routes/orders/sales-orders/index/details.js
new file mode 100644
index 00000000..ed64c1ba
--- /dev/null
+++ b/addon/routes/orders/sales-orders/index/details.js
@@ -0,0 +1 @@
+export { default } from '../../../sales-orders/index/details';
diff --git a/addon/routes/orders/sales-orders/index/edit.js b/addon/routes/orders/sales-orders/index/edit.js
new file mode 100644
index 00000000..dec8e1f5
--- /dev/null
+++ b/addon/routes/orders/sales-orders/index/edit.js
@@ -0,0 +1 @@
+export { default } from '../../../sales-orders/index/edit';
diff --git a/addon/routes/orders/sales-orders/index/new.js b/addon/routes/orders/sales-orders/index/new.js
new file mode 100644
index 00000000..4b2728c5
--- /dev/null
+++ b/addon/routes/orders/sales-orders/index/new.js
@@ -0,0 +1 @@
+export { default } from '../../../sales-orders/index/new';
diff --git a/addon/routes/reports/index.js b/addon/routes/reports/index.js
index 8a359dab..8e30cb60 100644
--- a/addon/routes/reports/index.js
+++ b/addon/routes/reports/index.js
@@ -1,3 +1 @@
-import Route from '@ember/routing/route';
-
-export default class ReportsIndexRoute extends Route {}
+export { default } from '../analytics/reports/index';
diff --git a/addon/serializers/audit.js b/addon/serializers/audit.js
new file mode 100644
index 00000000..8f49a662
--- /dev/null
+++ b/addon/serializers/audit.js
@@ -0,0 +1,17 @@
+import ApplicationSerializer from '@fleetbase/ember-core/serializers/application';
+import { EmbeddedRecordsMixin } from '@ember-data/serializer/rest';
+
+export default class AuditSerializer extends ApplicationSerializer.extend(EmbeddedRecordsMixin) {
+ /**
+ * Embedded relationship attributes.
+ * Only `performedBy` is embedded — the audit trail is immutable and has
+ * no `createdBy` distinction (the performer IS the creator).
+ *
+ * @var {Object}
+ */
+ get attrs() {
+ return {
+ performedBy: { embedded: 'always' },
+ };
+ }
+}
diff --git a/addon/serializers/pallet-product-variant.js b/addon/serializers/pallet-product-variant.js
new file mode 100644
index 00000000..f2a20abe
--- /dev/null
+++ b/addon/serializers/pallet-product-variant.js
@@ -0,0 +1,14 @@
+import ApplicationSerializer from '@fleetbase/ember-core/serializers/application';
+import { EmbeddedRecordsMixin } from '@ember-data/serializer/rest';
+
+export default class PalletProductVariantSerializer extends ApplicationSerializer.extend(EmbeddedRecordsMixin) {
+ payloadKeyFromModelName() {
+ return 'product_variant';
+ }
+
+ get attrs() {
+ return {
+ product: { embedded: 'always' },
+ };
+ }
+}
diff --git a/addon/serializers/pallet-product.js b/addon/serializers/pallet-product.js
index a677e950..6a0b37de 100644
--- a/addon/serializers/pallet-product.js
+++ b/addon/serializers/pallet-product.js
@@ -24,6 +24,7 @@ export default class PalletProductSerializer extends ApplicationSerializer.exten
get attrs() {
return {
supplier: { embedded: 'always' },
+ variants: { embedded: 'always' },
};
}
}
diff --git a/addon/serializers/purchase-order-item.js b/addon/serializers/purchase-order-item.js
new file mode 100644
index 00000000..e30bd1fd
--- /dev/null
+++ b/addon/serializers/purchase-order-item.js
@@ -0,0 +1,5 @@
+import ApplicationSerializer from '@fleetbase/ember-core/serializers/application';
+
+export default class PurchaseOrderItemSerializer extends ApplicationSerializer {
+ embedded = ['product', 'warehouse'];
+}
diff --git a/addon/serializers/purchase-order.js b/addon/serializers/purchase-order.js
index 6bcb95c1..00d4394a 100644
--- a/addon/serializers/purchase-order.js
+++ b/addon/serializers/purchase-order.js
@@ -10,6 +10,7 @@ export default class PurchaseOrderSerializer extends ApplicationSerializer.exten
get attrs() {
return {
supplier: { embedded: 'always' },
+ items: { embedded: 'always' },
};
}
}
diff --git a/addon/serializers/sales-order-item.js b/addon/serializers/sales-order-item.js
new file mode 100644
index 00000000..59a59d2c
--- /dev/null
+++ b/addon/serializers/sales-order-item.js
@@ -0,0 +1,5 @@
+import ApplicationSerializer from '@fleetbase/ember-core/serializers/application';
+
+export default class SalesOrderItemSerializer extends ApplicationSerializer {
+ embedded = ['product', 'warehouse', 'inventory'];
+}
diff --git a/addon/serializers/sales-order.js b/addon/serializers/sales-order.js
index 6171983c..25005a60 100644
--- a/addon/serializers/sales-order.js
+++ b/addon/serializers/sales-order.js
@@ -10,6 +10,7 @@ export default class SalesOrderSerializer extends ApplicationSerializer.extend(E
get attrs() {
return {
supplier: { embedded: 'always' },
+ items: { embedded: 'always' },
};
}
}
diff --git a/addon/serializers/warehouse.js b/addon/serializers/warehouse.js
index 3fef11b8..db18bc8f 100644
--- a/addon/serializers/warehouse.js
+++ b/addon/serializers/warehouse.js
@@ -9,8 +9,10 @@ export default class WarehouseSerializer extends ApplicationSerializer.extend(Em
*/
get attrs() {
return {
+ place: { embedded: 'always' },
sections: { embedded: 'always' },
docks: { embedded: 'always' },
+ zones: { embedded: 'always' },
};
}
}
diff --git a/addon/services/context-panel.js b/addon/services/context-panel.js
index 670a402a..9b2b6d2a 100644
--- a/addon/services/context-panel.js
+++ b/addon/services/context-panel.js
@@ -56,6 +56,10 @@ export default class ContextPanelService extends Service {
component: 'sales-order-form-panel',
componentArguments: [{ isResizable: true }, { width: '600px' }],
},
+ fulfilling: {
+ component: 'fulfill-sales-order-form-panel',
+ componentArguments: [{ isResizable: true }, { width: '720px' }],
+ },
},
purchaseOrder: {
viewing: {
@@ -66,6 +70,10 @@ export default class ContextPanelService extends Service {
component: 'purchase-order-form-panel',
componentArguments: [{ isResizable: true }, { width: '600px' }],
},
+ receiving: {
+ component: 'receive-purchase-order-form-panel',
+ componentArguments: [{ isResizable: true }, { width: '720px' }],
+ },
},
inventory: {
viewing: {
@@ -129,8 +137,6 @@ export default class ContextPanelService extends Service {
const modelName = getModelName(model);
const registry = this.registry[camelize(modelName)];
- console.log('[registry]', registry);
-
if (registry && registry[intent]) {
this.currentContext = model;
this.currentContextRegistry = registry[intent];
diff --git a/addon/services/product-actions.js b/addon/services/product-actions.js
new file mode 100644
index 00000000..25e141df
--- /dev/null
+++ b/addon/services/product-actions.js
@@ -0,0 +1,111 @@
+import ResourceActionService from '@fleetbase/ember-core/services/resource-action';
+
+export default class ProductActionsService extends ResourceActionService {
+ constructor() {
+ super(...arguments);
+
+ this.initialize('pallet-product', {
+ modelNamePath: 'name',
+ defaultAttributes: {
+ status: 'active',
+ has_variants: false,
+ },
+ fetchOptions: {
+ namespace: 'pallet/int/v1',
+ },
+ permissionPrefix: 'pallet',
+ mountPrefix: 'console.pallet',
+ });
+ }
+
+ transition = {
+ view: (product) => this.transitionTo('catalog.products.index.details', product),
+ edit: (product) => this.transitionTo('catalog.products.index.edit', product),
+ create: () => this.transitionTo('catalog.products.index.new'),
+ };
+
+ panel = {
+ create: (attributes = {}) => {
+ const product = this.createNewInstance(attributes);
+
+ return this.resourceContextPanel.open({
+ content: 'product/form',
+ title: 'Create a new product',
+ useDefaultSaveTask: true,
+ saveOptions: {
+ callback: this.refresh,
+ },
+ product,
+ });
+ },
+ edit: async (product) => {
+ if (product?.meta?._index_resource) {
+ await product.reload();
+ }
+
+ return this.resourceContextPanel.open({
+ content: 'product/form',
+ title: `Edit ${this.getRecordName(product)}`,
+ useDefaultSaveTask: true,
+ product,
+ });
+ },
+ view: async (product) => {
+ if (product?.meta?._index_resource) {
+ await product.reload();
+ }
+
+ return this.resourceContextPanel.open({
+ product,
+ tabs: [
+ {
+ label: 'Overview',
+ component: 'product/details',
+ },
+ ],
+ });
+ },
+ };
+
+ modal = {
+ create: (attributes = {}, options = {}, saveOptions = {}) => {
+ const product = this.createNewInstance(attributes);
+
+ return this.modalsManager.show('modals/resource', {
+ resource: product,
+ title: 'Create a new product',
+ acceptButtonText: 'Create Product',
+ component: 'product/form',
+ confirm: (modal) => this.modalTask.perform(modal, 'saveTask', product, { refresh: true, ...saveOptions }),
+ ...options,
+ });
+ },
+ edit: async (product, options = {}, saveOptions = {}) => {
+ if (product?.meta?._index_resource) {
+ await product.reload();
+ }
+
+ return this.modalsManager.show('modals/resource', {
+ resource: product,
+ title: `Edit ${this.getRecordName(product)}`,
+ acceptButtonText: 'Save Changes',
+ saveButtonIcon: 'save',
+ component: 'product/form',
+ confirm: (modal) => this.modalTask.perform(modal, 'saveTask', product, { refresh: true, ...saveOptions }),
+ ...options,
+ });
+ },
+ view: async (product, options = {}) => {
+ if (product?.meta?._index_resource) {
+ await product.reload();
+ }
+
+ return this.modalsManager.show('modals/resource', {
+ resource: product,
+ title: this.getRecordName(product),
+ component: 'product/details',
+ ...options,
+ });
+ },
+ };
+}
diff --git a/addon/services/report-actions.js b/addon/services/report-actions.js
new file mode 100644
index 00000000..b450038a
--- /dev/null
+++ b/addon/services/report-actions.js
@@ -0,0 +1,11 @@
+import ReportActionsBaseService from '@fleetbase/ember-core/services/report-actions';
+
+export default class ReportActionsService extends ReportActionsBaseService {
+ defaultAttributes = { type: 'pallet' };
+
+ transition = {
+ view: (report) => this.transitionTo('analytics.reports.index.details', report),
+ edit: (report) => this.transitionTo('analytics.reports.index.edit', report),
+ create: () => this.transitionTo('analytics.reports.index.new'),
+ };
+}
diff --git a/addon/services/supplier-actions.js b/addon/services/supplier-actions.js
new file mode 100644
index 00000000..98a4fa70
--- /dev/null
+++ b/addon/services/supplier-actions.js
@@ -0,0 +1,111 @@
+import ResourceActionService from '@fleetbase/ember-core/services/resource-action';
+
+export default class SupplierActionsService extends ResourceActionService {
+ constructor() {
+ super(...arguments);
+
+ this.initialize('supplier', {
+ modelNamePath: 'name',
+ defaultAttributes: {
+ status: 'active',
+ meta: {},
+ },
+ fetchOptions: {
+ namespace: 'pallet/int/v1',
+ },
+ permissionPrefix: 'pallet',
+ mountPrefix: 'console.pallet',
+ });
+ }
+
+ transition = {
+ view: (supplier) => this.transitionTo('catalog.suppliers.index.details', supplier),
+ edit: (supplier) => this.transitionTo('catalog.suppliers.index.edit', supplier),
+ create: () => this.transitionTo('catalog.suppliers.index.new'),
+ };
+
+ panel = {
+ create: (attributes = {}) => {
+ const supplier = this.createNewInstance(attributes);
+
+ return this.resourceContextPanel.open({
+ content: 'supplier/form',
+ title: 'Create a new supplier',
+ useDefaultSaveTask: true,
+ saveOptions: {
+ callback: this.refresh,
+ },
+ supplier,
+ });
+ },
+ edit: async (supplier) => {
+ if (supplier?.meta?._index_resource) {
+ await supplier.reload();
+ }
+
+ return this.resourceContextPanel.open({
+ content: 'supplier/form',
+ title: `Edit ${this.getRecordName(supplier)}`,
+ useDefaultSaveTask: true,
+ supplier,
+ });
+ },
+ view: async (supplier) => {
+ if (supplier?.meta?._index_resource) {
+ await supplier.reload();
+ }
+
+ return this.resourceContextPanel.open({
+ supplier,
+ tabs: [
+ {
+ label: 'Overview',
+ component: 'supplier/details',
+ },
+ ],
+ });
+ },
+ };
+
+ modal = {
+ create: (attributes = {}, options = {}, saveOptions = {}) => {
+ const supplier = this.createNewInstance(attributes);
+
+ return this.modalsManager.show('modals/resource', {
+ resource: supplier,
+ title: 'Create a new supplier',
+ acceptButtonText: 'Create Supplier',
+ component: 'supplier/form',
+ confirm: (modal) => this.modalTask.perform(modal, 'saveTask', supplier, { refresh: true, ...saveOptions }),
+ ...options,
+ });
+ },
+ edit: async (supplier, options = {}, saveOptions = {}) => {
+ if (supplier?.meta?._index_resource) {
+ await supplier.reload();
+ }
+
+ return this.modalsManager.show('modals/resource', {
+ resource: supplier,
+ title: `Edit ${this.getRecordName(supplier)}`,
+ acceptButtonText: 'Save Changes',
+ saveButtonIcon: 'save',
+ component: 'supplier/form',
+ confirm: (modal) => this.modalTask.perform(modal, 'saveTask', supplier, { refresh: true, ...saveOptions }),
+ ...options,
+ });
+ },
+ view: async (supplier, options = {}) => {
+ if (supplier?.meta?._index_resource) {
+ await supplier.reload();
+ }
+
+ return this.modalsManager.show('modals/resource', {
+ resource: supplier,
+ title: this.getRecordName(supplier),
+ component: 'supplier/details',
+ ...options,
+ });
+ },
+ };
+}
diff --git a/addon/services/warehouse-actions.js b/addon/services/warehouse-actions.js
new file mode 100644
index 00000000..5eae0114
--- /dev/null
+++ b/addon/services/warehouse-actions.js
@@ -0,0 +1,128 @@
+import ResourceActionService from '@fleetbase/ember-core/services/resource-action';
+import { action } from '@ember/object';
+
+export default class WarehouseActionsService extends ResourceActionService {
+ constructor() {
+ super(...arguments);
+
+ this.initialize('warehouse', {
+ modelNamePath: 'name',
+ defaultAttributes: {
+ type: 'pallet-warehouse',
+ status: 'active',
+ meta: {},
+ },
+ fetchOptions: {
+ namespace: 'pallet/int/v1',
+ },
+ permissionPrefix: 'pallet',
+ mountPrefix: 'console.pallet',
+ });
+ }
+
+ transition = {
+ view: (warehouse) => this.transitionTo('facilities.warehouses.index.details', warehouse),
+ edit: (warehouse) => this.transitionTo('facilities.warehouses.index.edit', warehouse),
+ create: () => this.transitionTo('facilities.warehouses.index.new'),
+ };
+
+ panel = {
+ create: (attributes = {}) => {
+ const warehouse = this.createNewInstance(attributes);
+
+ return this.resourceContextPanel.open({
+ content: 'warehouse/form',
+ title: 'Create a new warehouse',
+ useDefaultSaveTask: true,
+ saveOptions: {
+ callback: this.refresh,
+ },
+ warehouse,
+ });
+ },
+ edit: async (warehouse) => {
+ if (warehouse?.meta?._index_resource) {
+ await warehouse.reload();
+ }
+
+ return this.resourceContextPanel.open({
+ content: 'warehouse/form',
+ title: `Edit ${this.getRecordName(warehouse)}`,
+ useDefaultSaveTask: true,
+ warehouse,
+ });
+ },
+ view: async (warehouse) => {
+ if (warehouse?.meta?._index_resource) {
+ await warehouse.reload();
+ }
+
+ return this.resourceContextPanel.open({
+ warehouse,
+ tabs: [
+ {
+ label: 'Overview',
+ component: 'warehouse/details',
+ },
+ ],
+ });
+ },
+ };
+
+ modal = {
+ create: (attributes = {}, options = {}, saveOptions = {}) => {
+ const warehouse = this.createNewInstance(attributes);
+
+ return this.modalsManager.show('modals/resource', {
+ resource: warehouse,
+ title: 'Create a new warehouse',
+ acceptButtonText: 'Create Warehouse',
+ component: 'warehouse/form',
+ confirm: (modal) => this.modalTask.perform(modal, 'saveTask', warehouse, { refresh: true, ...saveOptions }),
+ ...options,
+ });
+ },
+ edit: async (warehouse, options = {}, saveOptions = {}) => {
+ if (warehouse?.meta?._index_resource) {
+ await warehouse.reload();
+ }
+
+ return this.modalsManager.show('modals/resource', {
+ resource: warehouse,
+ title: `Edit ${this.getRecordName(warehouse)}`,
+ acceptButtonText: 'Save Changes',
+ saveButtonIcon: 'save',
+ component: 'warehouse/form',
+ confirm: (modal) => this.modalTask.perform(modal, 'saveTask', warehouse, { refresh: true, ...saveOptions }),
+ ...options,
+ });
+ },
+ view: async (warehouse, options = {}) => {
+ if (warehouse?.meta?._index_resource) {
+ await warehouse.reload();
+ }
+
+ return this.modalsManager.show('modals/resource', {
+ resource: warehouse,
+ title: this.getRecordName(warehouse),
+ component: 'warehouse/details',
+ ...options,
+ });
+ },
+ };
+
+ @action locate(warehouse, options = {}) {
+ const { latitude, longitude, location } = warehouse;
+
+ return this.modalsManager.show('modals/point-map', {
+ title: `Location of ${warehouse.name}`,
+ acceptButtonText: 'Done',
+ hideDeclineButton: true,
+ resource: warehouse,
+ latitude,
+ longitude,
+ location: location ?? [latitude, longitude],
+ ...options,
+ });
+ }
+}
diff --git a/addon/templates/analytics/audits/index.hbs b/addon/templates/analytics/audits/index.hbs
new file mode 100644
index 00000000..18381986
--- /dev/null
+++ b/addon/templates/analytics/audits/index.hbs
@@ -0,0 +1,60 @@
+
+ <:subheader>
+
+
+
+
+ {{#if this.event_type}}
+ {{t "pallet.audit.filter_event_type"}}:
+ {{this.event_type}}
+ {{else}}
+ {{t "pallet.audit.all_events"}}
+ {{/if}}
+
+
+
+
+
+ {{#each this.eventTypeOptions as |opt|}}
+
+
+ {{opt.label}}
+
+
+ {{/each}}
+
+
+
+
+ {{#if (or this.event_type this.auditable_type this.query)}}
+
+
+ {{t "pallet.common.clear_filters"}}
+
+ {{/if}}
+
+
+
+
+{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/analytics/audits/index/details.hbs b/addon/templates/analytics/audits/index/details.hbs
new file mode 100644
index 00000000..3e2a3ba7
--- /dev/null
+++ b/addon/templates/analytics/audits/index/details.hbs
@@ -0,0 +1,2 @@
+{{page-title "Audit Details"}}
+{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/analytics/audits/index/edit.hbs b/addon/templates/analytics/audits/index/edit.hbs
new file mode 100644
index 00000000..27c60aa6
--- /dev/null
+++ b/addon/templates/analytics/audits/index/edit.hbs
@@ -0,0 +1,2 @@
+{{page-title "Edit Audit"}}
+{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/analytics/audits/index/new.hbs b/addon/templates/analytics/audits/index/new.hbs
new file mode 100644
index 00000000..74c43798
--- /dev/null
+++ b/addon/templates/analytics/audits/index/new.hbs
@@ -0,0 +1,2 @@
+{{page-title "New Audit"}}
+{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/analytics/reports/index.hbs b/addon/templates/analytics/reports/index.hbs
new file mode 100644
index 00000000..6d98b0c7
--- /dev/null
+++ b/addon/templates/analytics/reports/index.hbs
@@ -0,0 +1,15 @@
+
+{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/analytics/reports/index/details.hbs b/addon/templates/analytics/reports/index/details.hbs
new file mode 100644
index 00000000..df155e71
--- /dev/null
+++ b/addon/templates/analytics/reports/index/details.hbs
@@ -0,0 +1,15 @@
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/analytics/reports/index/details/index.hbs b/addon/templates/analytics/reports/index/details/index.hbs
new file mode 100644
index 00000000..275f4734
--- /dev/null
+++ b/addon/templates/analytics/reports/index/details/index.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addon/templates/analytics/reports/index/details/result.hbs b/addon/templates/analytics/reports/index/details/result.hbs
new file mode 100644
index 00000000..bbf32b8f
--- /dev/null
+++ b/addon/templates/analytics/reports/index/details/result.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addon/templates/analytics/reports/index/edit.hbs b/addon/templates/analytics/reports/index/edit.hbs
new file mode 100644
index 00000000..7f17a81a
--- /dev/null
+++ b/addon/templates/analytics/reports/index/edit.hbs
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/analytics/reports/index/new.hbs b/addon/templates/analytics/reports/index/new.hbs
new file mode 100644
index 00000000..86657f0d
--- /dev/null
+++ b/addon/templates/analytics/reports/index/new.hbs
@@ -0,0 +1,14 @@
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/application.hbs b/addon/templates/application.hbs
index ded68065..6e58294c 100644
--- a/addon/templates/application.hbs
+++ b/addon/templates/application.hbs
@@ -1,26 +1,44 @@
-
- Dashboard
- Products
- Warehouses
- Suppliers
+ Dashboard
+
+
+ Products
+ Suppliers
+
+
+
+ Warehouses
+ Locations
+ Zones
+
- All
+ Inventory
+ Batches
+ Stock Adjustments
Low Stock
Expired Stock
-
- Sales
- Purchases
+
+
+ Purchase Orders
+ Sales Orders
+
+
+
+ Transfers
+ Cycle Counts
+ Pick Lists
+ Waves
+ Reservations
-
- Audits
- Reports
+
+
+ Reports
+ Audits
{{outlet}}
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/addon/templates/audits/index.hbs b/addon/templates/audits/index.hbs
index e2147cab..193ee930 100644
--- a/addon/templates/audits/index.hbs
+++ b/addon/templates/audits/index.hbs
@@ -1 +1,62 @@
-{{outlet}}
\ No newline at end of file
+
+ <:subheader>
+
+ {{!-- Event type filter --}}
+
+
+
+ {{#if this.event_type}}
+ {{t "pallet.audit.filter_event_type"}}: {{this.event_type}}
+ {{else}}
+ {{t "pallet.audit.all_events"}}
+ {{/if}}
+
+
+
+
+
+ {{#each this.eventTypeOptions as |opt|}}
+
+
+ {{opt.label}}
+
+
+ {{/each}}
+
+
+
+
+ {{!-- Clear filters --}}
+ {{#if (or this.event_type this.auditable_type this.query)}}
+
+
+ {{t "pallet.common.clear_filters"}}
+
+ {{/if}}
+
+
+
+
+{{outlet}}
diff --git a/addon/templates/catalog/products/index.hbs b/addon/templates/catalog/products/index.hbs
new file mode 100644
index 00000000..698cd12f
--- /dev/null
+++ b/addon/templates/catalog/products/index.hbs
@@ -0,0 +1,17 @@
+
+{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/catalog/products/index/details.hbs b/addon/templates/catalog/products/index/details.hbs
new file mode 100644
index 00000000..f60f13ed
--- /dev/null
+++ b/addon/templates/catalog/products/index/details.hbs
@@ -0,0 +1,15 @@
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/catalog/products/index/details/index.hbs b/addon/templates/catalog/products/index/details/index.hbs
new file mode 100644
index 00000000..332f29ee
--- /dev/null
+++ b/addon/templates/catalog/products/index/details/index.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addon/templates/catalog/products/index/edit.hbs b/addon/templates/catalog/products/index/edit.hbs
new file mode 100644
index 00000000..d7e0c43f
--- /dev/null
+++ b/addon/templates/catalog/products/index/edit.hbs
@@ -0,0 +1,12 @@
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/catalog/products/index/new.hbs b/addon/templates/catalog/products/index/new.hbs
new file mode 100644
index 00000000..2a084883
--- /dev/null
+++ b/addon/templates/catalog/products/index/new.hbs
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/catalog/suppliers/index.hbs b/addon/templates/catalog/suppliers/index.hbs
new file mode 100644
index 00000000..d45bc3e0
--- /dev/null
+++ b/addon/templates/catalog/suppliers/index.hbs
@@ -0,0 +1,15 @@
+
+{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/catalog/suppliers/index/details.hbs b/addon/templates/catalog/suppliers/index/details.hbs
new file mode 100644
index 00000000..c13e4e39
--- /dev/null
+++ b/addon/templates/catalog/suppliers/index/details.hbs
@@ -0,0 +1,15 @@
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/catalog/suppliers/index/details/index.hbs b/addon/templates/catalog/suppliers/index/details/index.hbs
new file mode 100644
index 00000000..9e375d2f
--- /dev/null
+++ b/addon/templates/catalog/suppliers/index/details/index.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addon/templates/catalog/suppliers/index/edit.hbs b/addon/templates/catalog/suppliers/index/edit.hbs
new file mode 100644
index 00000000..0655fd8e
--- /dev/null
+++ b/addon/templates/catalog/suppliers/index/edit.hbs
@@ -0,0 +1,12 @@
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/catalog/suppliers/index/new.hbs b/addon/templates/catalog/suppliers/index/new.hbs
new file mode 100644
index 00000000..d6f323d4
--- /dev/null
+++ b/addon/templates/catalog/suppliers/index/new.hbs
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/facilities/locations.hbs b/addon/templates/facilities/locations.hbs
new file mode 100644
index 00000000..975087ca
--- /dev/null
+++ b/addon/templates/facilities/locations.hbs
@@ -0,0 +1,28 @@
+
+ Manage the internal warehouse structure for sections, aisles, racks, and bins from a dedicated facilities surface.
+
+
+
+
+ This is a production navigation scaffold for the warehouse location domain. Backend models already support structural entities,
+ but the full management workflow is still being completed.
+
+
+
+
+
+ Create and manage sections, aisles, racks, and bins.
+ Map warehouse storage structure for inventory placement.
+ Expose location-aware inventory and receiving workflows.
+
+
+
+
+
+ Dedicated location resource screens and detail panels.
+ Nested warehouse editors connected to the facilities surface.
+ Location-aware receiving, transfers, and cycle counts.
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/facilities/warehouses/index.hbs b/addon/templates/facilities/warehouses/index.hbs
new file mode 100644
index 00000000..37d4d705
--- /dev/null
+++ b/addon/templates/facilities/warehouses/index.hbs
@@ -0,0 +1,15 @@
+
+{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/facilities/warehouses/index/details.hbs b/addon/templates/facilities/warehouses/index/details.hbs
new file mode 100644
index 00000000..29e82c17
--- /dev/null
+++ b/addon/templates/facilities/warehouses/index/details.hbs
@@ -0,0 +1,15 @@
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/facilities/warehouses/index/details/index.hbs b/addon/templates/facilities/warehouses/index/details/index.hbs
new file mode 100644
index 00000000..ec89ba4e
--- /dev/null
+++ b/addon/templates/facilities/warehouses/index/details/index.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addon/templates/facilities/warehouses/index/edit.hbs b/addon/templates/facilities/warehouses/index/edit.hbs
new file mode 100644
index 00000000..bac3d112
--- /dev/null
+++ b/addon/templates/facilities/warehouses/index/edit.hbs
@@ -0,0 +1,12 @@
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/facilities/warehouses/index/new.hbs b/addon/templates/facilities/warehouses/index/new.hbs
new file mode 100644
index 00000000..c30af50c
--- /dev/null
+++ b/addon/templates/facilities/warehouses/index/new.hbs
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/facilities/zones.hbs b/addon/templates/facilities/zones.hbs
new file mode 100644
index 00000000..a2e48770
--- /dev/null
+++ b/addon/templates/facilities/zones.hbs
@@ -0,0 +1,28 @@
+
+ Zones give Pallet a facility-level segmentation layer for storage strategy, operational rules, and inventory planning.
+
+
+
+
+ This section is now routable and visible in production navigation. The zoning model exists in the backend, while the
+ operator-facing management workflow is still planned.
+
+
+
+
+
+ Create storage, quarantine, staging, and outbound zones.
+ Assign rules to zones for stock placement and movement.
+ Use zones in future picking, waves, and replenishment flows.
+
+
+
+
+
+ Zone CRUD and assignment management.
+ Location-to-zone mapping inside facilities tooling.
+ Zone-aware filters in inventory and operations views.
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/home.hbs b/addon/templates/home.hbs
index e2147cab..f1b2e19d 100644
--- a/addon/templates/home.hbs
+++ b/addon/templates/home.hbs
@@ -1 +1,10 @@
-{{outlet}}
\ No newline at end of file
+
+
+
+ {{outlet}}
+
\ No newline at end of file
diff --git a/addon/templates/inventory/adjustments.hbs b/addon/templates/inventory/adjustments.hbs
new file mode 100644
index 00000000..132af66a
--- /dev/null
+++ b/addon/templates/inventory/adjustments.hbs
@@ -0,0 +1,28 @@
+
+ Track inventory corrections, discrepancies, and manual quantity changes from a dedicated inventory control surface.
+
+
+
+
+ Pallet already supports creating stock adjustments from the inventory workflow. This route gives adjustments a durable navigation
+ destination while the dedicated record history view is completed.
+
+
+
+
+
+ Review adjustment history and reasons by warehouse.
+ Filter by product, operator, date, and adjustment type.
+ Support inventory correction auditability and approvals.
+
+
+
+
+
+ Create a new adjustment from the main Inventory resource view.
+ Existing adjustment creation flow remains available today.
+ This page reserves the permanent production home for adjustment records.
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/inventory/batches.hbs b/addon/templates/inventory/batches.hbs
new file mode 100644
index 00000000..a0b58bd4
--- /dev/null
+++ b/addon/templates/inventory/batches.hbs
@@ -0,0 +1,28 @@
+
+ Track lot and batch-level inventory context, including traceability, shelf life, and downstream warehouse operations.
+
+
+
+
+ Batch data models and form components already exist in Pallet. This section gives batches a permanent production navigation entry
+ while the dedicated list and detail workflow is completed.
+
+
+
+
+
+ View and search batch inventory by product and warehouse.
+ Track lot identifiers, expiry windows, and manufactured dates.
+ Support batch-aware receiving and fulfillment decisions.
+
+
+
+
+
+ Dedicated batch list and drill-down experience.
+ Inventory-to-batch traceability panels.
+ Filters for expiry risk and warehouse availability.
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/inventory/index.hbs b/addon/templates/inventory/index.hbs
index 7cd3cfda..41838471 100644
--- a/addon/templates/inventory/index.hbs
+++ b/addon/templates/inventory/index.hbs
@@ -1,30 +1,15 @@
-
-
-
-
-
-
-
-
-
-
-{{outlet}}
\ No newline at end of file
+
+{{outlet}}
diff --git a/addon/templates/inventory/index/details.hbs b/addon/templates/inventory/index/details.hbs
index b4bd099d..0f094bbb 100644
--- a/addon/templates/inventory/index/details.hbs
+++ b/addon/templates/inventory/index/details.hbs
@@ -1 +1,15 @@
-
\ No newline at end of file
+
+
+ {{outlet}}
+
+
diff --git a/addon/templates/inventory/index/edit.hbs b/addon/templates/inventory/index/edit.hbs
index d79bc2bd..0925b497 100644
--- a/addon/templates/inventory/index/edit.hbs
+++ b/addon/templates/inventory/index/edit.hbs
@@ -1 +1,12 @@
-
\ No newline at end of file
+
+
+
+
diff --git a/addon/templates/operations/cycle-counts.hbs b/addon/templates/operations/cycle-counts.hbs
new file mode 100644
index 00000000..f11d814c
--- /dev/null
+++ b/addon/templates/operations/cycle-counts.hbs
@@ -0,0 +1,18 @@
+
+ Cycle counts will support recurring stock verification without relying on disruptive full physical counts.
+
+
+
+
+ Cycle count models are already part of the Pallet backend roadmap. This section is now routable and intentionally reserved for
+ that operator workflow.
+
+
+
+
+ Schedule counts by warehouse, zone, or product range.
+ Record discrepancies and reconcile stock differences.
+ Feed adjustment and audit workflows from count outcomes.
+
+
+
\ No newline at end of file
diff --git a/addon/templates/operations/pick-lists.hbs b/addon/templates/operations/pick-lists.hbs
new file mode 100644
index 00000000..4925bbf0
--- /dev/null
+++ b/addon/templates/operations/pick-lists.hbs
@@ -0,0 +1,18 @@
+
+ Pick lists will become the execution surface for outbound warehouse work and order preparation.
+
+
+
+
+ Pick list entities exist in the domain model. This route is a production-safe scaffold until the picker-facing workflows and
+ operational detail views are ready.
+
+
+
+
+ Generate pick lists from sales orders and waves.
+ Track pick progress and exceptions by operator.
+ Support location-aware picking and fulfillment confirmation.
+
+
+
\ No newline at end of file
diff --git a/addon/templates/operations/reservations.hbs b/addon/templates/operations/reservations.hbs
new file mode 100644
index 00000000..3cc202ca
--- /dev/null
+++ b/addon/templates/operations/reservations.hbs
@@ -0,0 +1,18 @@
+
+ Reservations will control allocated inventory and expose stock commitments before fulfillment execution.
+
+
+
+
+ Reservation models already exist in the Pallet backend. This scaffold preserves a complete production information architecture
+ while the reservation workflow is finalized.
+
+
+
+
+ Reserve inventory against open sales and warehouse operations.
+ Expose committed versus available stock.
+ Release or reallocate stock when order conditions change.
+
+
+
\ No newline at end of file
diff --git a/addon/templates/operations/transfers.hbs b/addon/templates/operations/transfers.hbs
new file mode 100644
index 00000000..5609e0e6
--- /dev/null
+++ b/addon/templates/operations/transfers.hbs
@@ -0,0 +1,18 @@
+
+ Transfers will manage stock movement between warehouses, facilities, and future internal storage locations.
+
+
+
+
+ Stock transfer models already exist on the backend. This scaffold gives the operations domain a stable navigation destination
+ without shipping a blank route.
+
+
+
+
+ Create inter-warehouse transfer orders.
+ Track transfer status from requested to received.
+ Reconcile inventory movement across facilities and locations.
+
+
+
\ No newline at end of file
diff --git a/addon/templates/operations/waves.hbs b/addon/templates/operations/waves.hbs
new file mode 100644
index 00000000..9a598340
--- /dev/null
+++ b/addon/templates/operations/waves.hbs
@@ -0,0 +1,18 @@
+
+ Waves will coordinate grouped warehouse work for outbound fulfillment and operational batching.
+
+
+
+
+ Wave entities are modeled in Pallet, but the execution UX is still planned. This section gives the broader WMS roadmap a real,
+ non-broken place in navigation.
+
+
+
+
+ Group outbound work into execution waves.
+ Assign pick activity and warehouse capacity by batch.
+ Coordinate wave progress across orders and pick lists.
+
+
+
\ No newline at end of file
diff --git a/addon/templates/orders/purchase-orders/index.hbs b/addon/templates/orders/purchase-orders/index.hbs
new file mode 100644
index 00000000..4803783d
--- /dev/null
+++ b/addon/templates/orders/purchase-orders/index.hbs
@@ -0,0 +1,15 @@
+
+{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/orders/purchase-orders/index/details.hbs b/addon/templates/orders/purchase-orders/index/details.hbs
new file mode 100644
index 00000000..1e1e0a81
--- /dev/null
+++ b/addon/templates/orders/purchase-orders/index/details.hbs
@@ -0,0 +1,15 @@
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/orders/purchase-orders/index/edit.hbs b/addon/templates/orders/purchase-orders/index/edit.hbs
new file mode 100644
index 00000000..62e22591
--- /dev/null
+++ b/addon/templates/orders/purchase-orders/index/edit.hbs
@@ -0,0 +1,12 @@
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/orders/purchase-orders/index/new.hbs b/addon/templates/orders/purchase-orders/index/new.hbs
new file mode 100644
index 00000000..67bcfdfd
--- /dev/null
+++ b/addon/templates/orders/purchase-orders/index/new.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addon/templates/orders/sales-orders/index.hbs b/addon/templates/orders/sales-orders/index.hbs
new file mode 100644
index 00000000..a95bbcf1
--- /dev/null
+++ b/addon/templates/orders/sales-orders/index.hbs
@@ -0,0 +1,15 @@
+
+{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/orders/sales-orders/index/details.hbs b/addon/templates/orders/sales-orders/index/details.hbs
new file mode 100644
index 00000000..2ec324c9
--- /dev/null
+++ b/addon/templates/orders/sales-orders/index/details.hbs
@@ -0,0 +1,15 @@
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/orders/sales-orders/index/edit.hbs b/addon/templates/orders/sales-orders/index/edit.hbs
new file mode 100644
index 00000000..d1a07881
--- /dev/null
+++ b/addon/templates/orders/sales-orders/index/edit.hbs
@@ -0,0 +1,12 @@
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/orders/sales-orders/index/new.hbs b/addon/templates/orders/sales-orders/index/new.hbs
new file mode 100644
index 00000000..bb4e5fc4
--- /dev/null
+++ b/addon/templates/orders/sales-orders/index/new.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addon/templates/products/index.hbs b/addon/templates/products/index.hbs
index fb35ac08..75085917 100644
--- a/addon/templates/products/index.hbs
+++ b/addon/templates/products/index.hbs
@@ -1,41 +1,17 @@
-
-
-
- {{#if (safe-has this.table "selectedRows")}}
-
-
-
- {{/if}}
-
-
-
-
-
-
-
-{{outlet}}
\ No newline at end of file
+
+{{outlet}}
diff --git a/addon/templates/products/index/details.hbs b/addon/templates/products/index/details.hbs
index 234e5519..f60f13ed 100644
--- a/addon/templates/products/index/details.hbs
+++ b/addon/templates/products/index/details.hbs
@@ -1 +1,15 @@
-
\ No newline at end of file
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/products/index/details/index.hbs b/addon/templates/products/index/details/index.hbs
new file mode 100644
index 00000000..332f29ee
--- /dev/null
+++ b/addon/templates/products/index/details/index.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addon/templates/products/index/edit.hbs b/addon/templates/products/index/edit.hbs
index 43c0ba25..d7e0c43f 100644
--- a/addon/templates/products/index/edit.hbs
+++ b/addon/templates/products/index/edit.hbs
@@ -1 +1,12 @@
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/products/index/new.hbs b/addon/templates/products/index/new.hbs
index 79fae089..2a084883 100644
--- a/addon/templates/products/index/new.hbs
+++ b/addon/templates/products/index/new.hbs
@@ -1 +1,11 @@
-
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/purchase-orders/index.hbs b/addon/templates/purchase-orders/index.hbs
index 5ac34b2d..8018b908 100644
--- a/addon/templates/purchase-orders/index.hbs
+++ b/addon/templates/purchase-orders/index.hbs
@@ -1,41 +1,15 @@
-
-
-
- {{#if (safe-has this.table "selectedRows")}}
-
-
-
- {{/if}}
-
-
-
-
-
-
-
-{{outlet}}
\ No newline at end of file
+
+{{outlet}}
diff --git a/addon/templates/purchase-orders/index/details.hbs b/addon/templates/purchase-orders/index/details.hbs
index 3d631ecb..1e1e0a81 100644
--- a/addon/templates/purchase-orders/index/details.hbs
+++ b/addon/templates/purchase-orders/index/details.hbs
@@ -1 +1,15 @@
-
\ No newline at end of file
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/purchase-orders/index/edit.hbs b/addon/templates/purchase-orders/index/edit.hbs
index 2e618508..51f22e6b 100644
--- a/addon/templates/purchase-orders/index/edit.hbs
+++ b/addon/templates/purchase-orders/index/edit.hbs
@@ -1 +1,12 @@
-
\ No newline at end of file
+
+
+
+
diff --git a/addon/templates/reports/index.hbs b/addon/templates/reports/index.hbs
index e2147cab..6d98b0c7 100644
--- a/addon/templates/reports/index.hbs
+++ b/addon/templates/reports/index.hbs
@@ -1 +1,15 @@
+
{{outlet}}
\ No newline at end of file
diff --git a/addon/templates/sales-orders/index.hbs b/addon/templates/sales-orders/index.hbs
index e5c46a96..1d4b2cc9 100644
--- a/addon/templates/sales-orders/index.hbs
+++ b/addon/templates/sales-orders/index.hbs
@@ -1,41 +1,15 @@
-
-
-
- {{#if (safe-has this.table "selectedRows")}}
-
-
-
- {{/if}}
-
-
-
-
-
-
-
-{{outlet}}
\ No newline at end of file
+
+{{outlet}}
diff --git a/addon/templates/sales-orders/index/details.hbs b/addon/templates/sales-orders/index/details.hbs
index 82b3f7f6..2ec324c9 100644
--- a/addon/templates/sales-orders/index/details.hbs
+++ b/addon/templates/sales-orders/index/details.hbs
@@ -1 +1,15 @@
-
\ No newline at end of file
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/sales-orders/index/edit.hbs b/addon/templates/sales-orders/index/edit.hbs
index 8b443ddc..1cc0132a 100644
--- a/addon/templates/sales-orders/index/edit.hbs
+++ b/addon/templates/sales-orders/index/edit.hbs
@@ -1 +1,12 @@
-
\ No newline at end of file
+
+
+
+
diff --git a/addon/templates/suppliers/index.hbs b/addon/templates/suppliers/index.hbs
index 194e797b..7a2ee84e 100644
--- a/addon/templates/suppliers/index.hbs
+++ b/addon/templates/suppliers/index.hbs
@@ -1,41 +1,15 @@
-
-
-
- {{#if (safe-has this.table "selectedRows")}}
-
-
-
- {{/if}}
-
-
-
-
-
-
-
-{{outlet}}
\ No newline at end of file
+
+{{outlet}}
diff --git a/addon/templates/suppliers/index/details.hbs b/addon/templates/suppliers/index/details.hbs
index aaa55440..c13e4e39 100644
--- a/addon/templates/suppliers/index/details.hbs
+++ b/addon/templates/suppliers/index/details.hbs
@@ -1 +1,15 @@
-
\ No newline at end of file
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/suppliers/index/details/index.hbs b/addon/templates/suppliers/index/details/index.hbs
new file mode 100644
index 00000000..9e375d2f
--- /dev/null
+++ b/addon/templates/suppliers/index/details/index.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addon/templates/suppliers/index/edit.hbs b/addon/templates/suppliers/index/edit.hbs
index 5e825913..380d7d74 100644
--- a/addon/templates/suppliers/index/edit.hbs
+++ b/addon/templates/suppliers/index/edit.hbs
@@ -1 +1,12 @@
-
\ No newline at end of file
+
+
+
+
diff --git a/addon/templates/suppliers/index/new.hbs b/addon/templates/suppliers/index/new.hbs
index b71eec2a..d6f323d4 100644
--- a/addon/templates/suppliers/index/new.hbs
+++ b/addon/templates/suppliers/index/new.hbs
@@ -1 +1,11 @@
-
+
+
+
+
\ No newline at end of file
diff --git a/addon/templates/warehouses/index.hbs b/addon/templates/warehouses/index.hbs
index a013653e..993ae280 100644
--- a/addon/templates/warehouses/index.hbs
+++ b/addon/templates/warehouses/index.hbs
@@ -1,24 +1,15 @@
-
-
-
- {{#if (safe-has this.table "selectedRows")}}
-
-
-
- {{/if}}
-
-
-
-
-
-
-
-
-
-{{outlet}}
\ No newline at end of file
+
+{{outlet}}
diff --git a/addon/templates/warehouses/index/details.hbs b/addon/templates/warehouses/index/details.hbs
index ba0d538f..29e82c17 100644
--- a/addon/templates/warehouses/index/details.hbs
+++ b/addon/templates/warehouses/index/details.hbs
@@ -1 +1,15 @@
-
\ No newline at end of file
+
+
+ {{outlet}}
+
+
\ No newline at end of file
diff --git a/addon/templates/warehouses/index/details/index.hbs b/addon/templates/warehouses/index/details/index.hbs
new file mode 100644
index 00000000..ec89ba4e
--- /dev/null
+++ b/addon/templates/warehouses/index/details/index.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addon/templates/warehouses/index/edit.hbs b/addon/templates/warehouses/index/edit.hbs
index 2a3d0c18..fec7d46a 100644
--- a/addon/templates/warehouses/index/edit.hbs
+++ b/addon/templates/warehouses/index/edit.hbs
@@ -1 +1,12 @@
-
\ No newline at end of file
+
+
+
+
diff --git a/addon/templates/warehouses/index/new.hbs b/addon/templates/warehouses/index/new.hbs
index 53d19dac..c30af50c 100644
--- a/addon/templates/warehouses/index/new.hbs
+++ b/addon/templates/warehouses/index/new.hbs
@@ -1 +1,11 @@
-
+
+
+
+
\ No newline at end of file
diff --git a/app/adapters/pallet-product-variant.js b/app/adapters/pallet-product-variant.js
new file mode 100644
index 00000000..16ebdd32
--- /dev/null
+++ b/app/adapters/pallet-product-variant.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/adapters/pallet-product-variant';
diff --git a/app/components/batch/details.js b/app/components/batch/details.js
new file mode 100644
index 00000000..0dccd9e8
--- /dev/null
+++ b/app/components/batch/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/batch/details';
diff --git a/app/components/batch/form.js b/app/components/batch/form.js
new file mode 100644
index 00000000..8d72f2c7
--- /dev/null
+++ b/app/components/batch/form.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/batch/form';
diff --git a/app/components/batch/panel-header.js b/app/components/batch/panel-header.js
new file mode 100644
index 00000000..6cf9118f
--- /dev/null
+++ b/app/components/batch/panel-header.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/batch/panel-header';
diff --git a/app/components/batch/pill.js b/app/components/batch/pill.js
new file mode 100644
index 00000000..2e77eb40
--- /dev/null
+++ b/app/components/batch/pill.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/batch/pill';
diff --git a/app/components/inventory/details.js b/app/components/inventory/details.js
new file mode 100644
index 00000000..5bbb6c65
--- /dev/null
+++ b/app/components/inventory/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/inventory/details';
diff --git a/app/components/inventory/form.js b/app/components/inventory/form.js
new file mode 100644
index 00000000..5d3eb486
--- /dev/null
+++ b/app/components/inventory/form.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/inventory/form';
diff --git a/app/components/inventory/panel-header.js b/app/components/inventory/panel-header.js
new file mode 100644
index 00000000..aab47d37
--- /dev/null
+++ b/app/components/inventory/panel-header.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/inventory/panel-header';
diff --git a/app/components/inventory/pill.js b/app/components/inventory/pill.js
new file mode 100644
index 00000000..7c61e546
--- /dev/null
+++ b/app/components/inventory/pill.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/inventory/pill';
diff --git a/app/components/product/details.js b/app/components/product/details.js
new file mode 100644
index 00000000..781cdf45
--- /dev/null
+++ b/app/components/product/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/product/details';
diff --git a/app/components/product/form.js b/app/components/product/form.js
new file mode 100644
index 00000000..fe1f3ee5
--- /dev/null
+++ b/app/components/product/form.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/product/form';
diff --git a/app/components/product/panel-header.js b/app/components/product/panel-header.js
new file mode 100644
index 00000000..386f36ff
--- /dev/null
+++ b/app/components/product/panel-header.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/product/panel-header';
diff --git a/app/components/product/pill.js b/app/components/product/pill.js
new file mode 100644
index 00000000..3530bb16
--- /dev/null
+++ b/app/components/product/pill.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/product/pill';
diff --git a/app/components/purchase-order/details.js b/app/components/purchase-order/details.js
new file mode 100644
index 00000000..b74b751a
--- /dev/null
+++ b/app/components/purchase-order/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/purchase-order/details';
diff --git a/app/components/purchase-order/form.js b/app/components/purchase-order/form.js
new file mode 100644
index 00000000..3e99a30b
--- /dev/null
+++ b/app/components/purchase-order/form.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/purchase-order/form';
diff --git a/app/components/purchase-order/panel-header.js b/app/components/purchase-order/panel-header.js
new file mode 100644
index 00000000..6bc90ab9
--- /dev/null
+++ b/app/components/purchase-order/panel-header.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/purchase-order/panel-header';
diff --git a/app/components/purchase-order/pill.js b/app/components/purchase-order/pill.js
new file mode 100644
index 00000000..dd7b3a1b
--- /dev/null
+++ b/app/components/purchase-order/pill.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/purchase-order/pill';
diff --git a/app/components/sales-order/details.js b/app/components/sales-order/details.js
new file mode 100644
index 00000000..fda15e1a
--- /dev/null
+++ b/app/components/sales-order/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/sales-order/details';
diff --git a/app/components/sales-order/form.js b/app/components/sales-order/form.js
new file mode 100644
index 00000000..c9b3b08b
--- /dev/null
+++ b/app/components/sales-order/form.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/sales-order/form';
diff --git a/app/components/sales-order/panel-header.js b/app/components/sales-order/panel-header.js
new file mode 100644
index 00000000..d2cd5019
--- /dev/null
+++ b/app/components/sales-order/panel-header.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/sales-order/panel-header';
diff --git a/app/components/sales-order/pill.js b/app/components/sales-order/pill.js
new file mode 100644
index 00000000..3d787925
--- /dev/null
+++ b/app/components/sales-order/pill.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/sales-order/pill';
diff --git a/app/components/supplier/details.js b/app/components/supplier/details.js
new file mode 100644
index 00000000..b4f6ebef
--- /dev/null
+++ b/app/components/supplier/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/supplier/details';
diff --git a/app/components/supplier/form.js b/app/components/supplier/form.js
new file mode 100644
index 00000000..797d22b0
--- /dev/null
+++ b/app/components/supplier/form.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/supplier/form';
diff --git a/app/components/supplier/panel-header.js b/app/components/supplier/panel-header.js
new file mode 100644
index 00000000..be4bd7ea
--- /dev/null
+++ b/app/components/supplier/panel-header.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/supplier/panel-header';
diff --git a/app/components/supplier/pill.js b/app/components/supplier/pill.js
new file mode 100644
index 00000000..ba70b588
--- /dev/null
+++ b/app/components/supplier/pill.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/supplier/pill';
diff --git a/app/components/warehouse/details.js b/app/components/warehouse/details.js
new file mode 100644
index 00000000..d26a1527
--- /dev/null
+++ b/app/components/warehouse/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/warehouse/details';
diff --git a/app/components/warehouse/form.js b/app/components/warehouse/form.js
new file mode 100644
index 00000000..2e4b86d8
--- /dev/null
+++ b/app/components/warehouse/form.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/warehouse/form';
diff --git a/app/components/warehouse/panel-header.js b/app/components/warehouse/panel-header.js
new file mode 100644
index 00000000..a825df13
--- /dev/null
+++ b/app/components/warehouse/panel-header.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/warehouse/panel-header';
diff --git a/app/components/warehouse/pill.js b/app/components/warehouse/pill.js
new file mode 100644
index 00000000..38055666
--- /dev/null
+++ b/app/components/warehouse/pill.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/components/warehouse/pill';
diff --git a/app/controllers/analytics/audits/index.js b/app/controllers/analytics/audits/index.js
new file mode 100644
index 00000000..28b7ab73
--- /dev/null
+++ b/app/controllers/analytics/audits/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/analytics/audits/index';
diff --git a/app/controllers/analytics/audits/index/details.js b/app/controllers/analytics/audits/index/details.js
new file mode 100644
index 00000000..4d3baa07
--- /dev/null
+++ b/app/controllers/analytics/audits/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/analytics/audits/index/details';
diff --git a/app/controllers/analytics/audits/index/edit.js b/app/controllers/analytics/audits/index/edit.js
new file mode 100644
index 00000000..a577e52a
--- /dev/null
+++ b/app/controllers/analytics/audits/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/analytics/audits/index/edit';
diff --git a/app/controllers/analytics/audits/index/new.js b/app/controllers/analytics/audits/index/new.js
new file mode 100644
index 00000000..3dc15462
--- /dev/null
+++ b/app/controllers/analytics/audits/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/analytics/audits/index/new';
diff --git a/app/controllers/analytics/reports/index.js b/app/controllers/analytics/reports/index.js
new file mode 100644
index 00000000..843dc634
--- /dev/null
+++ b/app/controllers/analytics/reports/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/analytics/reports/index';
diff --git a/app/controllers/analytics/reports/index/details.js b/app/controllers/analytics/reports/index/details.js
new file mode 100644
index 00000000..ed92ddb8
--- /dev/null
+++ b/app/controllers/analytics/reports/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/analytics/reports/index/details';
diff --git a/app/controllers/analytics/reports/index/edit.js b/app/controllers/analytics/reports/index/edit.js
new file mode 100644
index 00000000..98b362b6
--- /dev/null
+++ b/app/controllers/analytics/reports/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/analytics/reports/index/edit';
diff --git a/app/controllers/analytics/reports/index/new.js b/app/controllers/analytics/reports/index/new.js
new file mode 100644
index 00000000..230182e6
--- /dev/null
+++ b/app/controllers/analytics/reports/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/analytics/reports/index/new';
diff --git a/app/controllers/catalog/products/index.js b/app/controllers/catalog/products/index.js
new file mode 100644
index 00000000..b352fb96
--- /dev/null
+++ b/app/controllers/catalog/products/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/catalog/products/index';
diff --git a/app/controllers/catalog/products/index/details.js b/app/controllers/catalog/products/index/details.js
new file mode 100644
index 00000000..51df0d7d
--- /dev/null
+++ b/app/controllers/catalog/products/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/catalog/products/index/details';
diff --git a/app/controllers/catalog/products/index/edit.js b/app/controllers/catalog/products/index/edit.js
new file mode 100644
index 00000000..7db8f432
--- /dev/null
+++ b/app/controllers/catalog/products/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/catalog/products/index/edit';
diff --git a/app/controllers/catalog/products/index/new.js b/app/controllers/catalog/products/index/new.js
new file mode 100644
index 00000000..84bcefc7
--- /dev/null
+++ b/app/controllers/catalog/products/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/catalog/products/index/new';
diff --git a/app/controllers/catalog/suppliers/index.js b/app/controllers/catalog/suppliers/index.js
new file mode 100644
index 00000000..118895f0
--- /dev/null
+++ b/app/controllers/catalog/suppliers/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/catalog/suppliers/index';
diff --git a/app/controllers/catalog/suppliers/index/details.js b/app/controllers/catalog/suppliers/index/details.js
new file mode 100644
index 00000000..28150ec2
--- /dev/null
+++ b/app/controllers/catalog/suppliers/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/catalog/suppliers/index/details';
diff --git a/app/controllers/catalog/suppliers/index/edit.js b/app/controllers/catalog/suppliers/index/edit.js
new file mode 100644
index 00000000..21736361
--- /dev/null
+++ b/app/controllers/catalog/suppliers/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/catalog/suppliers/index/edit';
diff --git a/app/controllers/catalog/suppliers/index/new.js b/app/controllers/catalog/suppliers/index/new.js
new file mode 100644
index 00000000..ca0b8981
--- /dev/null
+++ b/app/controllers/catalog/suppliers/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/catalog/suppliers/index/new';
diff --git a/app/controllers/facilities/warehouses/index.js b/app/controllers/facilities/warehouses/index.js
new file mode 100644
index 00000000..738458fe
--- /dev/null
+++ b/app/controllers/facilities/warehouses/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/facilities/warehouses/index';
diff --git a/app/controllers/facilities/warehouses/index/details.js b/app/controllers/facilities/warehouses/index/details.js
new file mode 100644
index 00000000..a329e4b8
--- /dev/null
+++ b/app/controllers/facilities/warehouses/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/facilities/warehouses/index/details';
diff --git a/app/controllers/facilities/warehouses/index/edit.js b/app/controllers/facilities/warehouses/index/edit.js
new file mode 100644
index 00000000..bb364d3d
--- /dev/null
+++ b/app/controllers/facilities/warehouses/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/facilities/warehouses/index/edit';
diff --git a/app/controllers/facilities/warehouses/index/new.js b/app/controllers/facilities/warehouses/index/new.js
new file mode 100644
index 00000000..efef8847
--- /dev/null
+++ b/app/controllers/facilities/warehouses/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/facilities/warehouses/index/new';
diff --git a/app/controllers/orders/purchase-orders/index.js b/app/controllers/orders/purchase-orders/index.js
new file mode 100644
index 00000000..c1bb13c0
--- /dev/null
+++ b/app/controllers/orders/purchase-orders/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/orders/purchase-orders/index';
diff --git a/app/controllers/orders/purchase-orders/index/details.js b/app/controllers/orders/purchase-orders/index/details.js
new file mode 100644
index 00000000..ae830891
--- /dev/null
+++ b/app/controllers/orders/purchase-orders/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/orders/purchase-orders/index/details';
diff --git a/app/controllers/orders/purchase-orders/index/edit.js b/app/controllers/orders/purchase-orders/index/edit.js
new file mode 100644
index 00000000..b11bc15f
--- /dev/null
+++ b/app/controllers/orders/purchase-orders/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/orders/purchase-orders/index/edit';
diff --git a/app/controllers/orders/purchase-orders/index/new.js b/app/controllers/orders/purchase-orders/index/new.js
new file mode 100644
index 00000000..f85dd89e
--- /dev/null
+++ b/app/controllers/orders/purchase-orders/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/orders/purchase-orders/index/new';
diff --git a/app/controllers/orders/sales-orders/index.js b/app/controllers/orders/sales-orders/index.js
new file mode 100644
index 00000000..b85cf443
--- /dev/null
+++ b/app/controllers/orders/sales-orders/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/orders/sales-orders/index';
diff --git a/app/controllers/orders/sales-orders/index/details.js b/app/controllers/orders/sales-orders/index/details.js
new file mode 100644
index 00000000..f88d7303
--- /dev/null
+++ b/app/controllers/orders/sales-orders/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/orders/sales-orders/index/details';
diff --git a/app/controllers/orders/sales-orders/index/edit.js b/app/controllers/orders/sales-orders/index/edit.js
new file mode 100644
index 00000000..c7ade34f
--- /dev/null
+++ b/app/controllers/orders/sales-orders/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/orders/sales-orders/index/edit';
diff --git a/app/controllers/orders/sales-orders/index/new.js b/app/controllers/orders/sales-orders/index/new.js
new file mode 100644
index 00000000..cb72dba3
--- /dev/null
+++ b/app/controllers/orders/sales-orders/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/controllers/orders/sales-orders/index/new';
diff --git a/app/helpers/point-coordinates.js b/app/helpers/point-coordinates.js
deleted file mode 100644
index 933158fd..00000000
--- a/app/helpers/point-coordinates.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default } from '@fleetbase/pallet-engine/helpers/point-coordinates';
diff --git a/app/helpers/point-to-coordinates.js b/app/helpers/point-to-coordinates.js
deleted file mode 100644
index 6c60cc58..00000000
--- a/app/helpers/point-to-coordinates.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default } from '@fleetbase/pallet-engine/helpers/point-to-coordinates';
diff --git a/app/models/pallet-product-variant.js b/app/models/pallet-product-variant.js
new file mode 100644
index 00000000..1e35edcd
--- /dev/null
+++ b/app/models/pallet-product-variant.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/models/pallet-product-variant';
diff --git a/app/routes/analytics/audits/index.js b/app/routes/analytics/audits/index.js
new file mode 100644
index 00000000..63539eee
--- /dev/null
+++ b/app/routes/analytics/audits/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/analytics/audits/index';
diff --git a/app/routes/analytics/audits/index/details.js b/app/routes/analytics/audits/index/details.js
new file mode 100644
index 00000000..a602e91e
--- /dev/null
+++ b/app/routes/analytics/audits/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/analytics/audits/index/details';
diff --git a/app/routes/analytics/audits/index/edit.js b/app/routes/analytics/audits/index/edit.js
new file mode 100644
index 00000000..f636b9e5
--- /dev/null
+++ b/app/routes/analytics/audits/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/analytics/audits/index/edit';
diff --git a/app/routes/analytics/audits/index/new.js b/app/routes/analytics/audits/index/new.js
new file mode 100644
index 00000000..a9d9bd6a
--- /dev/null
+++ b/app/routes/analytics/audits/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/analytics/audits/index/new';
diff --git a/app/routes/analytics/reports/index.js b/app/routes/analytics/reports/index.js
new file mode 100644
index 00000000..c664335d
--- /dev/null
+++ b/app/routes/analytics/reports/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/analytics/reports/index';
diff --git a/app/routes/analytics/reports/index/details.js b/app/routes/analytics/reports/index/details.js
new file mode 100644
index 00000000..cfcbd246
--- /dev/null
+++ b/app/routes/analytics/reports/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/analytics/reports/index/details';
diff --git a/app/routes/analytics/reports/index/edit.js b/app/routes/analytics/reports/index/edit.js
new file mode 100644
index 00000000..e5631176
--- /dev/null
+++ b/app/routes/analytics/reports/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/analytics/reports/index/edit';
diff --git a/app/routes/analytics/reports/index/new.js b/app/routes/analytics/reports/index/new.js
new file mode 100644
index 00000000..32837ffc
--- /dev/null
+++ b/app/routes/analytics/reports/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/analytics/reports/index/new';
diff --git a/app/routes/catalog/products/index.js b/app/routes/catalog/products/index.js
new file mode 100644
index 00000000..aeae1640
--- /dev/null
+++ b/app/routes/catalog/products/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/catalog/products/index';
diff --git a/app/routes/catalog/products/index/details.js b/app/routes/catalog/products/index/details.js
new file mode 100644
index 00000000..e1f7274c
--- /dev/null
+++ b/app/routes/catalog/products/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/catalog/products/index/details';
diff --git a/app/routes/catalog/products/index/edit.js b/app/routes/catalog/products/index/edit.js
new file mode 100644
index 00000000..ce892f61
--- /dev/null
+++ b/app/routes/catalog/products/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/catalog/products/index/edit';
diff --git a/app/routes/catalog/products/index/new.js b/app/routes/catalog/products/index/new.js
new file mode 100644
index 00000000..0fe75fc6
--- /dev/null
+++ b/app/routes/catalog/products/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/catalog/products/index/new';
diff --git a/app/routes/catalog/suppliers/index.js b/app/routes/catalog/suppliers/index.js
new file mode 100644
index 00000000..bc607de0
--- /dev/null
+++ b/app/routes/catalog/suppliers/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/catalog/suppliers/index';
diff --git a/app/routes/catalog/suppliers/index/details.js b/app/routes/catalog/suppliers/index/details.js
new file mode 100644
index 00000000..f019f4ae
--- /dev/null
+++ b/app/routes/catalog/suppliers/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/catalog/suppliers/index/details';
diff --git a/app/routes/catalog/suppliers/index/edit.js b/app/routes/catalog/suppliers/index/edit.js
new file mode 100644
index 00000000..d7b3a60c
--- /dev/null
+++ b/app/routes/catalog/suppliers/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/catalog/suppliers/index/edit';
diff --git a/app/routes/catalog/suppliers/index/new.js b/app/routes/catalog/suppliers/index/new.js
new file mode 100644
index 00000000..9554eecf
--- /dev/null
+++ b/app/routes/catalog/suppliers/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/catalog/suppliers/index/new';
diff --git a/app/routes/facilities/locations.js b/app/routes/facilities/locations.js
new file mode 100644
index 00000000..672e9519
--- /dev/null
+++ b/app/routes/facilities/locations.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/facilities/locations';
diff --git a/app/routes/facilities/warehouses/index.js b/app/routes/facilities/warehouses/index.js
new file mode 100644
index 00000000..a06333ae
--- /dev/null
+++ b/app/routes/facilities/warehouses/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/facilities/warehouses/index';
diff --git a/app/routes/facilities/warehouses/index/details.js b/app/routes/facilities/warehouses/index/details.js
new file mode 100644
index 00000000..ef8fd932
--- /dev/null
+++ b/app/routes/facilities/warehouses/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/facilities/warehouses/index/details';
diff --git a/app/routes/facilities/warehouses/index/edit.js b/app/routes/facilities/warehouses/index/edit.js
new file mode 100644
index 00000000..6b66edab
--- /dev/null
+++ b/app/routes/facilities/warehouses/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/facilities/warehouses/index/edit';
diff --git a/app/routes/facilities/warehouses/index/new.js b/app/routes/facilities/warehouses/index/new.js
new file mode 100644
index 00000000..2d734406
--- /dev/null
+++ b/app/routes/facilities/warehouses/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/facilities/warehouses/index/new';
diff --git a/app/routes/facilities/zones.js b/app/routes/facilities/zones.js
new file mode 100644
index 00000000..17cadee3
--- /dev/null
+++ b/app/routes/facilities/zones.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/facilities/zones';
diff --git a/app/routes/inventory/adjustments.js b/app/routes/inventory/adjustments.js
new file mode 100644
index 00000000..b648eed1
--- /dev/null
+++ b/app/routes/inventory/adjustments.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/inventory/adjustments';
diff --git a/app/routes/inventory/batches.js b/app/routes/inventory/batches.js
new file mode 100644
index 00000000..8099ac02
--- /dev/null
+++ b/app/routes/inventory/batches.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/inventory/batches';
diff --git a/app/routes/operations/cycle-counts.js b/app/routes/operations/cycle-counts.js
new file mode 100644
index 00000000..79e9a7ee
--- /dev/null
+++ b/app/routes/operations/cycle-counts.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/operations/cycle-counts';
diff --git a/app/routes/operations/pick-lists.js b/app/routes/operations/pick-lists.js
new file mode 100644
index 00000000..8a29d90e
--- /dev/null
+++ b/app/routes/operations/pick-lists.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/operations/pick-lists';
diff --git a/app/routes/operations/reservations.js b/app/routes/operations/reservations.js
new file mode 100644
index 00000000..9bb6d84a
--- /dev/null
+++ b/app/routes/operations/reservations.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/operations/reservations';
diff --git a/app/routes/operations/transfers.js b/app/routes/operations/transfers.js
new file mode 100644
index 00000000..2de964ba
--- /dev/null
+++ b/app/routes/operations/transfers.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/operations/transfers';
diff --git a/app/routes/operations/waves.js b/app/routes/operations/waves.js
new file mode 100644
index 00000000..8c55124c
--- /dev/null
+++ b/app/routes/operations/waves.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/operations/waves';
diff --git a/app/routes/orders/purchase-orders/index.js b/app/routes/orders/purchase-orders/index.js
new file mode 100644
index 00000000..f0101811
--- /dev/null
+++ b/app/routes/orders/purchase-orders/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/orders/purchase-orders/index';
diff --git a/app/routes/orders/purchase-orders/index/details.js b/app/routes/orders/purchase-orders/index/details.js
new file mode 100644
index 00000000..d091b8a1
--- /dev/null
+++ b/app/routes/orders/purchase-orders/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/orders/purchase-orders/index/details';
diff --git a/app/routes/orders/purchase-orders/index/edit.js b/app/routes/orders/purchase-orders/index/edit.js
new file mode 100644
index 00000000..d851e4de
--- /dev/null
+++ b/app/routes/orders/purchase-orders/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/orders/purchase-orders/index/edit';
diff --git a/app/routes/orders/purchase-orders/index/new.js b/app/routes/orders/purchase-orders/index/new.js
new file mode 100644
index 00000000..ec8733fe
--- /dev/null
+++ b/app/routes/orders/purchase-orders/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/orders/purchase-orders/index/new';
diff --git a/app/routes/orders/sales-orders/index.js b/app/routes/orders/sales-orders/index.js
new file mode 100644
index 00000000..a8479d93
--- /dev/null
+++ b/app/routes/orders/sales-orders/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/orders/sales-orders/index';
diff --git a/app/routes/orders/sales-orders/index/details.js b/app/routes/orders/sales-orders/index/details.js
new file mode 100644
index 00000000..0637241a
--- /dev/null
+++ b/app/routes/orders/sales-orders/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/orders/sales-orders/index/details';
diff --git a/app/routes/orders/sales-orders/index/edit.js b/app/routes/orders/sales-orders/index/edit.js
new file mode 100644
index 00000000..d6cfcb45
--- /dev/null
+++ b/app/routes/orders/sales-orders/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/orders/sales-orders/index/edit';
diff --git a/app/routes/orders/sales-orders/index/new.js b/app/routes/orders/sales-orders/index/new.js
new file mode 100644
index 00000000..be1bf81c
--- /dev/null
+++ b/app/routes/orders/sales-orders/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/routes/orders/sales-orders/index/new';
diff --git a/app/serializers/pallet-product-variant.js b/app/serializers/pallet-product-variant.js
new file mode 100644
index 00000000..913a3dfc
--- /dev/null
+++ b/app/serializers/pallet-product-variant.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/serializers/pallet-product-variant';
diff --git a/app/services/product-actions.js b/app/services/product-actions.js
new file mode 100644
index 00000000..48d0ebd3
--- /dev/null
+++ b/app/services/product-actions.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/services/product-actions';
diff --git a/app/services/report-actions.js b/app/services/report-actions.js
new file mode 100644
index 00000000..3d4c74a1
--- /dev/null
+++ b/app/services/report-actions.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/services/report-actions';
diff --git a/app/services/supplier-actions.js b/app/services/supplier-actions.js
new file mode 100644
index 00000000..17cd8550
--- /dev/null
+++ b/app/services/supplier-actions.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/services/supplier-actions';
diff --git a/app/services/warehouse-actions.js b/app/services/warehouse-actions.js
new file mode 100644
index 00000000..d025597b
--- /dev/null
+++ b/app/services/warehouse-actions.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/services/warehouse-actions';
diff --git a/app/templates/analytics/audits/index.js b/app/templates/analytics/audits/index.js
new file mode 100644
index 00000000..335bff3b
--- /dev/null
+++ b/app/templates/analytics/audits/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/analytics/audits/index';
diff --git a/app/templates/analytics/audits/index/details.js b/app/templates/analytics/audits/index/details.js
new file mode 100644
index 00000000..e62d3fd1
--- /dev/null
+++ b/app/templates/analytics/audits/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/analytics/audits/index/details';
diff --git a/app/templates/analytics/audits/index/edit.js b/app/templates/analytics/audits/index/edit.js
new file mode 100644
index 00000000..b50440e2
--- /dev/null
+++ b/app/templates/analytics/audits/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/analytics/audits/index/edit';
diff --git a/app/templates/analytics/audits/index/new.js b/app/templates/analytics/audits/index/new.js
new file mode 100644
index 00000000..d0aee2df
--- /dev/null
+++ b/app/templates/analytics/audits/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/analytics/audits/index/new';
diff --git a/app/templates/analytics/reports/index.js b/app/templates/analytics/reports/index.js
new file mode 100644
index 00000000..98df6464
--- /dev/null
+++ b/app/templates/analytics/reports/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/analytics/reports/index';
diff --git a/app/templates/analytics/reports/index/details.js b/app/templates/analytics/reports/index/details.js
new file mode 100644
index 00000000..46bcf151
--- /dev/null
+++ b/app/templates/analytics/reports/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/analytics/reports/index/details';
diff --git a/app/templates/analytics/reports/index/edit.js b/app/templates/analytics/reports/index/edit.js
new file mode 100644
index 00000000..88c44c2d
--- /dev/null
+++ b/app/templates/analytics/reports/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/analytics/reports/index/edit';
diff --git a/app/templates/analytics/reports/index/new.js b/app/templates/analytics/reports/index/new.js
new file mode 100644
index 00000000..8dd09012
--- /dev/null
+++ b/app/templates/analytics/reports/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/analytics/reports/index/new';
diff --git a/app/templates/catalog/products/index.js b/app/templates/catalog/products/index.js
new file mode 100644
index 00000000..0014f7bf
--- /dev/null
+++ b/app/templates/catalog/products/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/catalog/products/index';
diff --git a/app/templates/catalog/products/index/details.js b/app/templates/catalog/products/index/details.js
new file mode 100644
index 00000000..426506c7
--- /dev/null
+++ b/app/templates/catalog/products/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/catalog/products/index/details';
diff --git a/app/templates/catalog/products/index/edit.js b/app/templates/catalog/products/index/edit.js
new file mode 100644
index 00000000..90fdc0ff
--- /dev/null
+++ b/app/templates/catalog/products/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/catalog/products/index/edit';
diff --git a/app/templates/catalog/products/index/new.js b/app/templates/catalog/products/index/new.js
new file mode 100644
index 00000000..9591a8c0
--- /dev/null
+++ b/app/templates/catalog/products/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/catalog/products/index/new';
diff --git a/app/templates/catalog/suppliers/index.js b/app/templates/catalog/suppliers/index.js
new file mode 100644
index 00000000..b73cf370
--- /dev/null
+++ b/app/templates/catalog/suppliers/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/catalog/suppliers/index';
diff --git a/app/templates/catalog/suppliers/index/details.js b/app/templates/catalog/suppliers/index/details.js
new file mode 100644
index 00000000..972946d5
--- /dev/null
+++ b/app/templates/catalog/suppliers/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/catalog/suppliers/index/details';
diff --git a/app/templates/catalog/suppliers/index/edit.js b/app/templates/catalog/suppliers/index/edit.js
new file mode 100644
index 00000000..9dd93b4d
--- /dev/null
+++ b/app/templates/catalog/suppliers/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/catalog/suppliers/index/edit';
diff --git a/app/templates/catalog/suppliers/index/new.js b/app/templates/catalog/suppliers/index/new.js
new file mode 100644
index 00000000..eb9b8372
--- /dev/null
+++ b/app/templates/catalog/suppliers/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/catalog/suppliers/index/new';
diff --git a/app/templates/facilities/locations.js b/app/templates/facilities/locations.js
new file mode 100644
index 00000000..5662295e
--- /dev/null
+++ b/app/templates/facilities/locations.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/facilities/locations';
diff --git a/app/templates/facilities/warehouses/index.js b/app/templates/facilities/warehouses/index.js
new file mode 100644
index 00000000..9233cf1e
--- /dev/null
+++ b/app/templates/facilities/warehouses/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/facilities/warehouses/index';
diff --git a/app/templates/facilities/warehouses/index/details.js b/app/templates/facilities/warehouses/index/details.js
new file mode 100644
index 00000000..26502289
--- /dev/null
+++ b/app/templates/facilities/warehouses/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/facilities/warehouses/index/details';
diff --git a/app/templates/facilities/warehouses/index/edit.js b/app/templates/facilities/warehouses/index/edit.js
new file mode 100644
index 00000000..df1f892c
--- /dev/null
+++ b/app/templates/facilities/warehouses/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/facilities/warehouses/index/edit';
diff --git a/app/templates/facilities/warehouses/index/new.js b/app/templates/facilities/warehouses/index/new.js
new file mode 100644
index 00000000..a490f738
--- /dev/null
+++ b/app/templates/facilities/warehouses/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/facilities/warehouses/index/new';
diff --git a/app/templates/facilities/zones.js b/app/templates/facilities/zones.js
new file mode 100644
index 00000000..a166b1c0
--- /dev/null
+++ b/app/templates/facilities/zones.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/facilities/zones';
diff --git a/app/templates/inventory/adjustments.js b/app/templates/inventory/adjustments.js
new file mode 100644
index 00000000..f49f6d7b
--- /dev/null
+++ b/app/templates/inventory/adjustments.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/inventory/adjustments';
diff --git a/app/templates/inventory/batches.js b/app/templates/inventory/batches.js
new file mode 100644
index 00000000..59e6a4a4
--- /dev/null
+++ b/app/templates/inventory/batches.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/inventory/batches';
diff --git a/app/templates/operations/cycle-counts.js b/app/templates/operations/cycle-counts.js
new file mode 100644
index 00000000..7d82805b
--- /dev/null
+++ b/app/templates/operations/cycle-counts.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/operations/cycle-counts';
diff --git a/app/templates/operations/pick-lists.js b/app/templates/operations/pick-lists.js
new file mode 100644
index 00000000..027ea35d
--- /dev/null
+++ b/app/templates/operations/pick-lists.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/operations/pick-lists';
diff --git a/app/templates/operations/reservations.js b/app/templates/operations/reservations.js
new file mode 100644
index 00000000..425be82a
--- /dev/null
+++ b/app/templates/operations/reservations.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/operations/reservations';
diff --git a/app/templates/operations/transfers.js b/app/templates/operations/transfers.js
new file mode 100644
index 00000000..cf3ccff2
--- /dev/null
+++ b/app/templates/operations/transfers.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/operations/transfers';
diff --git a/app/templates/operations/waves.js b/app/templates/operations/waves.js
new file mode 100644
index 00000000..642e6e59
--- /dev/null
+++ b/app/templates/operations/waves.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/operations/waves';
diff --git a/app/templates/orders/purchase-orders/index.js b/app/templates/orders/purchase-orders/index.js
new file mode 100644
index 00000000..9c4b86e9
--- /dev/null
+++ b/app/templates/orders/purchase-orders/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/orders/purchase-orders/index';
diff --git a/app/templates/orders/purchase-orders/index/details.js b/app/templates/orders/purchase-orders/index/details.js
new file mode 100644
index 00000000..ab596d68
--- /dev/null
+++ b/app/templates/orders/purchase-orders/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/orders/purchase-orders/index/details';
diff --git a/app/templates/orders/purchase-orders/index/edit.js b/app/templates/orders/purchase-orders/index/edit.js
new file mode 100644
index 00000000..f95e7f49
--- /dev/null
+++ b/app/templates/orders/purchase-orders/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/orders/purchase-orders/index/edit';
diff --git a/app/templates/orders/purchase-orders/index/new.js b/app/templates/orders/purchase-orders/index/new.js
new file mode 100644
index 00000000..71cd07e6
--- /dev/null
+++ b/app/templates/orders/purchase-orders/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/orders/purchase-orders/index/new';
diff --git a/app/templates/orders/sales-orders/index.js b/app/templates/orders/sales-orders/index.js
new file mode 100644
index 00000000..6c4a38ac
--- /dev/null
+++ b/app/templates/orders/sales-orders/index.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/orders/sales-orders/index';
diff --git a/app/templates/orders/sales-orders/index/details.js b/app/templates/orders/sales-orders/index/details.js
new file mode 100644
index 00000000..b5d579e3
--- /dev/null
+++ b/app/templates/orders/sales-orders/index/details.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/orders/sales-orders/index/details';
diff --git a/app/templates/orders/sales-orders/index/edit.js b/app/templates/orders/sales-orders/index/edit.js
new file mode 100644
index 00000000..051e2fa8
--- /dev/null
+++ b/app/templates/orders/sales-orders/index/edit.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/orders/sales-orders/index/edit';
diff --git a/app/templates/orders/sales-orders/index/new.js b/app/templates/orders/sales-orders/index/new.js
new file mode 100644
index 00000000..22488acc
--- /dev/null
+++ b/app/templates/orders/sales-orders/index/new.js
@@ -0,0 +1 @@
+export { default } from '@fleetbase/pallet-engine/templates/orders/sales-orders/index/new';
diff --git a/composer.json b/composer.json
index 8b181b70..d61fad1b 100644
--- a/composer.json
+++ b/composer.json
@@ -1,6 +1,6 @@
{
"name": "fleetbase/pallet-api",
- "version": "0.0.1",
+ "version": "0.0.2",
"description": "Inventory & Warehouse Management Extension for Fleetbase",
"keywords": [
"fleetbase",
@@ -25,8 +25,8 @@
],
"require": {
"php": "^8.0",
- "fleetbase/core-api": "^1.4.27",
- "fleetbase/fleetops-api": "^0.5.2",
+ "fleetbase/core-api": "*",
+ "fleetbase/fleetops-api": "*",
"php-http/guzzle7-adapter": "^1.0",
"psr/http-factory-implementation": "*"
},
@@ -37,12 +37,6 @@
"phpstan/phpstan": "^1.10.38",
"symfony/var-dumper": "^5.4.29"
},
- "repositories": [
- {
- "type": "vcs",
- "url": "https://github.com/fleetbase/laravel-model-caching"
- }
- ],
"autoload": {
"psr-4": {
"Fleetbase\\Pallet\\": "server/src/",
diff --git a/config/environment.js b/config/environment.js
index f6a19f8c..3814eb70 100644
--- a/config/environment.js
+++ b/config/environment.js
@@ -5,6 +5,11 @@ module.exports = function (environment) {
let ENV = {
modulePrefix: name,
environment,
+ 'ember-leaflet': {
+ excludeCSS: true,
+ excludeJS: true,
+ excludeImages: true,
+ },
};
return ENV;
diff --git a/extension.json b/extension.json
index b33ffe54..a47358f4 100644
--- a/extension.json
+++ b/extension.json
@@ -1,6 +1,6 @@
{
"name": "Pallet",
- "version": "0.0.1",
+ "version": "0.0.2",
"description": "Inventory & Warehouse Management Extension for Fleetbase",
"repository": "https://github.com/fleetbase/pallet",
"license": "AGPL-3.0-or-later",
diff --git a/index.js b/index.js
index f7ceeee3..7a5e2986 100644
--- a/index.js
+++ b/index.js
@@ -1,21 +1,10 @@
'use strict';
const { buildEngine } = require('ember-engines/lib/engine-addon');
const { name } = require('./package');
-const Funnel = require('broccoli-funnel');
module.exports = buildEngine({
name,
- postprocessTree(type, tree) {
- if (type === 'css') {
- tree = new Funnel(tree, {
- exclude: ['**/@fleetbase/ember-ui/**/*.css'],
- });
- }
-
- return tree;
- },
-
lazyLoading: {
enabled: true,
},
diff --git a/package.json b/package.json
index 17acb21c..bc37fedf 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@fleetbase/pallet-engine",
- "version": "0.0.1",
+ "version": "0.0.2",
"description": "Inventory & Warehouse Management Extension for Fleetbase",
"keywords": [
"fleetbase-extension",
@@ -41,14 +41,17 @@
"publish:github": "npm config set '@fleetbase:registry' https://npm.pkg.github.com/ && npm publish"
},
"dependencies": {
- "@fleetbase/ember-core": "^0.2.11",
- "@fleetbase/ember-ui": "^0.2.17",
"@babel/core": "^7.23.2",
- "@fleetbase/fleetops-data": "^0.1.7",
- "@fortawesome/ember-fontawesome": "^0.4.1",
- "@fortawesome/fontawesome-svg-core": "^6.4.0",
- "@fortawesome/free-solid-svg-icons": "^6.4.0",
+ "@fleetbase/ember-core": "^0.3.20",
+ "@fleetbase/ember-ui": "^0.3.33",
+ "@fleetbase/fleetops-data": "^0.1.35",
+ "@fleetbase/leaflet-routing-machine": "^3.2.16",
+ "@fortawesome/ember-fontawesome": "^2.0.0",
+ "@fortawesome/fontawesome-svg-core": "6.4.0",
+ "@fortawesome/free-brands-svg-icons": "6.4.0",
+ "@fortawesome/free-solid-svg-icons": "6.4.0",
"broccoli-funnel": "^3.0.8",
+ "ember-auto-import": "^2.7.4",
"ember-cli-babel": "^8.2.0",
"ember-cli-htmlbars": "^6.3.0",
"ember-intl": "6.3.2",
@@ -67,7 +70,6 @@
"@glimmer/tracking": "^1.1.2",
"broccoli-asset-rev": "^3.0.0",
"concurrently": "^8.2.2",
- "ember-auto-import": "^2.6.3",
"ember-cli": "~5.4.1",
"ember-cli-clean-css": "^3.0.0",
"ember-cli-dependency-checker": "^3.3.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f58be0bf..b01a2494 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,1937 +1,1115 @@
-lockfileVersion: '6.0'
-
-dependencies:
- '@babel/core':
- specifier: ^7.23.2
- version: 7.23.2
- '@fleetbase/ember-core':
- specifier: ^0.2.11
- version: 0.2.11(@ember/test-helpers@3.2.0)(ember-source@5.4.0)(webpack@5.89.0)
- '@fleetbase/ember-ui':
- specifier: ^0.2.17
- version: 0.2.17(@ember/test-helpers@3.2.0)(@glimmer/component@1.1.2)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)(postcss@8.4.35)(rollup@4.12.0)(tracked-built-ins@3.3.0)(webpack@5.89.0)
- '@fleetbase/fleetops-data':
- specifier: ^0.1.7
- version: 0.1.7
- '@fortawesome/ember-fontawesome':
- specifier: ^0.4.1
- version: 0.4.1(rollup@4.12.0)
- '@fortawesome/fontawesome-svg-core':
- specifier: ^6.4.0
- version: 6.4.0
- '@fortawesome/free-solid-svg-icons':
- specifier: ^6.4.0
- version: 6.4.0
- broccoli-funnel:
- specifier: ^3.0.8
- version: 3.0.8
- ember-cli-babel:
- specifier: ^8.2.0
- version: 8.2.0(@babel/core@7.23.2)
- ember-cli-htmlbars:
- specifier: ^6.3.0
- version: 6.3.0
- ember-intl:
- specifier: 6.3.2
- version: 6.3.2(@babel/core@7.23.2)(webpack@5.89.0)
- ember-leaflet:
- specifier: ^5.1.1
- version: 5.1.1(@babel/core@7.23.2)(ember-source@5.4.0)(leaflet@1.9.4)(webpack@5.89.0)
- ember-radio-button:
- specifier: ^3.0.0-beta.1
- version: 3.0.0-beta.1
- ember-wormhole:
- specifier: ^0.6.0
- version: 0.6.0
- leaflet:
- specifier: ^1.9.4
- version: 1.9.4
-
-devDependencies:
- '@babel/eslint-parser':
- specifier: ^7.22.15
- version: 7.22.15(@babel/core@7.23.2)(eslint@8.52.0)
- '@babel/plugin-proposal-decorators':
- specifier: ^7.23.2
- version: 7.23.2(@babel/core@7.23.2)
- '@ember/optional-features':
- specifier: ^2.0.0
- version: 2.0.0
- '@ember/test-helpers':
- specifier: ^3.2.0
- version: 3.2.0(ember-source@5.4.0)(webpack@5.89.0)
- '@embroider/test-setup':
- specifier: ^3.0.2
- version: 3.0.2
- '@glimmer/component':
- specifier: ^1.1.2
- version: 1.1.2(@babel/core@7.23.2)
- '@glimmer/tracking':
- specifier: ^1.1.2
- version: 1.1.2
- broccoli-asset-rev:
- specifier: ^3.0.0
- version: 3.0.0
- concurrently:
- specifier: ^8.2.2
- version: 8.2.2
- ember-auto-import:
- specifier: ^2.6.3
- version: 2.6.3(webpack@5.89.0)
- ember-cli:
- specifier: ~5.4.1
- version: 5.4.1
- ember-cli-clean-css:
- specifier: ^3.0.0
- version: 3.0.0
- ember-cli-dependency-checker:
- specifier: ^3.3.2
- version: 3.3.2(ember-cli@5.4.1)
- ember-cli-inject-live-reload:
- specifier: ^2.1.0
- version: 2.1.0
- ember-cli-sri:
- specifier: ^2.1.1
- version: 2.1.1
- ember-cli-terser:
- specifier: ^4.0.2
- version: 4.0.2
- ember-composable-helpers:
- specifier: ^5.0.0
- version: 5.0.0
- ember-concurrency:
- specifier: ^3.1.1
- version: 3.1.1(@babel/core@7.23.2)(ember-source@5.4.0)
- ember-concurrency-decorators:
- specifier: ^2.0.3
- version: 2.0.3(@babel/core@7.23.2)
- ember-data:
- specifier: ^4.12.5
- version: 4.12.5(@babel/core@7.23.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)(webpack@5.89.0)
- ember-engines:
- specifier: ^0.9.0
- version: 0.9.0(ember-source@5.4.0)
- ember-load-initializers:
- specifier: ^2.1.2
- version: 2.1.2(@babel/core@7.23.2)
- ember-math-helpers:
- specifier: ^4.0.0
- version: 4.0.0(ember-source@5.4.0)
- ember-page-title:
- specifier: ^8.0.0
- version: 8.0.0
- ember-qunit:
- specifier: ^8.0.1
- version: 8.0.1(@ember/test-helpers@3.2.0)(ember-source@5.4.0)(qunit@2.20.0)
- ember-resolver:
- specifier: ^11.0.1
- version: 11.0.1(ember-source@5.4.0)
- ember-source:
- specifier: ~5.4.0
- version: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
- ember-source-channel-url:
- specifier: ^3.0.0
- version: 3.0.0
- ember-template-lint:
- specifier: ^5.11.2
- version: 5.11.2
- ember-try:
- specifier: ^3.0.0
- version: 3.0.0
- eslint:
- specifier: ^8.52.0
- version: 8.52.0
- eslint-config-prettier:
- specifier: ^9.0.0
- version: 9.0.0(eslint@8.52.0)
- eslint-plugin-ember:
- specifier: ^11.11.1
- version: 11.11.1(eslint@8.52.0)
- eslint-plugin-n:
- specifier: ^16.2.0
- version: 16.2.0(eslint@8.52.0)
- eslint-plugin-prettier:
- specifier: ^5.0.1
- version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.52.0)(prettier@3.0.3)
- eslint-plugin-qunit:
- specifier: ^8.0.1
- version: 8.0.1(eslint@8.52.0)
- loader.js:
- specifier: ^4.7.0
- version: 4.7.0
- prettier:
- specifier: ^3.0.3
- version: 3.0.3
- qunit:
- specifier: ^2.20.0
- version: 2.20.0
- qunit-dom:
- specifier: ^2.0.0
- version: 2.0.0
- stylelint:
- specifier: ^15.11.0
- version: 15.11.0
- stylelint-config-standard:
- specifier: ^34.0.0
- version: 34.0.0(stylelint@15.11.0)
- stylelint-prettier:
- specifier: ^4.0.2
- version: 4.0.2(prettier@3.0.3)(stylelint@15.11.0)
- webpack:
- specifier: ^5.89.0
- version: 5.89.0
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@babel/core':
+ specifier: ^7.23.2
+ version: 7.29.7
+ '@fleetbase/ember-core':
+ specifier: ^0.3.20
+ version: 0.3.20(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(eslint@8.57.1)(webpack@5.107.2(postcss@8.5.15))
+ '@fleetbase/ember-ui':
+ specifier: ^0.3.33
+ version: 0.3.33(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(postcss@8.5.15)(rollup@2.80.0)(tracked-built-ins@3.4.0(@babel/core@7.29.7))(webpack@5.107.2(postcss@8.5.15))(yaml@2.9.0)
+ '@fleetbase/fleetops-data':
+ specifier: ^0.1.35
+ version: 0.1.35(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(eslint@8.57.1)(webpack@5.107.2(postcss@8.5.15))
+ '@fleetbase/leaflet-routing-machine':
+ specifier: ^3.2.16
+ version: 3.2.17
+ '@fortawesome/ember-fontawesome':
+ specifier: ^2.0.0
+ version: 2.0.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(rollup@2.80.0)(webpack@5.107.2(postcss@8.5.15))
+ '@fortawesome/fontawesome-svg-core':
+ specifier: 6.4.0
+ version: 6.4.0
+ '@fortawesome/free-brands-svg-icons':
+ specifier: 6.4.0
+ version: 6.4.0
+ '@fortawesome/free-solid-svg-icons':
+ specifier: 6.4.0
+ version: 6.4.0
+ broccoli-funnel:
+ specifier: ^3.0.8
+ version: 3.0.8
+ ember-auto-import:
+ specifier: ^2.7.4
+ version: 2.13.1(webpack@5.107.2(postcss@8.5.15))
+ ember-cli-babel:
+ specifier: ^8.2.0
+ version: 8.3.1(@babel/core@7.29.7)
+ ember-cli-htmlbars:
+ specifier: ^6.3.0
+ version: 6.3.0
+ ember-intl:
+ specifier: 6.3.2
+ version: 6.3.2(@babel/core@7.29.7)(webpack@5.107.2(postcss@8.5.15))
+ ember-leaflet:
+ specifier: ^5.1.1
+ version: 5.1.3(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(leaflet@1.9.4)(webpack@5.107.2(postcss@8.5.15))
+ ember-radio-button:
+ specifier: ^3.0.0-beta.1
+ version: 3.0.0-beta.1(postcss@8.5.15)
+ ember-wormhole:
+ specifier: ^0.6.0
+ version: 0.6.1
+ leaflet:
+ specifier: ^1.9.4
+ version: 1.9.4
+ devDependencies:
+ '@babel/eslint-parser':
+ specifier: ^7.22.15
+ version: 7.29.7(@babel/core@7.29.7)(eslint@8.57.1)
+ '@babel/plugin-proposal-decorators':
+ specifier: ^7.23.2
+ version: 7.29.7(@babel/core@7.29.7)
+ '@ember/optional-features':
+ specifier: ^2.0.0
+ version: 2.3.0
+ '@ember/test-helpers':
+ specifier: ^3.2.0
+ version: 3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
+ '@embroider/test-setup':
+ specifier: ^3.0.2
+ version: 3.0.3
+ '@glimmer/component':
+ specifier: ^1.1.2
+ version: 1.1.2(@babel/core@7.29.7)
+ '@glimmer/tracking':
+ specifier: ^1.1.2
+ version: 1.1.2
+ broccoli-asset-rev:
+ specifier: ^3.0.0
+ version: 3.0.0
+ concurrently:
+ specifier: ^8.2.2
+ version: 8.2.2
+ ember-cli:
+ specifier: ~5.4.1
+ version: 5.4.2(@babel/core@7.29.7)(@types/node@25.9.1)(handlebars@4.7.9)(underscore@1.13.8)
+ ember-cli-clean-css:
+ specifier: ^3.0.0
+ version: 3.0.0
+ ember-cli-dependency-checker:
+ specifier: ^3.3.2
+ version: 3.3.3(ember-cli@5.4.2(@babel/core@7.29.7)(@types/node@25.9.1)(handlebars@4.7.9)(underscore@1.13.8))
+ ember-cli-inject-live-reload:
+ specifier: ^2.1.0
+ version: 2.1.0
+ ember-cli-sri:
+ specifier: ^2.1.1
+ version: 2.1.1
+ ember-cli-terser:
+ specifier: ^4.0.2
+ version: 4.0.2
+ ember-composable-helpers:
+ specifier: ^5.0.0
+ version: 5.0.0
+ ember-concurrency:
+ specifier: ^3.1.1
+ version: 3.1.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-concurrency-decorators:
+ specifier: ^2.0.3
+ version: 2.0.3(@babel/core@7.29.7)
+ ember-data:
+ specifier: ^4.12.5
+ version: 4.12.8(@babel/core@7.29.7)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
+ ember-engines:
+ specifier: ^0.9.0
+ version: 0.9.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-load-initializers:
+ specifier: ^2.1.2
+ version: 2.1.2(@babel/core@7.29.7)
+ ember-math-helpers:
+ specifier: ^4.0.0
+ version: 4.2.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-page-title:
+ specifier: ^8.0.0
+ version: 8.2.4(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-qunit:
+ specifier: ^8.0.1
+ version: 8.1.1(@babel/core@7.29.7)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(qunit@2.26.0)
+ ember-resolver:
+ specifier: ^11.0.1
+ version: 11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-source:
+ specifier: ~5.4.0
+ version: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ ember-source-channel-url:
+ specifier: ^3.0.0
+ version: 3.0.0
+ ember-template-lint:
+ specifier: ^5.11.2
+ version: 5.13.0
+ ember-try:
+ specifier: ^3.0.0
+ version: 3.0.0
+ eslint:
+ specifier: ^8.52.0
+ version: 8.57.1
+ eslint-config-prettier:
+ specifier: ^9.0.0
+ version: 9.1.2(eslint@8.57.1)
+ eslint-plugin-ember:
+ specifier: ^11.11.1
+ version: 11.12.0(eslint@8.57.1)
+ eslint-plugin-n:
+ specifier: ^16.2.0
+ version: 16.6.2(eslint@8.57.1)
+ eslint-plugin-prettier:
+ specifier: ^5.0.1
+ version: 5.5.6(@types/eslint@8.56.12)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.8.3)
+ eslint-plugin-qunit:
+ specifier: ^8.0.1
+ version: 8.2.6(eslint@8.57.1)
+ loader.js:
+ specifier: ^4.7.0
+ version: 4.7.0
+ prettier:
+ specifier: ^3.0.3
+ version: 3.8.3
+ qunit:
+ specifier: ^2.20.0
+ version: 2.26.0
+ qunit-dom:
+ specifier: ^2.0.0
+ version: 2.0.0
+ stylelint:
+ specifier: ^15.11.0
+ version: 15.11.0
+ stylelint-config-standard:
+ specifier: ^34.0.0
+ version: 34.0.0(stylelint@15.11.0)
+ stylelint-prettier:
+ specifier: ^4.0.2
+ version: 4.1.0(prettier@3.8.3)(stylelint@15.11.0)
+ webpack:
+ specifier: ^5.89.0
+ version: 5.107.2(postcss@8.5.15)
packages:
- /@aashutoshrathi/word-wrap@1.2.6:
- resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /@alloc/quick-lru@5.2.0:
+ '@alloc/quick-lru@5.2.0':
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
- dev: false
-
- /@ampproject/remapping@2.2.1:
- resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
- engines: {node: '>=6.0.0'}
- dependencies:
- '@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.22
- /@babel/code-frame@7.23.5:
- resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
+ '@babel/code-frame@7.29.7':
+ resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/highlight': 7.23.4
- chalk: 2.4.2
- /@babel/compat-data@7.23.5:
- resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
+ '@babel/compat-data@7.29.7':
+ resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==}
engines: {node: '>=6.9.0'}
- /@babel/core@7.23.2:
- resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==}
+ '@babel/core@7.29.7':
+ resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@ampproject/remapping': 2.2.1
- '@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/core@7.23.2)
- '@babel/helpers': 7.23.9
- '@babel/parser': 7.23.9
- '@babel/template': 7.23.9
- '@babel/traverse': 7.23.9
- '@babel/types': 7.23.9
- convert-source-map: 2.0.0
- debug: 4.3.4
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
- /@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.52.0):
- resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==}
+ '@babel/eslint-parser@7.29.7':
+ resolution: {integrity: sha512-zxt+UJTOMKvUt3yOg+D58MLuz334pHp93qifMFcjIIO+9hN6t+ufw2gi7vDPMpxvfnHRR+3VVXvIjineCcgyXw==}
engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
peerDependencies:
'@babel/core': ^7.11.0
- eslint: ^7.5.0 || ^8.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
- eslint: 8.52.0
- eslint-visitor-keys: 2.1.0
- semver: 6.3.1
- dev: true
-
- /@babel/generator@7.23.6:
- resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.9
- '@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.22
- jsesc: 2.5.2
+ eslint: ^7.5.0 || ^8.0.0 || ^9.0.0
- /@babel/helper-annotate-as-pure@7.22.5:
- resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
+ '@babel/generator@7.29.7':
+ resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.9
- /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
- resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
+ '@babel/helper-annotate-as-pure@7.29.7':
+ resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.9
- /@babel/helper-compilation-targets@7.23.6:
- resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
+ '@babel/helper-compilation-targets@7.29.7':
+ resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/helper-validator-option': 7.23.5
- browserslist: 4.23.0
- lru-cache: 5.1.1
- semver: 6.3.1
- /@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.2):
- resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==}
+ '@babel/helper-create-class-features-plugin@7.29.7':
+ resolution: {integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@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/core@7.23.2)
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
- semver: 6.3.1
- /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.2):
- resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
+ '@babel/helper-create-regexp-features-plugin@7.29.7':
+ resolution: {integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-annotate-as-pure': 7.22.5
- regexpu-core: 5.3.2
- semver: 6.3.1
- /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.2):
- resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==}
+ '@babel/helper-define-polyfill-provider@0.6.8':
+ resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- debug: 4.3.4
- lodash.debounce: 4.0.8
- resolve: 1.22.8
- transitivePeerDependencies:
- - supports-color
-
- /@babel/helper-environment-visitor@7.22.20:
- resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
- engines: {node: '>=6.9.0'}
-
- /@babel/helper-function-name@7.23.0:
- resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/template': 7.23.9
- '@babel/types': 7.23.9
- /@babel/helper-hoist-variables@7.22.5:
- resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
+ '@babel/helper-globals@7.29.7':
+ resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.9
- /@babel/helper-member-expression-to-functions@7.23.0:
- resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
+ '@babel/helper-member-expression-to-functions@7.29.7':
+ resolution: {integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.9
- /@babel/helper-module-imports@7.22.15:
- resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
+ '@babel/helper-module-imports@7.29.7':
+ resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.9
- /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
+ '@babel/helper-module-transforms@7.29.7':
+ resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-module-imports': 7.22.15
- '@babel/helper-simple-access': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
- '@babel/helper-validator-identifier': 7.22.20
- /@babel/helper-optimise-call-expression@7.22.5:
- resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
+ '@babel/helper-optimise-call-expression@7.29.7':
+ resolution: {integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.9
- /@babel/helper-plugin-utils@7.22.5:
- resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
+ '@babel/helper-plugin-utils@7.29.7':
+ resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==}
engines: {node: '>=6.9.0'}
- /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.2):
- resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
+ '@babel/helper-remap-async-to-generator@7.29.7':
+ resolution: {integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-wrap-function': 7.22.20
- /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.2):
- resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==}
+ '@babel/helper-replace-supers@7.29.7':
+ resolution: {integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-member-expression-to-functions': 7.23.0
- '@babel/helper-optimise-call-expression': 7.22.5
- /@babel/helper-simple-access@7.22.5:
- resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
+ '@babel/helper-skip-transparent-expression-wrappers@7.29.7':
+ resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.9
- /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
- resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
+ '@babel/helper-string-parser@7.29.7':
+ resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.9
- /@babel/helper-split-export-declaration@7.22.6:
- resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
+ '@babel/helper-validator-identifier@7.29.7':
+ resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.9
- /@babel/helper-string-parser@7.23.4:
- resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
+ '@babel/helper-validator-option@7.29.7':
+ resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==}
engines: {node: '>=6.9.0'}
- /@babel/helper-validator-identifier@7.22.20:
- resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
+ '@babel/helper-wrap-function@7.29.7':
+ resolution: {integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==}
engines: {node: '>=6.9.0'}
- /@babel/helper-validator-option@7.23.5:
- resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
+ '@babel/helpers@7.29.7':
+ resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==}
engines: {node: '>=6.9.0'}
- /@babel/helper-wrap-function@7.22.20:
- resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-function-name': 7.23.0
- '@babel/template': 7.23.9
- '@babel/types': 7.23.9
+ '@babel/parser@7.29.7':
+ resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
- /@babel/helpers@7.23.9:
- resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==}
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7':
+ resolution: {integrity: sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/template': 7.23.9
- '@babel/traverse': 7.23.9
- '@babel/types': 7.23.9
- transitivePeerDependencies:
- - supports-color
+ peerDependencies:
+ '@babel/core': ^7.0.0
- /@babel/highlight@7.23.4:
- resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7':
+ resolution: {integrity: sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-validator-identifier': 7.22.20
- chalk: 2.4.2
- js-tokens: 4.0.0
+ peerDependencies:
+ '@babel/core': ^7.0.0
- /@babel/parser@7.23.9:
- resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
- engines: {node: '>=6.0.0'}
- hasBin: true
- dependencies:
- '@babel/types': 7.23.9
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7':
+ resolution: {integrity: sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
- /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==}
+ '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7':
+ resolution: {integrity: sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==}
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7':
+ resolution: {integrity: sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.13.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.2)
- /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.2):
- resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==}
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7':
+ resolution: {integrity: sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.2):
+ '@babel/plugin-proposal-class-properties@7.18.6':
resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.23.2):
- resolution: {integrity: sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg==}
+ '@babel/plugin-proposal-decorators@7.29.7':
+ resolution: {integrity: sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2)
- '@babel/helper-split-export-declaration': 7.22.6
- '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.2)
- /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.2):
+ '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6':
resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2)
- /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.23.2):
+ '@babel/plugin-proposal-optional-chaining@7.21.0':
resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2)
- /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.23.2):
+ '@babel/plugin-proposal-private-methods@7.18.6':
resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.2):
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- /@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.23.2):
+ '@babel/plugin-proposal-private-property-in-object@7.21.11':
resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2)
-
- /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2):
- resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.2):
- resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==}
+ '@babel/plugin-syntax-decorators@7.29.7':
+ resolution: {integrity: sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==}
+ '@babel/plugin-syntax-import-assertions@7.29.7':
+ resolution: {integrity: sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==}
+ '@babel/plugin-syntax-import-attributes@7.29.7':
+ resolution: {integrity: sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2):
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2):
+ '@babel/plugin-syntax-optional-chaining@7.8.3':
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.2):
+ '@babel/plugin-syntax-private-property-in-object@7.14.5':
resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
-
- /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2):
- resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==}
+ '@babel/plugin-syntax-typescript@7.29.7':
+ resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.2):
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==}
+ '@babel/plugin-transform-arrow-functions@7.29.7':
+ resolution: {integrity: sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.2):
- resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==}
+ '@babel/plugin-transform-async-generator-functions@7.29.7':
+ resolution: {integrity: sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.2)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2)
- /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==}
+ '@babel/plugin-transform-async-to-generator@7.29.7':
+ resolution: {integrity: sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-module-imports': 7.22.15
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.2)
- /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==}
+ '@babel/plugin-transform-block-scoped-functions@7.29.7':
+ resolution: {integrity: sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==}
+ '@babel/plugin-transform-block-scoping@7.29.7':
+ resolution: {integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==}
+ '@babel/plugin-transform-class-properties@7.29.7':
+ resolution: {integrity: sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==}
+ '@babel/plugin-transform-class-static-block@7.29.7':
+ resolution: {integrity: sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.12.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2)
- /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.2):
- resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==}
+ '@babel/plugin-transform-classes@7.29.7':
+ resolution: {integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2)
- '@babel/helper-split-export-declaration': 7.22.6
- globals: 11.12.0
-
- /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==}
+
+ '@babel/plugin-transform-computed-properties@7.29.7':
+ resolution: {integrity: sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/template': 7.23.9
- /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==}
+ '@babel/plugin-transform-destructuring@7.29.7':
+ resolution: {integrity: sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==}
+ '@babel/plugin-transform-dotall-regex@7.29.7':
+ resolution: {integrity: sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==}
+ '@babel/plugin-transform-duplicate-keys@7.29.7':
+ resolution: {integrity: sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==}
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7':
+ resolution: {integrity: sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-dynamic-import@7.29.7':
+ resolution: {integrity: sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2)
- /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==}
+ '@babel/plugin-transform-explicit-resource-management@7.29.7':
+ resolution: {integrity: sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==}
+ '@babel/plugin-transform-exponentiation-operator@7.29.7':
+ resolution: {integrity: sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2)
- /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.2):
- resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==}
+ '@babel/plugin-transform-export-namespace-from@7.29.7':
+ resolution: {integrity: sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==}
+ '@babel/plugin-transform-for-of@7.29.7':
+ resolution: {integrity: sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==}
+ '@babel/plugin-transform-function-name@7.29.7':
+ resolution: {integrity: sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2)
- /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==}
+ '@babel/plugin-transform-json-strings@7.29.7':
+ resolution: {integrity: sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==}
+ '@babel/plugin-transform-literals@7.29.7':
+ resolution: {integrity: sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2)
- /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==}
+ '@babel/plugin-transform-logical-assignment-operators@7.29.7':
+ resolution: {integrity: sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==}
+ '@babel/plugin-transform-member-expression-literals@7.29.7':
+ resolution: {integrity: sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==}
+ '@babel/plugin-transform-modules-amd@7.29.7':
+ resolution: {integrity: sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-simple-access': 7.22.5
- /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.2):
- resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==}
+ '@babel/plugin-transform-modules-commonjs@7.29.7':
+ resolution: {integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-validator-identifier': 7.22.20
- /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==}
+ '@babel/plugin-transform-modules-systemjs@7.29.7':
+ resolution: {integrity: sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-umd@7.29.7':
+ resolution: {integrity: sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.2):
- resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
+ '@babel/plugin-transform-named-capturing-groups-regex@7.29.7':
+ resolution: {integrity: sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==}
+ '@babel/plugin-transform-new-target@7.29.7':
+ resolution: {integrity: sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==}
+ '@babel/plugin-transform-nullish-coalescing-operator@7.29.7':
+ resolution: {integrity: sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2)
- /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==}
+ '@babel/plugin-transform-numeric-separator@7.29.7':
+ resolution: {integrity: sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2)
- /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==}
+ '@babel/plugin-transform-object-rest-spread@7.29.7':
+ resolution: {integrity: sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/core': 7.23.2
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2)
- '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.2)
- /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==}
+ '@babel/plugin-transform-object-super@7.29.7':
+ resolution: {integrity: sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2)
- /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==}
+ '@babel/plugin-transform-optional-catch-binding@7.29.7':
+ resolution: {integrity: sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2)
- /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==}
+ '@babel/plugin-transform-optional-chaining@7.29.7':
+ resolution: {integrity: sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2)
- /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==}
+ '@babel/plugin-transform-parameters@7.29.7':
+ resolution: {integrity: sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==}
+ '@babel/plugin-transform-private-methods@7.29.7':
+ resolution: {integrity: sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==}
+ '@babel/plugin-transform-private-property-in-object@7.29.7':
+ resolution: {integrity: sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2)
- /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==}
+ '@babel/plugin-transform-property-literals@7.29.7':
+ resolution: {integrity: sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==}
+ '@babel/plugin-transform-regenerator@7.29.7':
+ resolution: {integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- regenerator-transform: 0.15.2
- /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==}
+ '@babel/plugin-transform-regexp-modifiers@7.29.7':
+ resolution: {integrity: sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-reserved-words@7.29.7':
+ resolution: {integrity: sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-runtime@7.23.9(@babel/core@7.23.2):
- resolution: {integrity: sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==}
+ '@babel/plugin-transform-runtime@7.29.7':
+ resolution: {integrity: sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-module-imports': 7.22.15
- '@babel/helper-plugin-utils': 7.22.5
- babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.2)
- babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.2)
- babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.2)
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
- /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==}
+ '@babel/plugin-transform-shorthand-properties@7.29.7':
+ resolution: {integrity: sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==}
+ '@babel/plugin-transform-spread@7.29.7':
+ resolution: {integrity: sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==}
+ '@babel/plugin-transform-sticky-regex@7.29.7':
+ resolution: {integrity: sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==}
+ '@babel/plugin-transform-template-literals@7.29.7':
+ resolution: {integrity: sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==}
+ '@babel/plugin-transform-typeof-symbol@7.29.7':
+ resolution: {integrity: sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.2):
- resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==}
+ '@babel/plugin-transform-typescript@7.29.7':
+ resolution: {integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.2)
- /@babel/plugin-transform-typescript@7.4.5(@babel/core@7.23.2):
+ '@babel/plugin-transform-typescript@7.4.5':
resolution: {integrity: sha512-RPB/YeGr4ZrFKNwfuQRlMf2lxoCUaU01MTw39/OFE/RiL8HDjtn68BwEPft1P7JN4akyEmjGWAMNldOV7o9V2g==}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.2)
- dev: true
- /@babel/plugin-transform-typescript@7.5.5(@babel/core@7.23.2):
+ '@babel/plugin-transform-typescript@7.5.5':
resolution: {integrity: sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w==}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.2)
- /@babel/plugin-transform-typescript@7.8.7(@babel/core@7.23.2):
+ '@babel/plugin-transform-typescript@7.8.7':
resolution: {integrity: sha512-7O0UsPQVNKqpHeHLpfvOG4uXmlw+MOxYvUv6Otc9uH5SYMIxvF6eBdjkWvC3f9G+VXe0RsNExyAQBeTRug/wqQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.2)
- /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==}
+ '@babel/plugin-transform-unicode-escapes@7.29.7':
+ resolution: {integrity: sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==}
+ '@babel/plugin-transform-unicode-property-regex@7.29.7':
+ resolution: {integrity: sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==}
+ '@babel/plugin-transform-unicode-regex@7.29.7':
+ resolution: {integrity: sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==}
+ '@babel/plugin-transform-unicode-sets-regex@7.29.7':
+ resolution: {integrity: sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2)
- '@babel/helper-plugin-utils': 7.22.5
- /@babel/polyfill@7.12.1:
+ '@babel/polyfill@7.12.1':
resolution: {integrity: sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==}
deprecated: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
- dependencies:
- core-js: 2.6.12
- regenerator-runtime: 0.13.11
- /@babel/preset-env@7.23.9(@babel/core@7.23.2):
- resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==}
+ '@babel/preset-env@7.29.7':
+ resolution: {integrity: sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/core': 7.23.2
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-validator-option': 7.23.5
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.2)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.2)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2)
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2)
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2)
- '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.2)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.2)
- '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.2)
- '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.2)
- '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.2)
- '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.2)
- '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.2)
- '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.2)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.2)
- babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.2)
- babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.2)
- babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.2)
- core-js-compat: 3.36.0
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
- /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.2):
+ '@babel/preset-modules@0.1.6-no-external-plugins':
resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
peerDependencies:
'@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/types': 7.23.9
- esutils: 2.0.3
- /@babel/regjsgen@0.8.0:
- resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
-
- /@babel/runtime@7.12.18:
+ '@babel/runtime@7.12.18':
resolution: {integrity: sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==}
- dependencies:
- regenerator-runtime: 0.13.11
- /@babel/runtime@7.23.9:
- resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==}
+ '@babel/runtime@7.29.7':
+ resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==}
engines: {node: '>=6.9.0'}
- dependencies:
- regenerator-runtime: 0.14.1
- /@babel/template@7.23.9:
- resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==}
+ '@babel/template@7.29.7':
+ resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/code-frame': 7.23.5
- '@babel/parser': 7.23.9
- '@babel/types': 7.23.9
- /@babel/traverse@7.23.9:
- resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==}
+ '@babel/traverse@7.29.7':
+ resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@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.9
- '@babel/types': 7.23.9
- debug: 4.3.4
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
- /@babel/types@7.23.9:
- resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==}
+ '@babel/types@7.29.7':
+ resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-string-parser': 7.23.4
- '@babel/helper-validator-identifier': 7.22.20
- to-fast-properties: 2.0.0
- /@cnakazawa/watch@1.0.4:
+ '@cnakazawa/watch@1.0.4':
resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==}
engines: {node: '>=0.1.95'}
hasBin: true
- dependencies:
- exec-sh: 0.3.6
- minimist: 1.2.8
- dev: true
- /@colors/colors@1.5.0:
+ '@colors/colors@1.5.0':
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'}
- requiresBuild: true
- dev: true
- optional: true
- /@csstools/cascade-layer-name-parser@1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3):
- resolution: {integrity: sha512-9J4aMRJ7A2WRjaRLvsMeWrL69FmEuijtiW1XlK/sG+V0UJiHVYUyvj9mY4WAXfU/hGIiGOgL8e0jJcRyaZTjDQ==}
+ '@csstools/cascade-layer-name-parser@1.0.13':
+ resolution: {integrity: sha512-MX0yLTwtZzr82sQ0zOjqimpZbzjMaK/h2pmlrLK7DCzlmiZLYFpoO94WmN1akRVo6ll/TdpHb53vihHLUMyvng==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
- '@csstools/css-parser-algorithms': ^2.5.0
- '@csstools/css-tokenizer': ^2.2.3
- dependencies:
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- dev: false
+ '@csstools/css-parser-algorithms': ^2.7.1
+ '@csstools/css-tokenizer': ^2.4.1
- /@csstools/color-helpers@4.0.0:
- resolution: {integrity: sha512-wjyXB22/h2OvxAr3jldPB7R7kjTUEzopvjitS8jWtyd8fN6xJ8vy1HnHu0ZNfEkqpBJgQ76Q+sBDshWcMvTa/w==}
+ '@csstools/color-helpers@4.2.1':
+ resolution: {integrity: sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==}
engines: {node: ^14 || ^16 || >=18}
- dev: false
- /@csstools/css-calc@1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3):
- resolution: {integrity: sha512-YHPAuFg5iA4qZGzMzvrQwzkvJpesXXyIUyaONflQrjtHB+BcFFbgltJkIkb31dMGO4SE9iZFA4HYpdk7+hnYew==}
+ '@csstools/css-calc@1.2.4':
+ resolution: {integrity: sha512-tfOuvUQeo7Hz+FcuOd3LfXVp+342pnWUJ7D2y8NUpu1Ww6xnTbHLpz018/y6rtbHifJ3iIEf9ttxXd8KG7nL0Q==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
- '@csstools/css-parser-algorithms': ^2.5.0
- '@csstools/css-tokenizer': ^2.2.3
- dependencies:
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- dev: false
+ '@csstools/css-parser-algorithms': ^2.7.1
+ '@csstools/css-tokenizer': ^2.4.1
- /@csstools/css-color-parser@1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3):
- resolution: {integrity: sha512-x+SajGB2paGrTjPOUorGi8iCztF008YMKXTn+XzGVDBEIVJ/W1121pPerpneJYGOe1m6zWLPLnzOPaznmQxKFw==}
+ '@csstools/css-color-parser@2.0.5':
+ resolution: {integrity: sha512-lRZSmtl+DSjok3u9hTWpmkxFZnz7stkbZxzKc08aDUsdrWwhSgWo8yq9rq9DaFUtbAyAq2xnH92fj01S+pwIww==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
- '@csstools/css-parser-algorithms': ^2.5.0
- '@csstools/css-tokenizer': ^2.2.3
- dependencies:
- '@csstools/color-helpers': 4.0.0
- '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- dev: false
+ '@csstools/css-parser-algorithms': ^2.7.1
+ '@csstools/css-tokenizer': ^2.4.1
- /@csstools/css-parser-algorithms@2.5.0(@csstools/css-tokenizer@2.2.3):
- resolution: {integrity: sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==}
+ '@csstools/css-parser-algorithms@2.7.1':
+ resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
- '@csstools/css-tokenizer': ^2.2.3
- dependencies:
- '@csstools/css-tokenizer': 2.2.3
+ '@csstools/css-tokenizer': ^2.4.1
- /@csstools/css-tokenizer@2.2.3:
- resolution: {integrity: sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==}
+ '@csstools/css-tokenizer@2.4.1':
+ resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==}
engines: {node: ^14 || ^16 || >=18}
- /@csstools/media-query-list-parser@2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3):
- resolution: {integrity: sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==}
+ '@csstools/media-query-list-parser@2.1.13':
+ resolution: {integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
- '@csstools/css-parser-algorithms': ^2.5.0
- '@csstools/css-tokenizer': ^2.2.3
- dependencies:
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
+ '@csstools/css-parser-algorithms': ^2.7.1
+ '@csstools/css-tokenizer': ^2.4.1
- /@csstools/postcss-cascade-layers@4.0.2(postcss@8.4.35):
- resolution: {integrity: sha512-PqM+jvg5T2tB4FHX+akrMGNWAygLupD4FNUjcv4PSvtVuWZ6ISxuo37m4jFGU7Jg3rCfloGzKd0+xfr5Ec3vZQ==}
+ '@csstools/postcss-cascade-layers@4.0.6':
+ resolution: {integrity: sha512-Xt00qGAQyqAODFiFEJNkTpSUz5VfYqnDLECdlA/Vv17nl/OIV5QfTRHGAXrBGG5YcJyHpJ+GF9gF/RZvOQz4oA==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15)
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
- /@csstools/postcss-color-function@3.0.9(postcss@8.4.35):
- resolution: {integrity: sha512-6Hbkw/4k73UH121l4LG+LNLKSvrfHqk3GHHH0A6/iFlD0xGmsWAr80Jd0VqXjfYbUTOGmJTOMMoxv3jvNxt1uw==}
+ '@csstools/postcss-color-function@3.0.19':
+ resolution: {integrity: sha512-d1OHEXyYGe21G3q88LezWWx31ImEDdmINNDy0LyLNN9ChgN2bPxoubUPiHf9KmwypBMaHmNcMuA/WZOKdZk/Lg==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.35)
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-color-mix-function@2.0.9(postcss@8.4.35):
- resolution: {integrity: sha512-fs1SOWJ/44DQSsDeJP+rxAkP2MYkCg6K4ZB8qJwFku2EjurgCAPiPZJvC6w94T1hBBinJwuMfT9qvvvniXyVgw==}
+ '@csstools/postcss-color-mix-function@2.0.19':
+ resolution: {integrity: sha512-mLvQlMX+keRYr16AuvuV8WYKUwF+D0DiCqlBdvhQ0KYEtcQl9/is9Ssg7RcIys8x0jIn2h1zstS4izckdZj9wg==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.35)
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-exponential-functions@1.0.3(postcss@8.4.35):
- resolution: {integrity: sha512-IfGtEg3eC4b8Nd/kPgO3SxgKb33YwhHVsL0eJ3UYihx6fzzAiZwNbWmVW9MZTQjZ5GacgKxa4iAHikGvpwuIjw==}
+ '@csstools/postcss-content-alt-text@1.0.0':
+ resolution: {integrity: sha512-SkHdj7EMM/57GVvSxSELpUg7zb5eAndBeuvGwFzYtU06/QXJ/h9fuK7wO5suteJzGhm3GDF/EWPCdWV2h1IGHQ==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-font-format-keywords@3.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-D1lcG2sfotTq6yBEOMV3myFxJLT10F3DLYZJMbiny5YToqzHWodZen8WId3UTimm0mEHitXqAUNL5jdd6RzVdA==}
+ '@csstools/postcss-exponential-functions@1.0.9':
+ resolution: {integrity: sha512-x1Avr15mMeuX7Z5RJUl7DmjhUtg+Amn5DZRD0fQ2TlTFTcJS8U1oxXQ9e5mA62S2RJgUU6db20CRoJyDvae2EQ==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- postcss-value-parser: 4.2.0
- dev: false
- /@csstools/postcss-gamut-mapping@1.0.2(postcss@8.4.35):
- resolution: {integrity: sha512-zf9KHGM2PTuJEm4ZYg4DTmzCir38EbZBzlMPMbA4jbhLDqXHkqwnQ+Z5+UNrU8y6seVu5B4vzZmZarTFQwe+Ig==}
+ '@csstools/postcss-font-format-keywords@3.0.2':
+ resolution: {integrity: sha512-E0xz2sjm4AMCkXLCFvI/lyl4XO6aN1NCSMMVEOngFDJ+k2rDwfr6NDjWljk1li42jiLNChVX+YFnmfGCigZKXw==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-gradients-interpolation-method@4.0.9(postcss@8.4.35):
- resolution: {integrity: sha512-PSqR6QH7h3ggOl8TsoH73kbwYTKVQjAJauGg6nDKwaGfi5IL5StV//ehrv1C7HuPsHixMTc9YoAuuv1ocT20EQ==}
+ '@csstools/postcss-gamut-mapping@1.0.11':
+ resolution: {integrity: sha512-KrHGsUPXRYxboXmJ9wiU/RzDM7y/5uIefLWKFSc36Pok7fxiPyvkSHO51kh+RLZS1W5hbqw9qaa6+tKpTSxa5g==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.35)
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-hwb-function@3.0.8(postcss@8.4.35):
- resolution: {integrity: sha512-CRQEG372Hivmt17rm/Ho22hBQI9K/a6grzGQ21Zwc7dyspmyG0ibmPIW8hn15vJmXqWGeNq7S+L2b8/OrU7O5A==}
+ '@csstools/postcss-gradients-interpolation-method@4.0.20':
+ resolution: {integrity: sha512-ZFl2JBHano6R20KB5ZrB8KdPM2pVK0u+/3cGQ2T8VubJq982I2LSOvQ4/VtxkAXjkPkk1rXt4AD1ni7UjTZ1Og==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-ic-unit@3.0.3(postcss@8.4.35):
- resolution: {integrity: sha512-MpcmIL0/uMm/cFWh5V/9nbKKJ7jRr2qTYW5Q6zoE6HZ6uzOBJr2KRERv5/x8xzEBQ1MthDT7iP1EBp9luSQy7g==}
+ '@csstools/postcss-hwb-function@3.0.18':
+ resolution: {integrity: sha512-3ifnLltR5C7zrJ+g18caxkvSRnu9jBBXCYgnBznRjxm6gQJGnnCO9H6toHfywNdNr/qkiVf2dymERPQLDnjLRQ==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.35)
- postcss: 8.4.35
- postcss-value-parser: 4.2.0
- dev: false
- /@csstools/postcss-initial@1.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-wtb+IbUIrIf8CrN6MLQuFR7nlU5C7PwuebfeEXfjthUha1+XZj2RVi+5k/lukToA24sZkYAiSJfHM8uG/UZIdg==}
+ '@csstools/postcss-ic-unit@3.0.7':
+ resolution: {integrity: sha512-YoaNHH2wNZD+c+rHV02l4xQuDpfR8MaL7hD45iJyr+USwvr0LOheeytJ6rq8FN6hXBmEeoJBeXXgGmM8fkhH4g==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-is-pseudo-class@4.0.4(postcss@8.4.35):
- resolution: {integrity: sha512-vTVO/uZixpTVAOQt3qZRUFJ/K1L03OfNkeJ8sFNDVNdVy/zW0h1L5WT7HIPMDUkvSrxQkFaCCybTZkUP7UESlQ==}
+ '@csstools/postcss-initial@1.0.1':
+ resolution: {integrity: sha512-wtb+IbUIrIf8CrN6MLQuFR7nlU5C7PwuebfeEXfjthUha1+XZj2RVi+5k/lukToA24sZkYAiSJfHM8uG/UZIdg==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15)
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
- /@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-SsrWUNaXKr+e/Uo4R/uIsqJYt3DaggIh/jyZdhy/q8fECoJSKsSMr7nObSLdvoULB69Zb6Bs+sefEIoMG/YfOA==}
+ '@csstools/postcss-is-pseudo-class@4.0.8':
+ resolution: {integrity: sha512-0aj591yGlq5Qac+plaWCbn5cpjs5Sh0daovYUKJUOMjIp70prGH/XPLp7QjxtbFXz3CTvb0H9a35dpEuIuUi3Q==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-logical-overflow@1.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-Kl4lAbMg0iyztEzDhZuQw8Sj9r2uqFDcU1IPl+AAt2nue8K/f1i7ElvKtXkjhIAmKiy5h2EY8Gt/Cqg0pYFDCw==}
+ '@csstools/postcss-light-dark-function@1.0.8':
+ resolution: {integrity: sha512-x0UtpCyVnERsplUeoaY6nEtp1HxTf4lJjoK/ULEm40DraqFfUdUSt76yoOyX5rGY6eeOUOkurHyYlFHVKv/pew==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-+kHamNxAnX8ojPCtV8WPcUP3XcqMFBSDuBuvT6MHgq7oX4IQxLIXKx64t7g9LiuJzE7vd06Q9qUYR6bh4YnGpQ==}
+ '@csstools/postcss-logical-float-and-clear@2.0.1':
+ resolution: {integrity: sha512-SsrWUNaXKr+e/Uo4R/uIsqJYt3DaggIh/jyZdhy/q8fECoJSKsSMr7nObSLdvoULB69Zb6Bs+sefEIoMG/YfOA==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ '@csstools/postcss-logical-overflow@1.0.1':
+ resolution: {integrity: sha512-Kl4lAbMg0iyztEzDhZuQw8Sj9r2uqFDcU1IPl+AAt2nue8K/f1i7ElvKtXkjhIAmKiy5h2EY8Gt/Cqg0pYFDCw==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ '@csstools/postcss-logical-overscroll-behavior@1.0.1':
+ resolution: {integrity: sha512-+kHamNxAnX8ojPCtV8WPcUP3XcqMFBSDuBuvT6MHgq7oX4IQxLIXKx64t7g9LiuJzE7vd06Q9qUYR6bh4YnGpQ==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-logical-resize@2.0.1(postcss@8.4.35):
+ '@csstools/postcss-logical-resize@2.0.1':
resolution: {integrity: sha512-W5Gtwz7oIuFcKa5SmBjQ2uxr8ZoL7M2bkoIf0T1WeNqljMkBrfw1DDA8/J83k57NQ1kcweJEjkJ04pUkmyee3A==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- postcss-value-parser: 4.2.0
- dev: false
- /@csstools/postcss-logical-viewport-units@2.0.5(postcss@8.4.35):
- resolution: {integrity: sha512-2fjSamKN635DSW6fEoyNd2Bkpv3FVblUpgk5cpghIgPW1aDHZE2SYfZK5xQALvjMYZVjfqsD5EbXA7uDVBQVQA==}
+ '@csstools/postcss-logical-viewport-units@2.0.11':
+ resolution: {integrity: sha512-ElITMOGcjQtvouxjd90WmJRIw1J7KMP+M+O87HaVtlgOOlDt1uEPeTeii8qKGe2AiedEp0XOGIo9lidbiU2Ogg==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-tokenizer': 2.2.3
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-media-minmax@1.1.2(postcss@8.4.35):
- resolution: {integrity: sha512-7qTRTJxW96u2yiEaTep1+8nto1O/rEDacewKqH+Riq5E6EsHTOmGHxkB4Se5Ic5xgDC4I05lLZxzzxnlnSypxA==}
+ '@csstools/postcss-media-minmax@1.1.8':
+ resolution: {integrity: sha512-KYQCal2i7XPNtHAUxCECdrC7tuxIWQCW+s8eMYs5r5PaAiVTeKwlrkRS096PFgojdNCmHeG0Cb7njtuNswNf+w==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.5(postcss@8.4.35):
- resolution: {integrity: sha512-XHMPasWYPWa9XaUHXU6Iq0RLfoAI+nvGTPj51hOizNsHaAyFiq2SL4JvF1DU8lM6B70+HVzKM09Isbyrr755Bw==}
+ '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11':
+ resolution: {integrity: sha512-YD6jrib20GRGQcnOu49VJjoAnQ/4249liuz7vTpy/JfgqQ1Dlc5eD4HPUMNLOw9CWey9E6Etxwf/xc/ZF8fECA==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-nested-calc@3.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-bwwababZpWRm0ByHaWBxTsDGTMhZKmtUNl3Wt0Eom8AY7ORgXx5qF9SSk1vEFrCi+HOfJT6M6W5KPgzXuQNRwQ==}
+ '@csstools/postcss-nested-calc@3.0.2':
+ resolution: {integrity: sha512-ySUmPyawiHSmBW/VI44+IObcKH0v88LqFe0d09Sb3w4B1qjkaROc6d5IA3ll9kjD46IIX/dbO5bwFN/swyoyZA==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- postcss-value-parser: 4.2.0
- dev: false
- /@csstools/postcss-normalize-display-values@3.0.2(postcss@8.4.35):
+ '@csstools/postcss-normalize-display-values@3.0.2':
resolution: {integrity: sha512-fCapyyT/dUdyPtrelQSIV+d5HqtTgnNP/BEG9IuhgXHt93Wc4CfC1bQ55GzKAjWrZbgakMQ7MLfCXEf3rlZJOw==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- postcss-value-parser: 4.2.0
- dev: false
- /@csstools/postcss-oklab-function@3.0.9(postcss@8.4.35):
- resolution: {integrity: sha512-l639gpcBfL3ogJe+og1M5FixQn8iGX8+29V7VtTSCUB37VzpzOC05URfde7INIdiJT65DkHzgdJ64/QeYggU8A==}
+ '@csstools/postcss-oklab-function@3.0.19':
+ resolution: {integrity: sha512-e3JxXmxjU3jpU7TzZrsNqSX4OHByRC3XjItV3Ieo/JEQmLg5rdOL4lkv/1vp27gXemzfNt44F42k/pn0FpE21Q==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.35)
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-progressive-custom-properties@3.0.3(postcss@8.4.35):
- resolution: {integrity: sha512-WipTVh6JTMQfeIrzDV4wEPsV9NTzMK2jwXxyH6CGBktuWdivHnkioP/smp1x/0QDPQyx7NTS14RB+GV3zZZYEw==}
+ '@csstools/postcss-progressive-custom-properties@3.3.0':
+ resolution: {integrity: sha512-W2oV01phnILaRGYPmGFlL2MT/OgYjQDrL9sFlbdikMFi6oQkFki9B86XqEWR7HCsTZFVq7dbzr/o71B75TKkGg==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- postcss-value-parser: 4.2.0
- dev: false
- /@csstools/postcss-relative-color-syntax@2.0.9(postcss@8.4.35):
- resolution: {integrity: sha512-2UoaRd2iIuzUGtYgteN5fJ0s+OfCiV7PvCnw8MCh3om8+SeVinfG8D5sqBOvImxFVfrp6k60XF5RFlH6oc//fg==}
+ '@csstools/postcss-relative-color-syntax@2.0.19':
+ resolution: {integrity: sha512-MxUMSNvio1WwuS6WRLlQuv6nNPXwIWUFzBBAvL/tBdWfiKjiJnAa6eSSN5gtaacSqUkQ/Ce5Z1OzLRfeaWhADA==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.35)
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.4.35):
+ '@csstools/postcss-scope-pseudo-class@3.0.1':
resolution: {integrity: sha512-3ZFonK2gfgqg29gUJ2w7xVw2wFJ1eNWVDONjbzGkm73gJHVCYK5fnCqlLr+N+KbEfv2XbWAO0AaOJCFB6Fer6A==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
- /@csstools/postcss-stepped-value-functions@3.0.4(postcss@8.4.35):
- resolution: {integrity: sha512-gyNQ2YaOVXPqLR737XtReRPVu7DGKBr9JBDLoiH1T+N1ggV3r4HotRCOC1l6rxVC0zOuU1KiOzUn9Z5W838/rg==}
+ '@csstools/postcss-stepped-value-functions@3.0.10':
+ resolution: {integrity: sha512-MZwo0D0TYrQhT5FQzMqfy/nGZ28D1iFtpN7Su1ck5BPHS95+/Y5O9S4kEvo76f2YOsqwYcT8ZGehSI1TnzuX2g==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-text-decoration-shorthand@3.0.4(postcss@8.4.35):
- resolution: {integrity: sha512-yUZmbnUemgQmja7SpOZeU45+P49wNEgQguRdyTktFkZsHf7Gof+ZIYfvF6Cm+LsU1PwSupy4yUeEKKjX5+k6cQ==}
+ '@csstools/postcss-text-decoration-shorthand@3.0.7':
+ resolution: {integrity: sha512-+cptcsM5r45jntU6VjotnkC9GteFR7BQBfZ5oW7inLCxj7AfLGAzMbZ60hKTP13AULVZBdxky0P8um0IBfLHVA==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/color-helpers': 4.0.0
- postcss: 8.4.35
- postcss-value-parser: 4.2.0
- dev: false
- /@csstools/postcss-trigonometric-functions@3.0.4(postcss@8.4.35):
- resolution: {integrity: sha512-qj4Cxth6c38iNYzfJJWAxt8jsLrZaMVmbfGDDLOlI2YJeZoC3A5Su6/Kr7oXaPFRuspUu+4EQHngOktqVHWfVg==}
+ '@csstools/postcss-trigonometric-functions@3.0.10':
+ resolution: {integrity: sha512-G9G8moTc2wiad61nY5HfvxLiM/myX0aYK4s1x8MQlPH29WDPxHQM7ghGgvv2qf2xH+rrXhztOmjGHJj4jsEqXw==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- postcss: 8.4.35
- dev: false
- /@csstools/postcss-unset-value@3.0.1(postcss@8.4.35):
+ '@csstools/postcss-unset-value@3.0.1':
resolution: {integrity: sha512-dbDnZ2ja2U8mbPP0Hvmt2RMEGBiF1H7oY6HYSpjteXJGihYwgxgTr6KRbbJ/V6c+4wd51M+9980qG4gKVn5ttg==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.4
- dependencies:
- postcss: 8.4.35
- dev: false
- /@csstools/selector-specificity@3.0.1(postcss-selector-parser@6.0.15):
- resolution: {integrity: sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==}
+ '@csstools/selector-resolve-nested@1.1.0':
+ resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss-selector-parser: ^6.0.13
- dependencies:
- postcss-selector-parser: 6.0.15
- /@ember-data/adapter@4.12.5(@ember-data/store@4.12.5)(@ember/string@3.1.1)(ember-inflector@4.0.2):
- resolution: {integrity: sha512-YWCjBga9h59q3iBqLONxi68AjNZtKmxQ/uB7e8uSv7czOXGQKpzONlTb68jyMJ687qpg0RWebxLBlBU5yPxq1Q==}
+ '@csstools/selector-specificity@3.1.1':
+ resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss-selector-parser: ^6.0.13
+
+ '@csstools/utilities@1.0.0':
+ resolution: {integrity: sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ '@ember-data/adapter@4.12.8':
+ resolution: {integrity: sha512-HIwLGUkAXPbOfCw/vt1Xi5a3/J/sV4tT0LVsB/HPo+m0h/ztSmrfCQVRJCzZUP3ACeOL+eGeMQt4zyz8RfZazw==}
engines: {node: 16.* || >= 18.*}
peerDependencies:
- '@ember-data/store': 4.12.5
+ '@ember-data/store': 4.12.8
'@ember/string': ^3.0.1
ember-inflector: ^4.0.2
- dependencies:
- '@ember-data/private-build-infra': 4.12.5
- '@ember-data/store': 4.12.5(@babel/core@7.23.2)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/model@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)
- '@ember/string': 3.1.1
- '@embroider/macros': 1.13.5
- ember-cli-babel: 7.26.11
- ember-cli-test-info: 1.0.0
- ember-inflector: 4.0.2
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- dev: true
- /@ember-data/debug@4.12.5(@ember-data/store@4.12.5)(@ember/string@3.1.1)(webpack@5.89.0):
- resolution: {integrity: sha512-IpmZ2ZXhl7NDPd8DH2XNQBzjiwxJHmGbwGFs9IVtZXmOSkk5iCX6v2MkeRBeDjLvUOcZIHNBuHUz66nZJrHNCg==}
+ '@ember-data/debug@4.12.8':
+ resolution: {integrity: sha512-dA2VXsO8OPddZ723oQxLbjQVoWMpVuqhskBgaf8kRNmJI9ru8AxhR6KWJaF2LMeJ3VhI5ujo1rNfOC2Y1t/chw==}
engines: {node: 16.* || >= 18.*}
peerDependencies:
- '@ember-data/store': 4.12.5
+ '@ember-data/store': 4.12.8
'@ember/string': ^3.0.1
- dependencies:
- '@ember-data/private-build-infra': 4.12.5
- '@ember-data/store': 4.12.5(@babel/core@7.23.2)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/model@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)
- '@ember/edition-utils': 1.2.0
- '@ember/string': 3.1.1
- '@embroider/macros': 1.13.5
- ember-auto-import: 2.6.3(webpack@5.89.0)
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- - webpack
- dev: true
- /@ember-data/graph@4.12.5(@ember-data/store@4.12.5):
- resolution: {integrity: sha512-YHvtUeH7h1AIFOlRQeaJrUM9DGkGBkzm6+BoVR2iaEbZKM3A/l0tZD7jUveD2bfdhGPtEf5849mlwKi8T2dIKw==}
+ '@ember-data/graph@4.12.8':
+ resolution: {integrity: sha512-Nm297TOVsOvIqnzRPclW3YL+ILgpz00Rc5Z5KNk1Je3RP8+02uA7Sh39p5WG9YQr6rz3+xY5jd1VbmIoLOQiaA==}
engines: {node: 16.* || >= 18.*}
peerDependencies:
- '@ember-data/store': 4.12.5
- dependencies:
- '@ember-data/private-build-infra': 4.12.5
- '@ember-data/store': 4.12.5(@babel/core@7.23.2)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/model@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)
- '@ember/edition-utils': 1.2.0
- '@embroider/macros': 1.13.5
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- dev: true
+ '@ember-data/store': 4.12.8
- /@ember-data/json-api@4.12.5(@ember-data/graph@4.12.5)(@ember-data/store@4.12.5):
- resolution: {integrity: sha512-L3gLUqXDXwKZnXkWm0U3TW/jiQKdQ9Q74MOxhJEeWmmN19fvKGdHe/oS3FASgdmBpMqkwItACmilDRVXWxbGWA==}
+ '@ember-data/json-api@4.12.8':
+ resolution: {integrity: sha512-A5ann76wOeRXeRPOG8wrWQn4BK+yb7T1l6Ybm1eSgkFQeNVvVc/eM6ejcRospQInSRZnOJZCPHYd+wggZgpXGA==}
engines: {node: 16.* || >= 18.*}
peerDependencies:
- '@ember-data/graph': 4.12.5
- '@ember-data/store': 4.12.5
- dependencies:
- '@ember-data/graph': 4.12.5(@ember-data/store@4.12.5)
- '@ember-data/private-build-infra': 4.12.5
- '@ember-data/store': 4.12.5(@babel/core@7.23.2)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/model@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)
- '@ember/edition-utils': 1.2.0
- '@embroider/macros': 1.13.5
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- dev: true
+ '@ember-data/graph': 4.12.8
+ '@ember-data/store': 4.12.8
- /@ember-data/legacy-compat@4.12.5(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5):
- resolution: {integrity: sha512-/f2aIsgua0UbueYG1G/nXDIfM/DI34b9f0jOgcsrOGULbhNMYAXfWNvr97TPU5swFLd4H/dWM4VG2dq8tBtmxg==}
+ '@ember-data/legacy-compat@4.12.8':
+ resolution: {integrity: sha512-sMC+QWdA+oMFtGH1UvwK2UU/iua29s298SSftRP9M84JAqr7t8AWfZd73m1CWe9aboyYKe1KXOCfPUsgrSICCg==}
engines: {node: 16.* || >= 18}
peerDependencies:
- '@ember-data/graph': 4.12.5
- '@ember-data/json-api': 4.12.5
+ '@ember-data/graph': 4.12.8
+ '@ember-data/json-api': 4.12.8
+ '@ember/string': ^3.0.1
peerDependenciesMeta:
'@ember-data/graph':
optional: true
'@ember-data/json-api':
optional: true
- dependencies:
- '@ember-data/graph': 4.12.5(@ember-data/store@4.12.5)
- '@ember-data/json-api': 4.12.5(@ember-data/graph@4.12.5)(@ember-data/store@4.12.5)
- '@ember-data/private-build-infra': 4.12.5
- '@embroider/macros': 1.13.5
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- dev: true
- /@ember-data/model@4.12.5(@babel/core@7.23.2)(@ember-data/debug@4.12.5)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/store@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.4.0):
- resolution: {integrity: sha512-2+n8tlDSQqrM65u+jGoANQkEzx8dQsMez9EqPZ7Czgv0gtOq9m03H6O3xahqtX/igABwz+2Fcc5o9W4Wv1uWnA==}
+ '@ember-data/model@4.12.8':
+ resolution: {integrity: sha512-rJQVri/mrZIdwmonVqbHVsCI+xLvW5CClnlXLiHCBDpoq/klXJ6u5FMglH64GAEpjuIfWKiygdOvMGiaYFJt+A==}
engines: {node: 16.* || >= 18.*}
peerDependencies:
- '@ember-data/debug': 4.12.5
- '@ember-data/graph': 4.12.5
- '@ember-data/json-api': 4.12.5
- '@ember-data/legacy-compat': 4.12.5
- '@ember-data/store': 4.12.5
- '@ember-data/tracking': 4.12.5
+ '@ember-data/debug': 4.12.8
+ '@ember-data/graph': 4.12.8
+ '@ember-data/json-api': 4.12.8
+ '@ember-data/legacy-compat': 4.12.8
+ '@ember-data/store': 4.12.8
+ '@ember-data/tracking': 4.12.8
'@ember/string': ^3.0.1
ember-inflector: ^4.0.2
peerDependenciesMeta:
@@ -1941,109 +1119,35 @@ packages:
optional: true
'@ember-data/json-api':
optional: true
- dependencies:
- '@ember-data/debug': 4.12.5(@ember-data/store@4.12.5)(@ember/string@3.1.1)(webpack@5.89.0)
- '@ember-data/graph': 4.12.5(@ember-data/store@4.12.5)
- '@ember-data/json-api': 4.12.5(@ember-data/graph@4.12.5)(@ember-data/store@4.12.5)
- '@ember-data/legacy-compat': 4.12.5(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)
- '@ember-data/private-build-infra': 4.12.5
- '@ember-data/store': 4.12.5(@babel/core@7.23.2)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/model@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)
- '@ember-data/tracking': 4.12.5
- '@ember/edition-utils': 1.2.0
- '@ember/string': 3.1.1
- '@embroider/macros': 1.13.5
- ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.2)(ember-source@5.4.0)
- ember-cli-babel: 7.26.11
- ember-cli-string-utils: 1.1.0
- ember-cli-test-info: 1.0.0
- ember-inflector: 4.0.2
- inflection: 2.0.1
- transitivePeerDependencies:
- - '@babel/core'
- - '@glint/template'
- - ember-source
- - supports-color
- dev: true
- /@ember-data/private-build-infra@4.12.5:
- resolution: {integrity: sha512-FNnyA8+IVylrnnwYR+MGPUushS/X8BEMN4JrrO4Mbrj4Yn10E2gAeKt/MUkk7Gl/HxMw6maxZY8SHoA/NK9XKw==}
+ '@ember-data/private-build-infra@4.12.8':
+ resolution: {integrity: sha512-acOT5m5Bnq78IYcCjRoP9Loh65XNODFor+nThvH4IDmfaxNfKfr8Qheu4f23r5oPOXmHbcDBWRjsjs2dkaKTAw==}
engines: {node: 16.* || >= 18.*}
- dependencies:
- '@babel/core': 7.23.2
- '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.2)
- '@babel/runtime': 7.23.9
- '@ember/edition-utils': 1.2.0
- '@embroider/macros': 1.13.5
- babel-import-util: 1.4.1
- babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.2)
- babel-plugin-filter-imports: 4.0.0
- babel6-plugin-strip-class-callcheck: 6.0.0
- broccoli-debug: 0.6.5
- broccoli-file-creator: 2.1.1
- broccoli-funnel: 3.0.8
- broccoli-merge-trees: 4.2.0
- broccoli-rollup: 5.0.0
- calculate-cache-key-for-tree: 2.0.0
- chalk: 4.1.2
- ember-cli-babel: 7.26.11
- ember-cli-path-utils: 1.0.0
- ember-cli-string-utils: 1.1.0
- ember-cli-version-checker: 5.1.2
- git-repo-info: 2.1.1
- glob: 9.3.5
- npm-git-info: 1.0.3
- semver: 7.6.0
- silent-error: 1.1.1
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- dev: true
- /@ember-data/request@4.12.5:
- resolution: {integrity: sha512-uxLuQqvjxmiU8ODs5HoiYydnnhpKjBOxxkwSuIMP3Ndb0HlXAqgqSSRMGUzCaNFXYn6KOb7CuDly3OEYYHFlMQ==}
+ '@ember-data/request@4.12.8':
+ resolution: {integrity: sha512-aTn+Cd5b901MGhLKRJdd/+xXrkp1GAmJEn55F8W2ojYk82rt2ZbO/Ppe2DWhTRMujj6vKclYhWJt0NNafnUobQ==}
engines: {node: 16.* || >= 18}
- dependencies:
- '@ember-data/private-build-infra': 4.12.5
- '@ember/test-waiters': 3.1.0
- '@embroider/macros': 1.13.5
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- dev: true
- /@ember-data/rfc395-data@0.0.4:
+ '@ember-data/rfc395-data@0.0.4':
resolution: {integrity: sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ==}
- /@ember-data/serializer@4.12.5(@ember-data/store@4.12.5)(@ember/string@3.1.1)(ember-inflector@4.0.2):
- resolution: {integrity: sha512-qQzaJTXxfgDcR2YIgOE5iU+51Hn8ghwQxas63GvIBqtnYkbB3i2Fa4OaEJAruU7phlrEYONaKTVOyrTC+pjTKw==}
+ '@ember-data/serializer@4.12.8':
+ resolution: {integrity: sha512-XKjSnq8jR1C8sFCZmdd1cTfV5THt1ykYDcDNo80pLoZaIosYtt1QVIVLq0puTjNXO/B8GyQl8DN2p/AS9fwbaw==}
engines: {node: 16.* || >= 18.*}
peerDependencies:
- '@ember-data/store': 4.12.5
+ '@ember-data/store': 4.12.8
'@ember/string': ^3.0.1
ember-inflector: ^4.0.2
- dependencies:
- '@ember-data/private-build-infra': 4.12.5
- '@ember-data/store': 4.12.5(@babel/core@7.23.2)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/model@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)
- '@ember/string': 3.1.1
- '@embroider/macros': 1.13.5
- ember-cli-babel: 7.26.11
- ember-cli-test-info: 1.0.0
- ember-inflector: 4.0.2
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- dev: true
- /@ember-data/store@4.12.5(@babel/core@7.23.2)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/model@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.0):
- resolution: {integrity: sha512-hpMrOa3+R3jXft7+j1RQl0Jw79rIWZE7TFuA5Z4u11QjlHiXxpOP/0icer8CeRJk1QSWPMedF/TgwZOnYWh4GQ==}
+ '@ember-data/store@4.12.8':
+ resolution: {integrity: sha512-pI+c/ZtRO5T02JcQ+yvUQsRZIIw/+fVUUnxa6mHiiNkjOJZaK8/2resdskSgV3SFGI82icanV7Ve5LJj9EzscA==}
engines: {node: 16.* || >= 18.*}
peerDependencies:
- '@ember-data/graph': 4.12.5
- '@ember-data/json-api': 4.12.5
- '@ember-data/legacy-compat': 4.12.5
- '@ember-data/model': 4.12.5
- '@ember-data/tracking': 4.12.5
+ '@ember-data/graph': 4.12.8
+ '@ember-data/json-api': 4.12.8
+ '@ember-data/legacy-compat': 4.12.8
+ '@ember-data/model': 4.12.8
+ '@ember-data/tracking': 4.12.8
'@ember/string': ^3.0.1
'@glimmer/tracking': ^1.1.2
peerDependenciesMeta:
@@ -2055,83 +1159,31 @@ packages:
optional: true
'@ember-data/model':
optional: true
- dependencies:
- '@ember-data/graph': 4.12.5(@ember-data/store@4.12.5)
- '@ember-data/json-api': 4.12.5(@ember-data/graph@4.12.5)(@ember-data/store@4.12.5)
- '@ember-data/legacy-compat': 4.12.5(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)
- '@ember-data/model': 4.12.5(@babel/core@7.23.2)(@ember-data/debug@4.12.5)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/store@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.4.0)
- '@ember-data/private-build-infra': 4.12.5
- '@ember-data/tracking': 4.12.5
- '@ember/string': 3.1.1
- '@embroider/macros': 1.13.5
- '@glimmer/tracking': 1.1.2
- ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.2)(ember-source@5.4.0)
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - '@babel/core'
- - '@glint/template'
- - ember-source
- - supports-color
- dev: true
- /@ember-data/tracking@4.12.5:
- resolution: {integrity: sha512-1i69F6cywzsHZGolJ+W0NelJH7AToICXyuqdH4R9mgzoOD6e3wxY+MBXhB/KoTxoa508G0vYozQ4weea3E/oyw==}
+ '@ember-data/tracking@4.12.8':
+ resolution: {integrity: sha512-CczHOsEbInbVg4WF2UQhV89gCnSfH+8ZR1WinPFQ8PaY6e1KSlPULuTXhC03NhAo8GaJzHlvc3KfATt5qgBplg==}
engines: {node: 16.* || >= 18}
- dependencies:
- '@ember-data/private-build-infra': 4.12.5
- '@embroider/macros': 1.13.5
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- dev: true
- /@ember-decorators/component@6.1.1:
+ '@ember-decorators/component@6.1.1':
resolution: {integrity: sha512-Cj8tY/c0MC/rsipqsiWLh3YVN72DK92edPYamD/HzvftwzC6oDwawWk8RmStiBnG9PG/vntAt41l3S7HSSA+1Q==}
engines: {node: '>= 8.*'}
- dependencies:
- '@ember-decorators/utils': 6.1.1
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - supports-color
- dev: false
- /@ember-decorators/object@6.1.1:
+ '@ember-decorators/object@6.1.1':
resolution: {integrity: sha512-cb4CNR9sRoA31J3FCOFLDuR9ztM4wO9w1WlS4JeNRS7Z69SlB/XSXB/vplA3i9OOaXEy/zKWbu5ndZrHz0gvLw==}
engines: {node: '>= 8.*'}
- dependencies:
- '@ember-decorators/utils': 6.1.1
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - supports-color
- dev: false
- /@ember-decorators/utils@6.1.1:
+ '@ember-decorators/utils@6.1.1':
resolution: {integrity: sha512-0KqnoeoLKb6AyoSU65TRF5T85wmS4uDn06oARddwNPxxf/lt5jQlh41uX3W7V/fWL9tPu8x1L1Vvpc80MN1+YA==}
engines: {node: '>= 8.*'}
- dependencies:
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - supports-color
- /@ember/edition-utils@1.2.0:
+ '@ember/edition-utils@1.2.0':
resolution: {integrity: sha512-VmVq/8saCaPdesQmftPqbFtxJWrzxNGSQ+e8x8LLe3Hjm36pJ04Q8LeORGZkAeOhldoUX9seLGmSaHeXkIqoog==}
- /@ember/optional-features@2.0.0:
- resolution: {integrity: sha512-4gkvuGRYfpAh1nwAz306cmMeC1mG7wxZnbsBZ09mMaMX/W7IyKOKc/38JwrDPUFUalmNEM7q7JEPcmew2M3Dog==}
+ '@ember/optional-features@2.3.0':
+ resolution: {integrity: sha512-+M8CkPledQEaDbfIlwlq6Phgpm5jdT3a6WVDJk7b/zadw5xAJkuQKVK7DgR0SFgHGiWlyn6a8AU5p2mCA706RA==}
engines: {node: 10.* || 12.* || >= 14}
- dependencies:
- chalk: 4.1.2
- ember-cli-version-checker: 5.1.2
- glob: 7.2.3
- inquirer: 7.3.3
- mkdirp: 1.0.4
- silent-error: 1.1.1
- transitivePeerDependencies:
- - supports-color
- dev: true
- /@ember/render-modifiers@2.1.0(@babel/core@7.23.2)(ember-source@5.4.0):
+ '@ember/render-modifiers@2.1.0':
resolution: {integrity: sha512-LruhfoDv2itpk0fA0IC76Sxjcnq/7BC6txpQo40hOko8Dn6OxwQfxkPIbZGV0Cz7df+iX+VJrcYzNIvlc3w2EQ==}
engines: {node: 12.* || 14.* || >= 16}
peerDependencies:
@@ -2140,139 +1192,61 @@ packages:
peerDependenciesMeta:
'@glint/template':
optional: true
- dependencies:
- '@embroider/macros': 1.13.5
- ember-cli-babel: 7.26.11
- ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.23.2)
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
- dev: false
- /@ember/string@3.1.1:
+ '@ember/string@3.1.1':
resolution: {integrity: sha512-UbXJ+k3QOrYN4SRPHgXCqYIJ+yWWUg1+vr0H4DhdQPTy8LJfyqwZ2tc5uqpSSnEXE+/1KopHBE5J8GDagAg5cg==}
engines: {node: 12.* || 14.* || >= 16}
- dependencies:
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - supports-color
- /@ember/test-helpers@3.2.0(ember-source@5.4.0)(webpack@5.89.0):
- resolution: {integrity: sha512-3yWpPsK5O77tUdCwW3HayrAcdlRitIRYMvLIG69Pkal1JMIGdNYVTvJ2R1lenhQh2syd/WFmGM07vQuDAtotQw==}
+ '@ember/test-helpers@3.3.1':
+ resolution: {integrity: sha512-h4uFBy4pquBtHsHI+tx9S0wtMmn1L+8dkXiDiyoqG1+3e0Awk6GBujiFM9s4ANq6wC8uIhC3wEFyts10h2OAoQ==}
engines: {node: 16.* || >= 18}
peerDependencies:
ember-source: ^4.0.0 || ^5.0.0
- dependencies:
- '@ember/test-waiters': 3.1.0
- '@embroider/macros': 1.13.5
- '@simple-dom/interface': 1.4.0
- broccoli-debug: 0.6.5
- broccoli-funnel: 3.0.8
- ember-auto-import: 2.6.3(webpack@5.89.0)
- ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 6.3.0
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- - webpack
- /@ember/test-waiters@3.1.0:
+ '@ember/test-waiters@3.1.0':
resolution: {integrity: sha512-bb9h95ktG2wKY9+ja1sdsFBdOms2lB19VWs8wmNpzgHv1NCetonBoV5jHBV4DHt0uS1tg9z66cZqhUVlYs96KQ==}
engines: {node: 10.* || 12.* || >= 14.*}
- dependencies:
- calculate-cache-key-for-tree: 2.0.0
- ember-cli-babel: 7.26.11
- ember-cli-version-checker: 5.1.2
- semver: 7.6.0
- transitivePeerDependencies:
- - supports-color
- /@embroider/addon-shim@1.8.3:
- resolution: {integrity: sha512-7pyHwzT6ESXc3nZsB8rfnirLkUhQWdvj6CkYH+0MUPN74mX4rslf7pnBqZE/KZkW3uBIaBYvU8fxi0hcKC/Paw==}
+ '@embroider/addon-shim@1.10.2':
+ resolution: {integrity: sha512-EfI9cJ5/3QSUJtwm7x1MXrx3TEa2p7RNgSHefy7fvGm8/DP1xUFL25nST1NaHbHcqR1UhMlrTtv5iUIDoVzeQQ==}
engines: {node: 12.* || 14.* || >= 16}
- dependencies:
- '@embroider/shared-internals': 1.8.3
- semver: 7.6.0
- dev: false
-
- /@embroider/addon-shim@1.8.7:
- resolution: {integrity: sha512-JGOQNRj3UR0NdWEg8MsM2eqPLncEwSB1IX+rwntIj22TEKj8biqx7GDgSbeH+ZedijmCh354Hf2c5rthrdzUAw==}
- engines: {node: 12.* || 14.* || >= 16}
- dependencies:
- '@embroider/shared-internals': 2.5.2
- broccoli-funnel: 3.0.8
- semver: 7.6.0
- transitivePeerDependencies:
- - supports-color
- /@embroider/addon@0.30.0:
+ '@embroider/addon@0.30.0':
resolution: {integrity: sha512-hBgskhX38RMIyHcnUpRt+KbddLMPLVOFdLp4qhv7Vs881SPDwsbo7pir4KpILmnoqcvBMh1MCVY970tYaAyMcQ==}
engines: {node: 10.* || >= 12}
- dependencies:
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - supports-color
- dev: false
- /@embroider/macros@1.13.5:
- resolution: {integrity: sha512-OzYyM+bOcyV9IWma1qSraIyuBmGv6U8sCIHumHCe0oDDypvIvVA3csuDjoS3BGhUWV56VpzBSwVEDdIHXmqQ2w==}
+ '@embroider/macros@1.20.3':
+ resolution: {integrity: sha512-8sClktPsQ20KgnWl8id6NL5G/hv3+Q5OlnQ4y4XQjYS/RsPy8/C9tU75/2ujgToi1YfX64UykjCau6PXqKDfUQ==}
engines: {node: 12.* || 14.* || >= 16}
peerDependencies:
'@glint/template': ^1.0.0
peerDependenciesMeta:
'@glint/template':
optional: true
- dependencies:
- '@embroider/shared-internals': 2.5.2
- assert-never: 1.2.1
- babel-import-util: 2.0.1
- ember-cli-babel: 7.26.11
- find-up: 5.0.0
- lodash: 4.17.21
- resolve: 1.22.8
- semver: 7.6.0
- transitivePeerDependencies:
- - supports-color
- /@embroider/shared-internals@1.8.3:
+ '@embroider/reverse-exports@0.2.0':
+ resolution: {integrity: sha512-WFsw8nQpHZiWGEDYpa/A79KEFfTisqteXbY+jg9eZiww1r1G+LZvsmdszDp86TkotUSCqrMbK/ewn0jR1CJmqg==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ '@embroider/shared-internals@1.8.3':
resolution: {integrity: sha512-N5Gho6Qk8z5u+mxLCcMYAoQMbN4MmH+z2jXwQHVs859bxuZTxwF6kKtsybDAASCtd2YGxEmzcc1Ja/wM28824w==}
engines: {node: 12.* || 14.* || >= 16}
- dependencies:
- babel-import-util: 1.4.1
- ember-rfc176-data: 0.3.18
- fs-extra: 9.1.0
- js-string-escape: 1.0.1
- lodash: 4.17.21
- resolve-package-path: 4.0.3
- semver: 7.6.0
- typescript-memoize: 1.1.1
- dev: false
- /@embroider/shared-internals@2.5.2:
- resolution: {integrity: sha512-jNDJ9YlV6Qp9Na9v17qirUewVuq6T0t32nn+bbnFlCRTvmllKluZdYPSC5RuRnEZKTloVYRSF0+f1rgkTIEvxQ==}
+ '@embroider/shared-internals@2.9.2':
+ resolution: {integrity: sha512-d96ub/WkS1Gx6dRDxZ0mCRPwFAHIMlMr2iti6uTYxTFzC85Wgt6j7bYr6ppkEuwEwKQVyzKRT0kTsJz6P74caQ==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ '@embroider/shared-internals@3.1.0':
+ resolution: {integrity: sha512-DAEB8B0rAHMYnwCPIeYIrZ6uKGEesQx5XqLuO0beqDnZLwsIRcvWSSbpUgOu6nwqXm5EiJiJaTbrHedOSrlR5g==}
engines: {node: 12.* || 14.* || >= 16}
- dependencies:
- babel-import-util: 2.0.1
- debug: 4.3.4
- ember-rfc176-data: 0.3.18
- fs-extra: 9.1.0
- js-string-escape: 1.0.1
- lodash: 4.17.21
- resolve-package-path: 4.0.3
- semver: 7.6.0
- typescript-memoize: 1.1.1
- transitivePeerDependencies:
- - supports-color
- /@embroider/test-setup@3.0.2:
- resolution: {integrity: sha512-cq/xp06CAB8rAGnObeJux7qALnAX2MatMVLjWyGDr3ogS5lHTNXZVCv4ltTM3pJ8EsZWpPM32dtUZqSJFkGibQ==}
+ '@embroider/test-setup@3.0.3':
+ resolution: {integrity: sha512-3K5KSyTdnxAkZQill6+TdC/XTRr6226LNwZMsrhRbBM0FFZXw2D8qmJSHPvZLheQx3A1jnF9t1lyrAzrKlg6Yw==}
engines: {node: 12.* || 14.* || >= 16}
peerDependencies:
- '@embroider/compat': ^3.2.2
- '@embroider/core': ^3.3.0
- '@embroider/webpack': ^3.2.0
+ '@embroider/compat': ^3.3.0
+ '@embroider/core': ^3.4.0
+ '@embroider/webpack': ^3.2.1
peerDependenciesMeta:
'@embroider/compat':
optional: true
@@ -2280,13 +1254,9 @@ packages:
optional: true
'@embroider/webpack':
optional: true
- dependencies:
- lodash: 4.17.21
- resolve: 1.22.8
- dev: true
- /@embroider/util@1.12.1(ember-source@5.4.0):
- resolution: {integrity: sha512-sEjFf2HOcqQdm3auernvvD3oXX/CdGTjo9eB5N8DmQBz9vseYNjn4kQRaAcyHWpCpMHe5Yr0d9xW8+4c9a9fJw==}
+ '@embroider/util@1.13.5':
+ resolution: {integrity: sha512-rHhGUzAQ5iOr5Swvk7yaarVe5SJtcjK2t/C8ts9agWfhTq4DVfy8+axF0KOf1jALRiJao3l9ALRGd6letKw2ZQ==}
engines: {node: 12.* || 14.* || >= 16}
peerDependencies:
'@glint/environment-ember-loose': ^1.0.0
@@ -2297,398 +1267,9088 @@ packages:
optional: true
'@glint/template':
optional: true
- dependencies:
- '@embroider/macros': 1.13.5
- broccoli-funnel: 3.0.8
- ember-cli-babel: 7.26.11
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
- transitivePeerDependencies:
- - supports-color
- dev: false
- /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0):
- resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+ '@eslint-community/eslint-utils@4.9.1':
+ resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
- dependencies:
- eslint: 8.52.0
- eslint-visitor-keys: 3.4.3
- dev: true
- /@eslint-community/regexpp@4.10.0:
- resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- dev: true
- /@eslint/eslintrc@2.1.4:
+ '@eslint/eslintrc@2.1.4':
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dependencies:
- ajv: 6.12.6
- debug: 4.3.4
- espree: 9.6.1
- globals: 13.24.0
- ignore: 5.3.1
- import-fresh: 3.3.0
- js-yaml: 4.1.0
- minimatch: 3.1.2
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
- dev: true
- /@eslint/js@8.52.0:
- resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==}
+ '@eslint/js@8.57.1':
+ resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dev: true
- /@fleetbase/ember-accounting@0.0.1(ember-source@5.4.0):
+ '@event-calendar/core@5.7.1':
+ resolution: {integrity: sha512-ms9MQagthrmRO+ytZD5dDQHjBb+r/6mwld4/psZRaBI6bciIEsmphCrxFaF9HnGvLW0htSa973TVbYMbDsDtVA==}
+
+ '@fleetbase/ember-accounting@0.0.1':
resolution: {integrity: sha512-61WGQ/VtmkEloBfdNEd83C9E57axiBXbBPdXAbaS3dsCBpKmqwPo1CkrYUN7vVa3oUP9ZRouVVVffbE0YDnAng==}
engines: {node: '>= 18'}
peerDependencies:
ember-source: '>= 4.0.0'
- dependencies:
- '@babel/core': 7.23.2
- ember-cli-babel: 8.2.0(@babel/core@7.23.2)
- ember-cli-htmlbars: 6.3.0
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
- transitivePeerDependencies:
- - supports-color
- dev: false
- /@fleetbase/ember-core@0.2.11(@ember/test-helpers@3.2.0)(ember-source@5.4.0)(webpack@5.89.0):
- resolution: {integrity: sha512-ogf1J1Yv1kJ3/8eUGzdS2l1UjDZE4b4u3q/86Ue0X2tskzTNSto3P8MWt/BaXAke1E0UbDXOq4aeB624OgTm7w==}
+ '@fleetbase/ember-core@0.3.20':
+ resolution: {integrity: sha512-eqY15urfqFkC26TJO/irdCxke9VE7ywcLodM3K6iDEXR+FFk50YIWnXzvU8PvEQ1EZCRJdyEERvCc9FnypXFQA==}
engines: {node: '>= 18'}
- dependencies:
- '@babel/core': 7.23.2
- compress-json: 3.1.0
- date-fns: 2.30.0
- ember-auto-import: 2.7.2(webpack@5.89.0)
- ember-cli-babel: 8.2.0(@babel/core@7.23.2)
- ember-cli-htmlbars: 6.3.0
- ember-cli-notifications: 9.0.0
- ember-concurrency: 3.1.1(@babel/core@7.23.2)(ember-source@5.4.0)
- ember-concurrency-decorators: 2.0.3(@babel/core@7.23.2)
- ember-decorators: 6.1.1
- ember-get-config: 2.1.1
- ember-inflector: 4.0.2
- ember-intl: 6.3.2(@babel/core@7.23.2)(webpack@5.89.0)
- ember-loading: 2.0.0(@babel/core@7.23.2)
- ember-local-storage: 2.0.7(@babel/core@7.23.2)
- ember-simple-auth: 6.0.0(@ember/test-helpers@3.2.0)
- ember-wormhole: 0.6.0
- socketcluster-client: 17.2.2
- transitivePeerDependencies:
- - '@ember/test-helpers'
- - '@glint/template'
- - bufferutil
- - ember-source
- - supports-color
- - typescript
- - utf-8-validate
- - webpack
- dev: false
- /@fleetbase/ember-ui@0.2.17(@ember/test-helpers@3.2.0)(@glimmer/component@1.1.2)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)(postcss@8.4.35)(rollup@4.12.0)(tracked-built-ins@3.3.0)(webpack@5.89.0):
- resolution: {integrity: sha512-eJLMBZfIotEeGH7QjlAA2Ns/K83QQztVlnWzvLBjD5YxvQflw2dAJE6EPxPWxbjeCi8B9hOoyIP4ZmtSdcz6mQ==}
+ '@fleetbase/ember-ui@0.3.33':
+ resolution: {integrity: sha512-XUkRFR/hPfXq1pGadPvEZVTGU7f1D4IHzXcyKVmppY5AxPjgk8PeteoFnNdwZmbGdkTFzifydeG313DltBWlUg==}
engines: {node: '>= 18'}
- dependencies:
- '@babel/core': 7.23.2
- '@ember/render-modifiers': 2.1.0(@babel/core@7.23.2)(ember-source@5.4.0)
- '@ember/string': 3.1.1
- '@embroider/addon': 0.30.0
- '@embroider/macros': 1.13.5
- '@fleetbase/ember-accounting': 0.0.1(ember-source@5.4.0)
- '@floating-ui/dom': 1.6.3
- '@fortawesome/ember-fontawesome': 1.0.3(rollup@4.12.0)(webpack@5.89.0)
+
+ '@fleetbase/fleetops-data@0.1.35':
+ resolution: {integrity: sha512-IkoeVMwOvTZpQe92sQXpm0VRnz7yCqD0FTch1DhEXxVS+gIz7bDsi/73brhtqaOECu4mX5oNQu7+jiMwj6XMxg==}
+ engines: {node: '>= 18'}
+
+ '@fleetbase/leaflet-routing-machine@3.2.17':
+ resolution: {integrity: sha512-2S/XLPzf25ZKV7cFJwfeu4voYQboF9JiDfpRUTrif4XCfgdrQ2Zim7O5iTpoNv2l8Ne8D+Ed7BGJsKWjJFLcsw==}
+
+ '@floating-ui/core@1.7.5':
+ resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
+
+ '@floating-ui/dom@1.7.6':
+ resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==}
+
+ '@floating-ui/utils@0.2.11':
+ resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==}
+
+ '@formatjs/ecma402-abstract@2.2.4':
+ resolution: {integrity: sha512-lFyiQDVvSbQOpU+WFd//ILolGj4UgA/qXrKeZxdV14uKiAUiPAtX6XAn7WBCRi7Mx6I7EybM9E5yYn4BIpZWYg==}
+
+ '@formatjs/ecma402-abstract@2.3.6':
+ resolution: {integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==}
+
+ '@formatjs/fast-memoize@2.2.3':
+ resolution: {integrity: sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA==}
+
+ '@formatjs/fast-memoize@2.2.7':
+ resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==}
+
+ '@formatjs/icu-messageformat-parser@2.11.4':
+ resolution: {integrity: sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==}
+
+ '@formatjs/icu-messageformat-parser@2.9.4':
+ resolution: {integrity: sha512-Tbvp5a9IWuxUcpWNIW6GlMQYEc4rwNHR259uUFoKWNN1jM9obf9Ul0e+7r7MvFOBNcN+13K7NuKCKqQiAn1QEg==}
+
+ '@formatjs/icu-skeleton-parser@1.8.16':
+ resolution: {integrity: sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==}
+
+ '@formatjs/icu-skeleton-parser@1.8.8':
+ resolution: {integrity: sha512-vHwK3piXwamFcx5YQdCdJxUQ1WdTl6ANclt5xba5zLGDv5Bsur7qz8AD7BevaKxITwpgDeU0u8My3AIibW9ywA==}
+
+ '@formatjs/intl-displaynames@6.8.5':
+ resolution: {integrity: sha512-85b+GdAKCsleS6cqVxf/Aw/uBd+20EM0wDpgaxzHo3RIR3bxF4xCJqH/Grbzx8CXurTgDDZHPdPdwJC+May41w==}
+
+ '@formatjs/intl-listformat@7.7.5':
+ resolution: {integrity: sha512-Wzes10SMNeYgnxYiKsda4rnHP3Q3II4XT2tZyOgnH5fWuHDtIkceuWlRQNsvrI3uiwP4hLqp2XdQTCsfkhXulg==}
+
+ '@formatjs/intl-localematcher@0.5.8':
+ resolution: {integrity: sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==}
+
+ '@formatjs/intl-localematcher@0.6.2':
+ resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==}
+
+ '@formatjs/intl@2.10.15':
+ resolution: {integrity: sha512-i6+xVqT+6KCz7nBfk4ybMXmbKO36tKvbMKtgFz9KV+8idYFyFbfwKooYk8kGjyA5+T5f1kEPQM5IDLXucTAQ9g==}
+ peerDependencies:
+ typescript: ^4.7 || 5
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@fortawesome/ember-fontawesome@2.0.0':
+ resolution: {integrity: sha512-lUyMvocZZzMuCwr8pkKhejXKBj5RGnIs8YUHc/tCNSEyHSx7/E5xAhtE4fa5B1c9+UO789Kng8z6DQ9E/agVGA==}
+ engines: {node: 14.* || 16.* || >= 18}
+ peerDependencies:
+ ember-source: ^4.0.0 || >=5.0.0
+
+ '@fortawesome/fontawesome-common-types@6.4.0':
+ resolution: {integrity: sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==}
+ engines: {node: '>=6'}
+
+ '@fortawesome/fontawesome-svg-core@6.4.0':
+ resolution: {integrity: sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==}
+ engines: {node: '>=6'}
+
+ '@fortawesome/free-brands-svg-icons@6.4.0':
+ resolution: {integrity: sha512-qvxTCo0FQ5k2N+VCXb/PZQ+QMhqRVM4OORiO6MXdG6bKolIojGU/srQ1ptvKk0JTbRgaJOfL2qMqGvBEZG7Z6g==}
+ engines: {node: '>=6'}
+
+ '@fortawesome/free-solid-svg-icons@6.4.0':
+ resolution: {integrity: sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ==}
+ engines: {node: '>=6'}
+
+ '@fullcalendar/core@6.1.20':
+ resolution: {integrity: sha512-1cukXLlePFiJ8YKXn/4tMKsy0etxYLCkXk8nUCFi11nRONF2Ba2CD5b21/ovtOO2tL6afTJfwmc1ed3HG7eB1g==}
+
+ '@fullcalendar/daygrid@6.1.20':
+ resolution: {integrity: sha512-AO9vqhkLP77EesmJzuU+IGXgxNulsA8mgQHynclJ8U70vSwAVnbcLG9qftiTAFSlZjiY/NvhE7sflve6cJelyQ==}
+ peerDependencies:
+ '@fullcalendar/core': ~6.1.20
+
+ '@fullcalendar/interaction@6.1.20':
+ resolution: {integrity: sha512-p6txmc5txL0bMiPaJxe2ip6o0T384TyoD2KGdsU6UjZ5yoBlaY+dg7kxfnYKpYMzEJLG58n+URrHr2PgNL2fyA==}
+ peerDependencies:
+ '@fullcalendar/core': ~6.1.20
+
+ '@glimmer/compiler@0.84.3':
+ resolution: {integrity: sha512-cj9sGlnvExP9httxY6ZMivJRGulyaZ31DddCYB5h6LxupR4Nk2d1nAJCWPLsvuQJ8qR+eYw0y9aiY/VeT0krpQ==}
+
+ '@glimmer/component@1.1.2':
+ resolution: {integrity: sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ '@glimmer/destroyable@0.84.3':
+ resolution: {integrity: sha512-4tUw5UR4ntuySPvbcWyCMRjqxMJMV1GewjU3zGq22XvuBVFfq2K9WmuYV9H9FHg8X0MgDwcus+LjxrVSel39Sw==}
+
+ '@glimmer/di@0.1.11':
+ resolution: {integrity: sha512-moRwafNDwHTnTHzyyZC9D+mUSvYrs1Ak0tRPjjmCghdoHHIvMshVbEnwKb/1WmW5CUlKc2eL9rlAV32n3GiItg==}
+
+ '@glimmer/encoder@0.84.3':
+ resolution: {integrity: sha512-T99YQDhNC/1rOFgiz8k4uzgzQsQ+r1my+WVXRv26o0r+/yOnKYndrb6WH/E9d+XtBIZbm1yCSm2BMFYelR0Nrg==}
+
+ '@glimmer/env@0.1.7':
+ resolution: {integrity: sha512-JKF/a9I9jw6fGoz8kA7LEQslrwJ5jms5CXhu/aqkBWk+PmZ6pTl8mlb/eJ/5ujBGTiQzBhy5AIWF712iA+4/mw==}
+
+ '@glimmer/global-context@0.84.3':
+ resolution: {integrity: sha512-8Oy9Wg5IZxMEeAnVmzD2NkObf89BeHoFSzJgJROE/deutd3rxg83mvlOez4zBBGYwnTb+VGU2LYRpet92egJjA==}
+
+ '@glimmer/interfaces@0.84.3':
+ resolution: {integrity: sha512-dk32ykoNojt0mvEaIW6Vli5MGTbQo58uy3Epj7ahCgTHmWOKuw/0G83f2UmFprRwFx689YTXG38I/vbpltEjzg==}
+
+ '@glimmer/interfaces@0.94.6':
+ resolution: {integrity: sha512-sp/1WePvB/8O+jrcUHwjboNPTKrdGicuHKA9T/lh0vkYK2qM5Xz4i25lQMQ38tEMiw7KixrjHiTUiaXRld+IwA==}
+
+ '@glimmer/low-level@0.78.2':
+ resolution: {integrity: sha512-0S6TWOOd0fzLLysw1pWZN0TgasaHmYs1Sjz9Til1mTByIXU1S+1rhdyr2veSQPO/aRjPuEQyKXZQHvx23Zax6w==}
+
+ '@glimmer/manager@0.84.3':
+ resolution: {integrity: sha512-FtcwvrQ3HWlGRGChwlXiisMeKf9+XcCkMwVrrO0cxQavT01tIHx40OFtPOhXKGbgXGtRKcJI8XR41aK9t2kvyg==}
+
+ '@glimmer/node@0.84.3':
+ resolution: {integrity: sha512-QXlZjr7X6DDTJ3wiYQIHv2Pq/5sdGeTTW15+U+IosjZuQgvwCPJaeXC2CU8yqgA33yHgMgJpkdvLnPUCPrrhwg==}
+
+ '@glimmer/opcode-compiler@0.84.3':
+ resolution: {integrity: sha512-flUuikKLFL9cekJUA10gJxMRCDjUPb61R3UCl1u69TGN0Nm7FTsMhOsVDtJLeeiAROtPx+NvasPw/6UB1rrdyg==}
+
+ '@glimmer/owner@0.84.3':
+ resolution: {integrity: sha512-ZwA0rU4V8m0z4ncXtWD2QEU6eh61wkKKQUThahPYhfB+JYceVM6Grx7uWeiAxc2v3ncpvbYqIGdnICXDMloxAA==}
+
+ '@glimmer/program@0.84.3':
+ resolution: {integrity: sha512-D8z1lP8NEMyzT8gByFsZpmbRThZvGLS0Tl5AngaDbI2FqlcpEV0ujvLTzzgecd9QQ1k3Cd60dTgy/2N2CI82SA==}
+
+ '@glimmer/reference@0.84.3':
+ resolution: {integrity: sha512-lV+p/aWPVC8vUjmlvYVU7WQJsLh319SdXuAWoX/SE3pq340BJlAJiEcAc6q52y9JNhT57gMwtjMX96W5Xcx/qw==}
+
+ '@glimmer/runtime@0.84.3':
+ resolution: {integrity: sha512-LzlJbPDCUH/wjsgJ5kRImvOkqAImSyVRW37t34n/1Qd3v7ZoI8xVQg92lS+2kHZe030sT49ZwKkEIeVZiBreBw==}
+
+ '@glimmer/syntax@0.84.3':
+ resolution: {integrity: sha512-ioVbTic6ZisLxqTgRBL2PCjYZTFIwobifCustrozRU2xGDiYvVIL0vt25h2c1ioDsX59UgVlDkIK4YTAQQSd2A==}
+
+ '@glimmer/syntax@0.95.0':
+ resolution: {integrity: sha512-W/PHdODnpONsXjbbdY9nedgIHpglMfOzncf/moLVrKIcCfeQhw2vG07Rs/YW8KeJCgJRCLkQsi+Ix7XvrurGAg==}
+
+ '@glimmer/tracking@1.1.2':
+ resolution: {integrity: sha512-cyV32zsHh+CnftuRX84ALZpd2rpbDrhLhJnTXn9W//QpqdRZ5rdMsxSY9fOsj0CKEc706tmEU299oNnDc0d7tA==}
+
+ '@glimmer/util@0.44.0':
+ resolution: {integrity: sha512-duAsm30uVK9jSysElCbLyU6QQYO2X9iLDLBIBUcCqck9qN1o3tK2qWiHbGK5d6g8E2AJ4H88UrfElkyaJlGrwg==}
+
+ '@glimmer/util@0.84.3':
+ resolution: {integrity: sha512-qFkh6s16ZSRuu2rfz3T4Wp0fylFj3HBsONGXQcrAdZjdUaIS6v3pNj6mecJ71qRgcym9Hbaq/7/fefIwECUiKw==}
+
+ '@glimmer/util@0.94.8':
+ resolution: {integrity: sha512-HfCKeZ74clF9BsPDBOqK/yRNa/ke6niXFPM6zRn9OVYw+ZAidLs7V8He/xljUHlLRL322kaZZY8XxRW7ALEwyg==}
+
+ '@glimmer/validator@0.44.0':
+ resolution: {integrity: sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw==}
+
+ '@glimmer/validator@0.84.3':
+ resolution: {integrity: sha512-RTBV4TokUB0vI31UC7ikpV7lOYpWUlyqaKV//pRC4pexYMlmqnVhkFrdiimB/R1XyNdUOQUmnIAcdic39NkbhQ==}
+
+ '@glimmer/vm-babel-plugins@0.84.3':
+ resolution: {integrity: sha512-fucWuuN7Q9QFB0ODd+PCltcTkmH4fLqYyXGArrfLt/TYN8gLv0yo00mPwFOSY7MWti/MUx88xd20/PycvYtg8w==}
+
+ '@glimmer/vm@0.84.3':
+ resolution: {integrity: sha512-3mBWvQLEbB8We2EwdmuALMT3zQEcE13ItfLJ0wxlSO2uj1uegeHat++mli8RMxeYNqex27DC+VuhHeWVve6Ngg==}
+
+ '@glimmer/wire-format@0.84.3':
+ resolution: {integrity: sha512-aZVfQhqv4k7tTo2vwjy+b4mAxKt7cHH75JR3zAeCilimApa+yYTYUyY73NDNSUVbelgAlQ5s6vTiMSQ55WwVow==}
+
+ '@glimmer/wire-format@0.94.8':
+ resolution: {integrity: sha512-A+Cp5m6vZMAEu0Kg/YwU2dJZXyYxVJs2zI57d3CP6NctmX7FsT8WjViiRUmt5abVmMmRH5b8BUovqY6GSMAdrw==}
+
+ '@handlebars/parser@2.0.0':
+ resolution: {integrity: sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA==}
+
+ '@handlebars/parser@2.2.2':
+ resolution: {integrity: sha512-n/SZW+12rwikx/f8YcSv9JCi5p9vn1Bnts9ZtVvfErG4h0gbjHI1H1ZMhVUnaOC7yzFc6PtsCKIK8XeTnL90Gw==}
+ engines: {node: ^18 || ^20 || ^22 || >=24}
+
+ '@humanwhocodes/config-array@0.13.0':
+ resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
+ engines: {node: '>=10.10.0'}
+ deprecated: Use @eslint/config-array instead
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/object-schema@2.0.3':
+ resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
+ deprecated: Use @eslint/object-schema instead
+
+ '@inquirer/external-editor@1.0.3':
+ resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/figures@1.0.15':
+ resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==}
+ engines: {node: '>=18'}
+
+ '@interactjs/types@1.10.27':
+ resolution: {integrity: sha512-BUdv0cvs4H5ODuwft2Xp4eL8Vmi3LcihK42z0Ft/FbVJZoRioBsxH+LlsBdK4tAie7PqlKGy+1oyOncu1nQ6eA==}
+
+ '@isaacs/cliui@8.0.2':
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/source-map@0.3.11':
+ resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==}
+
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+
+ '@kurkle/color@0.3.4':
+ resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==}
+
+ '@lint-todo/utils@13.1.1':
+ resolution: {integrity: sha512-F5z53uvRIF4dYfFfJP3a2Cqg+4P1dgJchJsFnsZE0eZp0LK8X7g2J0CsJHRgns+skpXOlM7n5vFGwkWCWj8qJg==}
+ engines: {node: 12.* || >= 14}
+
+ '@makepanic/ember-power-calendar-date-fns@0.4.2':
+ resolution: {integrity: sha512-CaNTtpaypA69fCqFlz69SMSuuLY1TLcDxjXaPmBNj+SsZpqQXcFgkPVRQEna7IICdgDbJIoLQnB/AB7/J6AD9g==}
+ engines: {node: '>= 10.*'}
+
+ '@mapbox/corslite@0.0.7':
+ resolution: {integrity: sha512-w/uS474VFjmqQ7fFWIMZINQM1BAQxDLuoJaZZIPES1BmeYpCtlh9MtbFxKGGDAsfvut8/HircIsVvEYRjQ+iMg==}
+
+ '@mapbox/polyline@0.2.0':
+ resolution: {integrity: sha512-GCddO0iw6AzOQqZgBmjEQI9Pgo40/yRgkTkikGctE01kNBN0ThWYuAnTD+hRWrAWMV6QJ0rNm4m8DAsaAXE7Pg==}
+ hasBin: true
+
+ '@mrmlnc/readdir-enhanced@2.2.1':
+ resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==}
+ engines: {node: '>=4'}
+
+ '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1':
+ resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@1.1.3':
+ resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==}
+ engines: {node: '>= 6'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@pkgjs/parseargs@0.11.0':
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+
+ '@pkgr/core@0.3.6':
+ resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
+ '@pnpm/constants@7.1.1':
+ resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
+ engines: {node: '>=16.14'}
+
+ '@pnpm/error@5.0.3':
+ resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==}
+ engines: {node: '>=16.14'}
+
+ '@pnpm/find-workspace-dir@6.0.3':
+ resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==}
+ engines: {node: '>=16.14'}
+
+ '@remirror/core-constants@3.0.0':
+ resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
+
+ '@rollup/plugin-node-resolve@15.3.1':
+ resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.78.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/pluginutils@5.4.0':
+ resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@sec-ant/readable-stream@0.4.1':
+ resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
+
+ '@simple-dom/document@1.4.0':
+ resolution: {integrity: sha512-/RUeVH4kuD3rzo5/91+h4Z1meLSLP66eXqpVAw/4aZmYozkeqUkMprq0znL4psX/adEed5cBgiNJcfMz/eKZLg==}
+
+ '@simple-dom/interface@1.4.0':
+ resolution: {integrity: sha512-l5qumKFWU0S+4ZzMaLXFU8tQZsicHEMEyAxI5kDFGhJsRqDwe0a7/iPA/GdxlGyDKseQQAgIz5kzU7eXTrlSpA==}
+
+ '@sindresorhus/is@0.14.0':
+ resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==}
+ engines: {node: '>=6'}
+
+ '@sindresorhus/merge-streams@4.0.0':
+ resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
+ engines: {node: '>=18'}
+
+ '@socket.io/component-emitter@3.1.2':
+ resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==}
+
+ '@sveltejs/acorn-typescript@1.0.10':
+ resolution: {integrity: sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==}
+ peerDependencies:
+ acorn: ^8.9.0
+
+ '@szmarczak/http-timer@1.1.2':
+ resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==}
+ engines: {node: '>=6'}
+
+ '@tailwindcss/forms@0.5.11':
+ resolution: {integrity: sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==}
+ peerDependencies:
+ tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1'
+
+ '@tiptap/core@2.27.2':
+ resolution: {integrity: sha512-ABL1N6eoxzDzC1bYvkMbvyexHacszsKdVPYqhl5GwHLOvpZcv9VE9QaKwDILTyz5voCA0lGcAAXZp+qnXOk5lQ==}
+ peerDependencies:
+ '@tiptap/pm': ^2.7.0
+
+ '@tiptap/extension-blockquote@2.27.2':
+ resolution: {integrity: sha512-oIGZgiAeA4tG3YxbTDfrmENL4/CIwGuP3THtHsNhwRqwsl9SfMk58Ucopi2GXTQSdYXpRJ0ahE6nPqB5D6j/Zw==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-bold@2.27.2':
+ resolution: {integrity: sha512-bR7J5IwjCGQ0s3CIxyMvOCnMFMzIvsc5OVZKscTN5UkXzFsaY6muUAIqtKxayBUucjtUskm5qZowJITCeCb1/A==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-bullet-list@2.27.2':
+ resolution: {integrity: sha512-gmFuKi97u5f8uFc/GQs+zmezjiulZmFiDYTh3trVoLRoc2SAHOjGEB7qxdx7dsqmMN7gwiAWAEVurLKIi1lnnw==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-code-block@2.27.2':
+ resolution: {integrity: sha512-KgvdQHS4jXr79aU3wZOGBIZYYl9vCB7uDEuRFV4so2rYrfmiYMw3T8bTnlNEEGe4RUeAms1i4fdwwvQp9nR1Dw==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+ '@tiptap/pm': ^2.7.0
+
+ '@tiptap/extension-code@2.27.2':
+ resolution: {integrity: sha512-7X9AgwqiIGXoZX7uvdHQsGsjILnN/JaEVtqfXZnPECzKGaWHeK/Ao4sYvIIIffsyZJA8k5DC7ny2/0sAgr2TuA==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-color@2.27.2':
+ resolution: {integrity: sha512-sOKCP8/2V3sRM3FdWgMe1lFE5ewsWNCRafiVoujS1+TTHGCj4jw6W+LiumBUk7cRI8kXW/rqGWVC4RVdknYUCA==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+ '@tiptap/extension-text-style': ^2.7.0
+
+ '@tiptap/extension-document@2.27.2':
+ resolution: {integrity: sha512-CFhAYsPnyYnosDC4639sCJnBUnYH4Cat9qH5NZWHVvdgtDwu8GZgZn2eSzaKSYXWH1vJ9DSlCK+7UyC3SNXIBA==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-dropcursor@2.27.2':
+ resolution: {integrity: sha512-oEu/OrktNoQXq1x29NnH/GOIzQZm8ieTQl3FK27nxfBPA89cNoH4mFEUmBL5/OFIENIjiYG3qWpg6voIqzswNw==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+ '@tiptap/pm': ^2.7.0
+
+ '@tiptap/extension-font-family@2.27.2':
+ resolution: {integrity: sha512-Lc3fAF/t3QXuG5AiOjGiCoyxJH7QyAOj5P+X4O6NfFtHST2wxoqIKqnlXkROv+g49Th/ypVGQ/z47wb6EG4iQg==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+ '@tiptap/extension-text-style': ^2.7.0
+
+ '@tiptap/extension-gapcursor@2.27.2':
+ resolution: {integrity: sha512-/c9VF1HBxj+AP54XGVgCmD9bEGYc5w5OofYCFQgM7l7PB1J00A4vOke0oPkHJnqnOOyPlFaxO/7N6l3XwFcnKA==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+ '@tiptap/pm': ^2.7.0
+
+ '@tiptap/extension-hard-break@2.27.2':
+ resolution: {integrity: sha512-kSRVGKlCYK6AGR0h8xRkk0WOFGXHIIndod3GKgWU49APuIGDiXd8sziXsSlniUsWmqgDmDXcNnSzPcV7AQ8YNg==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-heading@2.27.2':
+ resolution: {integrity: sha512-iM3yeRWuuQR/IRQ1djwNooJGfn9Jts9zF43qZIUf+U2NY8IlvdNsk2wTOdBgh6E0CamrStPxYGuln3ZS4fuglw==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-highlight@2.27.2':
+ resolution: {integrity: sha512-ZjlktDdMjruMJFAVz0TbQf0v92Jqkc7Ri1iZJqBXuLid+r+GxUzl2CVAV7qq5yagkGQgvAG+WGsMk880HgR3MA==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-history@2.27.2':
+ resolution: {integrity: sha512-+hSyqERoFNTWPiZx4/FCyZ/0eFqB9fuMdTB4AC/q9iwu3RNWAQtlsJg5230bf/qmyO6bZxRUc0k8p4hrV6ybAw==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+ '@tiptap/pm': ^2.7.0
+
+ '@tiptap/extension-horizontal-rule@2.27.2':
+ resolution: {integrity: sha512-WGWUSgX+jCsbtf9Y9OCUUgRZYuwjVoieW5n6mAUohJ9/6gc6sGIOrUpBShf+HHo6WD+gtQjRd+PssmX3NPWMpg==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+ '@tiptap/pm': ^2.7.0
+
+ '@tiptap/extension-image@2.27.2':
+ resolution: {integrity: sha512-5zL/BY41FIt72azVrCrv3n+2YJ/JyO8wxCcA4Dk1eXIobcgVyIdo4rG39gCqIOiqziAsqnqoj12QHTBtHsJ6mQ==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-italic@2.27.2':
+ resolution: {integrity: sha512-1OFsw2SZqfaqx5Fa5v90iNlPRcqyt+lVSjBwTDzuPxTPFY4Q0mL89mKgkq2gVHYNCiaRkXvFLDxaSvBWbmthgg==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-list-item@2.27.2':
+ resolution: {integrity: sha512-eJNee7IEGXMnmygM5SdMGDC8m/lMWmwNGf9fPCK6xk0NxuQRgmZHL6uApKcdH6gyNcRPHCqvTTkhEP7pbny/fg==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-ordered-list@2.27.2':
+ resolution: {integrity: sha512-M7A4tLGJcLPYdLC4CI2Gwl8LOrENQW59u3cMVa+KkwG1hzSJyPsbDpa1DI6oXPC2WtYiTf22zrbq3gVvH+KA2w==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-paragraph@2.27.2':
+ resolution: {integrity: sha512-elYVn2wHJJ+zB9LESENWOAfI4TNT0jqEN34sMA/hCtA4im1ZG2DdLHwkHIshj/c4H0dzQhmsS/YmNC5Vbqab/A==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-placeholder@2.27.2':
+ resolution: {integrity: sha512-IjsgSVYJRjpAKmIoapU0E2R4E2FPY3kpvU7/1i7PUYisylqejSJxmtJPGYw0FOMQY9oxnEEvfZHMBA610tqKpg==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+ '@tiptap/pm': ^2.7.0
+
+ '@tiptap/extension-strike@2.27.2':
+ resolution: {integrity: sha512-HHIjhafLhS2lHgfAsCwC1okqMsQzR4/mkGDm4M583Yftyjri1TNA7lzhzXWRFWiiMfJxKtdjHjUAQaHuteRTZw==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-subscript@2.27.2':
+ resolution: {integrity: sha512-x2Oz7hrI4KvzzB9pWChFRm6JnKdYAUQDyrlSROngtzXT7VpNQNoD5s8OlICzDeNsaRKzhR8omIz2z17S1VB48g==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-superscript@2.27.2':
+ resolution: {integrity: sha512-VTGJDuNqdesibSVW94Q71VaGVGr/bwBppdaNLn7k6beOegALfIH7ncArlkD/eihOlJ2qaWiT7FoWNLTb/Fdv1w==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-table-cell@2.27.2':
+ resolution: {integrity: sha512-9Lk46MjZMFzVZfOj9Kd7VgC6Odt6vmEhlCYVumErShUY7EkFqCw3b2IYoUtQkntfOEx/Afnhff/okNQwPsJeUA==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-table-header@2.27.2':
+ resolution: {integrity: sha512-ZEb6lbG0NbbodWLV0b4BS/QrDIPlUbCcuOsUxzqVvlMUY1Vg6Fj6fKwLaBcsIUDHi8sxZDBEgYEDw3BR/zcO6A==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-table-row@2.27.2':
+ resolution: {integrity: sha512-Nw9+tA56Y5HtLVP01NGCZSUuTQhJPtfK9OfmDgGgcxynn2cRVdEtj+9FNZqRhQ1iRVaAI+Rd4xRvX9qYePMOxw==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-table@2.27.2':
+ resolution: {integrity: sha512-pDbhOpT5phZkcsyPjGBQlXv0+0hmdrvqHJ+dJjkGcCtlfy2pHiEIhmIItOFagc7wXy8G9iUFZ9Jie4zvDf+brg==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+ '@tiptap/pm': ^2.7.0
+
+ '@tiptap/extension-text-align@2.27.2':
+ resolution: {integrity: sha512-0Pyks6Hu+Q/+9+5/osoSv0SP6jIerdWMYbi13aaZLsJoj3lBj5WNaE11JtAwSFN5sx0IbqhDSlp1zkvRnzgZ8g==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-text-style@2.27.2':
+ resolution: {integrity: sha512-Omk+uxjJLyEY69KStpCw5fA9asvV+MGcAX2HOxyISDFoLaL49TMrNjhGAuz09P1L1b0KGXo4ml7Q3v/Lfy4WPA==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-text@2.27.2':
+ resolution: {integrity: sha512-Xk7nYcigljAY0GO9hAQpZ65ZCxqOqaAlTPDFcKerXmlkQZP/8ndx95OgUb1Xf63kmPOh3xypurGS2is3v0MXSA==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-underline@2.27.2':
+ resolution: {integrity: sha512-gPOsbAcw1S07ezpAISwoO8f0RxpjcSH7VsHEFDVuXm4ODE32nhvSinvHQjv2icRLOXev+bnA7oIBu7Oy859gWQ==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/extension-youtube@2.27.2':
+ resolution: {integrity: sha512-3l/tfJ8wO8/tALo1tpAfN7TTJQQ00V52XaYamjQPVzPGelm/ECCfSCGQ4oRv8gbyzjUbZkNpkSV1Bj2V7QcGDg==}
+ peerDependencies:
+ '@tiptap/core': ^2.7.0
+
+ '@tiptap/pm@2.27.2':
+ resolution: {integrity: sha512-kaEg7BfiJPDQMKbjVIzEPO3wlcA+pZb2tlcK9gPrdDnEFaec2QTF1sXz2ak2IIb2curvnIrQ4yrfHgLlVA72wA==}
+
+ '@tiptap/starter-kit@2.27.2':
+ resolution: {integrity: sha512-bb0gJvPoDuyRUQ/iuN52j1//EtWWttw+RXAv1uJxfR0uKf8X7uAqzaOOgwjknoCIDC97+1YHwpGdnRjpDkOBxw==}
+
+ '@types/body-parser@1.19.6':
+ resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==}
+
+ '@types/broccoli-plugin@3.0.4':
+ resolution: {integrity: sha512-VfG0WydDHFr6MGj75U16bKxOnrl8uP9bXvq7VD+NuvnAq5/22cQDrf8o7BnzBJQt+Xm9jkPt1hh2EHVWluGYIA==}
+ deprecated: This is a stub types definition. broccoli-plugin provides its own type definitions, so you do not need this installed.
+
+ '@types/chai-as-promised@7.1.8':
+ resolution: {integrity: sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==}
+
+ '@types/chai@4.3.20':
+ resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==}
+
+ '@types/connect@3.4.38':
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+
+ '@types/cors@2.8.19':
+ resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==}
+
+ '@types/eslint@8.56.12':
+ resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==}
+
+ '@types/estree@1.0.9':
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+
+ '@types/express-serve-static-core@4.19.8':
+ resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==}
+
+ '@types/express@4.17.25':
+ resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==}
+
+ '@types/fs-extra@5.1.0':
+ resolution: {integrity: sha512-AInn5+UBFIK9FK5xc9yP5e3TQSPNNgjHByqYcj9g5elVBnDQcQL7PlO1CIRy2gWlbwK7UPYqi7vRvFA44dCmYQ==}
+
+ '@types/fs-extra@8.1.5':
+ resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==}
+
+ '@types/glob@7.2.0':
+ resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
+
+ '@types/glob@9.0.0':
+ resolution: {integrity: sha512-00UxlRaIUvYm4R4W9WYkN8/J+kV8fmOQ7okeH6YFtGWFMt3odD45tpG5yA5wnL7HE6lLgjaTW5n14ju2hl2NNA==}
+ deprecated: This is a stub types definition. glob provides its own type definitions, so you do not need this installed.
+
+ '@types/http-errors@2.0.5':
+ resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/keyv@3.1.4':
+ resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
+
+ '@types/linkify-it@5.0.0':
+ resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
+
+ '@types/markdown-it@14.1.2':
+ resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==}
+
+ '@types/mdurl@2.0.0':
+ resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
+
+ '@types/mime@1.3.5':
+ resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
+
+ '@types/minimatch@3.0.5':
+ resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
+
+ '@types/minimatch@6.0.0':
+ resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==}
+ deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed.
+
+ '@types/minimist@1.2.5':
+ resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
+
+ '@types/node@25.9.1':
+ resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==}
+
+ '@types/normalize-package-data@2.4.4':
+ resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+
+ '@types/qs@6.15.1':
+ resolution: {integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==}
+
+ '@types/range-parser@1.2.7':
+ resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
+
+ '@types/resolve@1.20.2':
+ resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
+
+ '@types/responselike@1.0.3':
+ resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
+
+ '@types/rimraf@2.0.5':
+ resolution: {integrity: sha512-YyP+VfeaqAyFmXoTh3HChxOQMyjByRMsHU7kc5KOJkSlXudhMhQIALbYV7rHh/l8d2lX3VUQzprrcAgWdRuU8g==}
+
+ '@types/send@0.17.6':
+ resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==}
+
+ '@types/send@1.2.1':
+ resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==}
+
+ '@types/serve-static@1.15.10':
+ resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==}
+
+ '@types/symlink-or-copy@1.2.2':
+ resolution: {integrity: sha512-MQ1AnmTLOncwEf9IVU+B2e4Hchrku5N67NkgcAHW0p3sdzPe0FNMANxEm6OJUzPniEQGkeT3OROLlCwZJLWFZA==}
+
+ '@types/trusted-types@2.0.7':
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
+
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
+ '@ungap/structured-clone@1.3.1':
+ resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==}
+
+ '@webassemblyjs/ast@1.14.1':
+ resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==}
+
+ '@webassemblyjs/ast@1.9.0':
+ resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==}
+
+ '@webassemblyjs/floating-point-hex-parser@1.13.2':
+ resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==}
+
+ '@webassemblyjs/floating-point-hex-parser@1.9.0':
+ resolution: {integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==}
+
+ '@webassemblyjs/helper-api-error@1.13.2':
+ resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==}
+
+ '@webassemblyjs/helper-api-error@1.9.0':
+ resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==}
+
+ '@webassemblyjs/helper-buffer@1.14.1':
+ resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==}
+
+ '@webassemblyjs/helper-buffer@1.9.0':
+ resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==}
+
+ '@webassemblyjs/helper-code-frame@1.9.0':
+ resolution: {integrity: sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==}
+
+ '@webassemblyjs/helper-fsm@1.9.0':
+ resolution: {integrity: sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==}
+
+ '@webassemblyjs/helper-module-context@1.9.0':
+ resolution: {integrity: sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==}
+
+ '@webassemblyjs/helper-numbers@1.13.2':
+ resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==}
+
+ '@webassemblyjs/helper-wasm-bytecode@1.13.2':
+ resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==}
+
+ '@webassemblyjs/helper-wasm-bytecode@1.9.0':
+ resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==}
+
+ '@webassemblyjs/helper-wasm-section@1.14.1':
+ resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==}
+
+ '@webassemblyjs/helper-wasm-section@1.9.0':
+ resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==}
+
+ '@webassemblyjs/ieee754@1.13.2':
+ resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==}
+
+ '@webassemblyjs/ieee754@1.9.0':
+ resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==}
+
+ '@webassemblyjs/leb128@1.13.2':
+ resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==}
+
+ '@webassemblyjs/leb128@1.9.0':
+ resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==}
+
+ '@webassemblyjs/utf8@1.13.2':
+ resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==}
+
+ '@webassemblyjs/utf8@1.9.0':
+ resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==}
+
+ '@webassemblyjs/wasm-edit@1.14.1':
+ resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==}
+
+ '@webassemblyjs/wasm-edit@1.9.0':
+ resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==}
+
+ '@webassemblyjs/wasm-gen@1.14.1':
+ resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==}
+
+ '@webassemblyjs/wasm-gen@1.9.0':
+ resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==}
+
+ '@webassemblyjs/wasm-opt@1.14.1':
+ resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==}
+
+ '@webassemblyjs/wasm-opt@1.9.0':
+ resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==}
+
+ '@webassemblyjs/wasm-parser@1.14.1':
+ resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==}
+
+ '@webassemblyjs/wasm-parser@1.9.0':
+ resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==}
+
+ '@webassemblyjs/wast-parser@1.9.0':
+ resolution: {integrity: sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==}
+
+ '@webassemblyjs/wast-printer@1.14.1':
+ resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==}
+
+ '@webassemblyjs/wast-printer@1.9.0':
+ resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==}
+
+ '@xmldom/xmldom@0.9.10':
+ resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==}
+ engines: {node: '>=14.6'}
+
+ '@xtuc/ieee754@1.2.0':
+ resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
+
+ '@xtuc/long@4.2.2':
+ resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+
+ abbrev@1.1.1:
+ resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
+
+ accepts@1.3.8:
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
+ engines: {node: '>= 0.6'}
+
+ accepts@2.0.0:
+ resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==}
+ engines: {node: '>= 0.6'}
+
+ acorn-import-phases@1.0.4:
+ resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==}
+ engines: {node: '>=10.13.0'}
+ peerDependencies:
+ acorn: ^8.14.0
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@5.7.4:
+ resolution: {integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ acorn@6.4.2:
+ resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ ag-channel@5.0.0:
+ resolution: {integrity: sha512-bArHkdqQxynim981t8FLZM5TfA0v7p081OlFdOxs6clB79GSGcGlOQMDa31DT9F5VMjzqNiJmhfGwinvfU/3Zg==}
+
+ ag-request@1.1.0:
+ resolution: {integrity: sha512-d4K7QC1KnIpzcnUNNOeh1ddxmYMLiIdhdc1M8osxiHbZP/uoia4IINhhf2+1CrlnNJEPUoUH0Y58Sx0qeqoIvg==}
+
+ air-datepicker@3.6.0:
+ resolution: {integrity: sha512-+txUkqa949rXBJDmkQAIb/GehZECJYF4rm9XJxVYtEX22C9WvBpE/XwCUQZBopKIkpg4ycAySJ9lH3JOg9qQTw==}
+
+ ajv-errors@1.0.1:
+ resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==}
+ peerDependencies:
+ ajv: '>=5.0.0'
+
+ ajv-formats@2.1.1:
+ resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ ajv-keywords@3.5.2:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+
+ ajv-keywords@5.1.0:
+ resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
+ peerDependencies:
+ ajv: ^8.8.2
+
+ ajv@6.15.0:
+ resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==}
+
+ ajv@8.20.0:
+ resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==}
+
+ amd-name-resolver@0.0.6:
+ resolution: {integrity: sha512-W2trar3LgeKV/yB6ZRD3Iw7MlhrKjLMVSNAatWNNYsn4w+iSfbmA66VB+jQjVIfvzHPZicnHObAvflMkoVtjAQ==}
+
+ amd-name-resolver@1.3.1:
+ resolution: {integrity: sha512-26qTEWqZQ+cxSYygZ4Cf8tsjDBLceJahhtewxtKZA3SRa4PluuqYCuheemDQD+7Mf5B7sr+zhTDWAHDh02a1Dw==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ amdefine@1.0.1:
+ resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==}
+ engines: {node: '>=0.4.2'}
+
+ ansi-escapes@3.2.0:
+ resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==}
+ engines: {node: '>=4'}
+
+ ansi-escapes@4.3.2:
+ resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
+ engines: {node: '>=8'}
+
+ ansi-html@0.0.7:
+ resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==}
+ engines: {'0': node >= 0.8.0}
+ hasBin: true
+
+ ansi-html@0.0.9:
+ resolution: {integrity: sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==}
+ engines: {'0': node >= 0.8.0}
+ hasBin: true
+
+ ansi-regex@2.1.1:
+ resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
+ engines: {node: '>=0.10.0'}
+
+ ansi-regex@3.0.1:
+ resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
+ engines: {node: '>=4'}
+
+ ansi-regex@4.1.1:
+ resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==}
+ engines: {node: '>=6'}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-regex@6.2.2:
+ resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
+ engines: {node: '>=12'}
+
+ ansi-styles@2.2.1:
+ resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
+ engines: {node: '>=0.10.0'}
+
+ ansi-styles@3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ ansi-styles@6.2.3:
+ resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
+ engines: {node: '>=12'}
+
+ ansi-to-html@0.6.15:
+ resolution: {integrity: sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==}
+ engines: {node: '>=8.0.0'}
+ hasBin: true
+
+ ansicolors@0.2.1:
+ resolution: {integrity: sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==}
+
+ any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+
+ anymatch@2.0.0:
+ resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ aproba@1.2.0:
+ resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
+
+ arg@5.0.2:
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ aria-query@5.3.1:
+ resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==}
+ engines: {node: '>= 0.4'}
+
+ aria-query@5.3.2:
+ resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
+ engines: {node: '>= 0.4'}
+
+ arr-diff@4.0.0:
+ resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
+ engines: {node: '>=0.10.0'}
+
+ arr-flatten@1.1.0:
+ resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
+ engines: {node: '>=0.10.0'}
+
+ arr-union@3.1.0:
+ resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
+ engines: {node: '>=0.10.0'}
+
+ array-buffer-byte-length@1.0.2:
+ resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
+ engines: {node: '>= 0.4'}
+
+ array-equal@1.0.2:
+ resolution: {integrity: sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==}
+
+ array-flatten@1.1.1:
+ resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
+
+ array-to-error@1.1.1:
+ resolution: {integrity: sha512-kqcQ8s7uQfg3UViYON3kCMcck3A9exxgq+riVuKy08Mx00VN4EJhK30L2VpjE58LQHKhcE/GRpvbVUhqTvqzGQ==}
+
+ array-to-sentence@1.1.0:
+ resolution: {integrity: sha512-YkwkMmPA2+GSGvXj1s9NZ6cc2LBtR+uSeWTy2IGi5MR1Wag4DdrcjTxA/YV/Fw+qKlBeXomneZgThEbm/wvZbw==}
+
+ array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+
+ array-unique@0.3.2:
+ resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
+ engines: {node: '>=0.10.0'}
+
+ arraybuffer.prototype.slice@1.0.4:
+ resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
+ engines: {node: '>= 0.4'}
+
+ arrify@1.0.1:
+ resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
+ engines: {node: '>=0.10.0'}
+
+ asn1.js@4.10.1:
+ resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==}
+
+ assert-never@1.4.0:
+ resolution: {integrity: sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==}
+
+ assert@1.5.1:
+ resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==}
+
+ assign-symbols@1.0.0:
+ resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
+ engines: {node: '>=0.10.0'}
+
+ ast-types@0.13.3:
+ resolution: {integrity: sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==}
+ engines: {node: '>=4'}
+
+ astral-regex@2.0.0:
+ resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
+ engines: {node: '>=8'}
+
+ async-disk-cache@1.3.5:
+ resolution: {integrity: sha512-VZpqfR0R7CEOJZ/0FOTgWq70lCrZyS1rkI8PXugDUkTKyyAUgZ2zQ09gLhMkEn+wN8LYeUTPxZdXtlX/kmbXKQ==}
+
+ async-disk-cache@2.1.0:
+ resolution: {integrity: sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg==}
+ engines: {node: 8.* || >= 10.*}
+
+ async-each@1.0.6:
+ resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==}
+
+ async-function@1.0.0:
+ resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
+ engines: {node: '>= 0.4'}
+
+ async-promise-queue@1.0.5:
+ resolution: {integrity: sha512-xi0aQ1rrjPWYmqbwr18rrSKbSaXIeIwSd1J4KAgVfkq8utNbdZoht7GfvfY6swFUAMJ9obkc4WPJmtGwl+B8dw==}
+
+ async-stream-emitter@4.1.0:
+ resolution: {integrity: sha512-cfPZYjHkhCdHSR+eux71vOU8+8Xb23oLyxccAjwYHgOxDb3+qSDb2HV1Y0Hmu39vZlse2cm15CUShLiVYXHCmQ==}
+
+ async@2.6.4:
+ resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
+
+ async@3.2.6:
+ resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
+
+ at-least-node@1.0.0:
+ resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
+ engines: {node: '>= 4.0.0'}
+
+ atob@2.1.2:
+ resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
+ engines: {node: '>= 4.5.0'}
+ hasBin: true
+
+ autonumeric@4.10.10:
+ resolution: {integrity: sha512-fLzZikIpN/hNvQPBrffI2RAw2y4n/dH4RAf4XBOKcuznKyiJmCk1WMRFa99LivRqTN1uYNHdaaCMeYAvNynGmg==}
+
+ autoprefixer@10.5.0:
+ resolution: {integrity: sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ axobject-query@4.1.0:
+ resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
+ engines: {node: '>= 0.4'}
+
+ babel-code-frame@6.26.0:
+ resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==}
+
+ babel-core@6.26.3:
+ resolution: {integrity: sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==}
+
+ babel-generator@6.26.1:
+ resolution: {integrity: sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==}
+
+ babel-helpers@6.24.1:
+ resolution: {integrity: sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==}
+
+ babel-import-util@0.2.0:
+ resolution: {integrity: sha512-CtWYYHU/MgK88rxMrLfkD356dApswtR/kWZ/c6JifG1m10e7tBBrs/366dFzWMAoqYmG5/JSh+94tUSpIwh+ag==}
+ engines: {node: '>= 12.*'}
+
+ babel-import-util@1.4.1:
+ resolution: {integrity: sha512-TNdiTQdPhXlx02pzG//UyVPSKE7SNWjY0n4So/ZnjQpWwaM5LvWBLkWa1JKll5u06HNscHD91XZPuwrMg1kadQ==}
+ engines: {node: '>= 12.*'}
+
+ babel-import-util@2.1.1:
+ resolution: {integrity: sha512-3qBQWRjzP9NreSH/YrOEU1Lj5F60+pWSLP0kIdCWxjFHH7pX2YPHIxQ67el4gnMNfYoDxSDGcT0zpVlZ+gVtQA==}
+ engines: {node: '>= 12.*'}
+
+ babel-import-util@3.0.1:
+ resolution: {integrity: sha512-2copPaWQFUrzooJVIVZA/Oppx/S/KOoZ4Uhr+XWEQDMZ8Rvq/0SNQpbdIyMBJ8IELWt10dewuJw+tX4XjOo7Rg==}
+ engines: {node: '>= 12.*'}
+
+ babel-loader@8.4.1:
+ resolution: {integrity: sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==}
+ engines: {node: '>= 8.9'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ webpack: '>=2'
+
+ babel-messages@6.23.0:
+ resolution: {integrity: sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==}
+
+ babel-plugin-compact-reexports@1.1.0:
+ resolution: {integrity: sha512-+KgjNJ5yMeZzJxYZdLEy9m82m92aL7FLvNJcK6dYJbW06t+UTpFJ2FVSs35zMfURcPnrQELYhLG4VC+kt/4gvw==}
+
+ babel-plugin-debug-macros@0.2.0:
+ resolution: {integrity: sha512-Wpmw4TbhR3Eq2t3W51eBAQSdKlr+uAyF0GI4GtPfMCD12Y4cIdpKC9l0RjNTH/P9isFypSqqewMPm7//fnZlNA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-beta.42
+
+ babel-plugin-debug-macros@0.3.4:
+ resolution: {integrity: sha512-wfel/vb3pXfwIDZUrkoDrn5FHmlWI96PCJ3UCDv2a86poJ3EQrnArNW5KfHSVJ9IOgxHbo748cQt7sDU+0KCEw==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ babel-plugin-ember-data-packages-polyfill@0.1.2:
+ resolution: {integrity: sha512-kTHnOwoOXfPXi00Z8yAgyD64+jdSXk3pknnS7NlqnCKAU6YDkXZ4Y7irl66kaZjZn0FBBt0P4YOZFZk85jYOww==}
+ engines: {node: 6.* || 8.* || 10.* || >= 12.*}
+
+ babel-plugin-ember-modules-api-polyfill@3.5.0:
+ resolution: {integrity: sha512-pJajN/DkQUnStw0Az8c6khVcMQHgzqWr61lLNtVeu0g61LRW0k9jyK7vaedrHDWGe/Qe8sxG5wpiyW9NsMqFzA==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ babel-plugin-ember-template-compilation@2.4.1:
+ resolution: {integrity: sha512-n+ktQ3JeyWrpRutSyPn2PsHeH+A94SVm+iUoogzf9VUqpP47FfWem24gpQXhn+p6+x5/BpuFJXMLXWt7ZoYAKA==}
+ engines: {node: '>= 12.*'}
+
+ babel-plugin-filter-imports@4.0.0:
+ resolution: {integrity: sha512-jDLlxI8QnfKd7PtieH6pl4tZJzymzfCDCPGdTq/grgbiYAikwDPp/oL0IlFJn0HQjLpcLkyYhPKkUVneRESw5w==}
+ engines: {node: '>=8'}
+
+ babel-plugin-htmlbars-inline-precompile@3.2.0:
+ resolution: {integrity: sha512-IUeZmgs9tMUGXYu1vfke5I18yYJFldFGdNFQOWslXTnDWXzpwPih7QFduUqvT+awDpDuNtXpdt5JAf43Q1Hhzg==}
+ engines: {node: 8.* || 10.* || >= 12.*}
+
+ babel-plugin-htmlbars-inline-precompile@5.3.1:
+ resolution: {integrity: sha512-QWjjFgSKtSRIcsBhJmEwS2laIdrA6na8HAlc/pEAhjHgQsah/gMiBFRZvbQTy//hWxR4BMwV7/Mya7q5H8uHeA==}
+ engines: {node: 10.* || >= 12.*}
+
+ babel-plugin-module-resolver@3.2.0:
+ resolution: {integrity: sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==}
+ engines: {node: '>= 6.0.0'}
+
+ babel-plugin-module-resolver@5.0.3:
+ resolution: {integrity: sha512-h8h6H71ZvdLJZxZrYkaeR30BojTaV7O9GfqacY14SNj5CNB8ocL9tydNzTC0JrnNN7vY3eJhwCmkDj7tuEUaqQ==}
+
+ babel-plugin-polyfill-corejs2@0.4.17:
+ resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-corejs3@0.13.0:
+ resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-corejs3@0.14.2:
+ resolution: {integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-regenerator@0.6.8:
+ resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-syntax-dynamic-import@6.18.0:
+ resolution: {integrity: sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA==}
+
+ babel-register@6.26.0:
+ resolution: {integrity: sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==}
+
+ babel-runtime@6.26.0:
+ resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==}
+
+ babel-template@6.26.0:
+ resolution: {integrity: sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==}
+
+ babel-traverse@6.26.0:
+ resolution: {integrity: sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==}
+
+ babel-types@6.26.0:
+ resolution: {integrity: sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==}
+
+ babel6-plugin-strip-class-callcheck@6.0.0:
+ resolution: {integrity: sha512-biNFJ7JAK4+9BwswDGL0dmYpvXHvswOFR/iKg3Q/f+pNxPEa5bWZkLHI1fW4spPytkHGMe7f/XtYyhzml9hiWg==}
+
+ babylon@6.18.0:
+ resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==}
+ hasBin: true
+
+ backbone@1.6.1:
+ resolution: {integrity: sha512-YQzWxOrIgL6BoFnZjThVN99smKYhyEXXFyJJ2lsF1wJLyo4t+QjmkLrH8/fN22FZ4ykF70Xq7PgTugJVR4zS9Q==}
+
+ backburner.js@2.8.0:
+ resolution: {integrity: sha512-zYXY0KvpD7/CWeOLF576mV8S+bQsaIoj/GNLXXB+Eb8SJcQy5lqSjkRrZ0MZhdKUs9QoqmGNIEIe3NQfGiiscQ==}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ balanced-match@2.0.0:
+ resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==}
+
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ base64id@2.0.0:
+ resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==}
+ engines: {node: ^4.5.0 || >= 5.9}
+
+ base@0.11.2:
+ resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
+ engines: {node: '>=0.10.0'}
+
+ baseline-browser-mapping@2.10.33:
+ resolution: {integrity: sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ basic-auth@2.0.1:
+ resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
+ engines: {node: '>= 0.8'}
+
+ better-path-resolve@1.0.0:
+ resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
+ engines: {node: '>=4'}
+
+ big.js@5.2.2:
+ resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+
+ binary-extensions@1.13.1:
+ resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==}
+ engines: {node: '>=0.10.0'}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ binaryextensions@2.3.0:
+ resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==}
+ engines: {node: '>=0.8'}
+
+ bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+
+ bl@1.2.3:
+ resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==}
+
+ bl@4.1.0:
+ resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+
+ blank-object@1.0.2:
+ resolution: {integrity: sha512-kXQ19Xhoghiyw66CUiGypnuRpWlbHAzY/+NyvqTEdTfhfQGH1/dbEMYiXju7fYKIFePpzp/y9dsu5Cu/PkmawQ==}
+
+ blob-polyfill@7.0.20220408:
+ resolution: {integrity: sha512-oD8Ydw+5lNoqq+en24iuPt1QixdPpe/nUF8azTHnviCZYu9zUC+TwdzIp5orpblJosNlgNbVmmAb//c6d6ImUQ==}
+
+ bluebird@3.7.2:
+ resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
+
+ bn.js@4.12.3:
+ resolution: {integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==}
+
+ bn.js@5.2.3:
+ resolution: {integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==}
+
+ body-parser@1.20.5:
+ resolution: {integrity: sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
+ body-parser@2.2.2:
+ resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==}
+ engines: {node: '>=18'}
+
+ body@5.1.0:
+ resolution: {integrity: sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==}
+
+ brace-expansion@1.1.15:
+ resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==}
+
+ brace-expansion@2.1.1:
+ resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==}
+
+ brace-expansion@5.0.6:
+ resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==}
+ engines: {node: 18 || 20 || >=22}
+
+ braces@2.3.2:
+ resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
+ engines: {node: '>=0.10.0'}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ broccoli-asset-rev@3.0.0:
+ resolution: {integrity: sha512-gAHQZnwvtl74tGevUqGuWoyOdJUdMMv0TjGSMzbdyGImr9fZcnM6xmggDA8bUawrMto9NFi00ZtNUgA4dQiUBw==}
+
+ broccoli-asset-rewrite@2.0.0:
+ resolution: {integrity: sha512-dqhxdQpooNi7LHe8J9Jdxp6o3YPFWl4vQmint6zrsn2sVbOo+wpyiX3erUSt0IBtjNkAxqJjuvS375o2cLBHTA==}
+
+ broccoli-babel-transpiler@7.8.1:
+ resolution: {integrity: sha512-6IXBgfRt7HZ61g67ssBc6lBb3Smw3DPZ9dEYirgtvXWpRZ2A9M22nxy6opEwJDgDJzlu/bB7ToppW33OFkA1gA==}
+ engines: {node: '>= 6'}
+
+ broccoli-babel-transpiler@8.0.2:
+ resolution: {integrity: sha512-XIGsUyJgehSRNVVrOnRuW+tijYBqkoGEONc/UHkiOBW+C0trPv9c/Icc/Cf+2l1McQlHW/Mc6SksHg6qFlEClg==}
+ engines: {node: 16.* || >= 18}
+ peerDependencies:
+ '@babel/core': ^7.17.9
+
+ broccoli-builder@0.18.14:
+ resolution: {integrity: sha512-YoUHeKnPi4xIGZ2XDVN9oHNA9k3xF5f5vlA+1wvrxIIDXqQU97gp2FxVAF503Zxdtt0C5CRB5n+47k2hlkaBzA==}
+ engines: {node: '>= 0.10.0'}
+
+ broccoli-caching-writer@2.3.1:
+ resolution: {integrity: sha512-lfoDx98VaU8tG4mUXCxKdKyw2Lr+iSIGUjCgV83KC2zRC07SzYTGuSsMqpXFiOQlOGuoJxG3NRoyniBa1BWOqA==}
+
+ broccoli-caching-writer@3.1.0:
+ resolution: {integrity: sha512-3TWi92ogzUhLmCF5V4DjhN7v4t6OjXYO21p9GkuOZQ1SiVmM1sYio364y64dREHUzjFEcH8mdVCiRDdrwUGVTw==}
+
+ broccoli-clean-css@1.1.0:
+ resolution: {integrity: sha512-S7/RWWX+lL42aGc5+fXVLnwDdMtS0QEWUFalDp03gJ9Na7zj1rWa351N2HZ687E2crM9g+eDWXKzD17cbcTepg==}
+
+ broccoli-concat@4.2.7:
+ resolution: {integrity: sha512-JePfBFwHtZ2FR33PBZQA99/hQ4idIbZ205rH84Jw6vgkuKDRVXWVzZP2gvR2WXugXaQ1fj3+yO04b0QsstNHzQ==}
+ engines: {node: 10.* || >= 12.*}
+
+ broccoli-config-loader@1.0.1:
+ resolution: {integrity: sha512-MDKYQ50rxhn+g17DYdfzfEM9DjTuSGu42Db37A8TQHQe8geYEcUZ4SQqZRgzdAI3aRQNlA1yBHJfOeGmOjhLIg==}
+
+ broccoli-config-replace@1.1.3:
+ resolution: {integrity: sha512-gWGS2h/2VyJnD9tI1/HzRsXLOptnt7tu+KLpfPuxd+DBcdswn/i0kyVrTxQpFy+C5eo2hBn672QAEZzf/7LlAA==}
+
+ broccoli-debug@0.6.5:
+ resolution: {integrity: sha512-RIVjHvNar9EMCLDW/FggxFRXqpjhncM/3qq87bn/y+/zR9tqEkHvTqbyOc4QnB97NO2m6342w4wGkemkaeOuWg==}
+
+ broccoli-dependency-funnel@2.1.2:
+ resolution: {integrity: sha512-k6b0OnNuRcUnJ9TXA0o6RvqXOkTQ6APKoLsZeMJHAe/YjLjE1uTlfw4Z88GfGmi8gwtLHdnkrhBoJ7YdIkcVZA==}
+ engines: {node: '>= 6.0.0'}
+
+ broccoli-file-creator@2.1.1:
+ resolution: {integrity: sha512-YpjOExWr92C5vhnK0kmD81kM7U09kdIRZk9w4ZDCDHuHXW+VE/x6AGEOQQW3loBQQ6Jk+k+TSm8dESy4uZsnjw==}
+ engines: {node: ^4.5 || 6.* || >= 7.*}
+
+ broccoli-filter@1.3.0:
+ resolution: {integrity: sha512-VXJXw7eBfG82CFxaBDjYmyN7V72D4In2zwLVQJd/h3mBfF3CMdRTsv2L20lmRTtCv1sAHcB+LgMso90e/KYiLw==}
+
+ broccoli-funnel-reducer@1.0.0:
+ resolution: {integrity: sha512-SaOCEdh+wnt2jFUV2Qb32m7LXyElvFwW3NKNaEJyi5PGQNwxfqpkc0KI6AbQANKgdj/40U2UC0WuGThFwuEUaA==}
+
+ broccoli-funnel@2.0.1:
+ resolution: {integrity: sha512-C8Lnp9TVsSSiZMGEF16C0dCiNg2oJqUKwuZ1K4kVC6qRPG/2Cj/rtB5kRCC9qEbwqhX71bDbfHROx0L3J7zXQg==}
+ engines: {node: ^4.5 || 6.* || >= 7.*}
+
+ broccoli-funnel@2.0.2:
+ resolution: {integrity: sha512-/vDTqtv7ipjEZQOVqO4vGDVAOZyuYzQ/EgGoyewfOgh1M7IQAToBKZI0oAQPgMBeFPPlIbfMuAngk+ohPBuaHQ==}
+ engines: {node: ^4.5 || 6.* || >= 7.*}
+
+ broccoli-funnel@3.0.8:
+ resolution: {integrity: sha512-ng4eIhPYiXqMw6SyGoxPHR3YAwEd2lr9FgBI1CyTbspl4txZovOsmzFkMkGAlu88xyvYXJqHiM2crfLa65T1BQ==}
+ engines: {node: 10.* || >= 12.*}
+
+ broccoli-kitchen-sink-helpers@0.2.9:
+ resolution: {integrity: sha512-C+oEqivDofZv/h80rgN4WJkbZkbfwkrIeu8vFn4bb4m4jPd3ICNNplhkXGl3ps439pzc2yjZ1qIwz0yy8uHcQg==}
+
+ broccoli-kitchen-sink-helpers@0.3.1:
+ resolution: {integrity: sha512-gqYnKSJxBSjj/uJqeuRAzYVbmjWhG0mOZ8jrp6+fnUIOgLN6MvI7XxBECDHkYMIFPJ8Smf4xaI066Q2FqQDnXg==}
+
+ broccoli-merge-files@0.8.0:
+ resolution: {integrity: sha512-S6dXHECbDkr7YMuCitAAQT8EZeW/kXom0Y8+QmQfiSkWspkKDGrr4vXgEZJjWqfa/FSx/Y18NEEOuMmbIW+XNQ==}
+ engines: {node: '>=8.0.0'}
+
+ broccoli-merge-trees@2.0.1:
+ resolution: {integrity: sha512-WjaexJ+I8BxP5V5RNn6um/qDRSmKoiBC/QkRi79FT9ClHfldxRyCDs9mcV7mmoaPlsshmmPaUz5jdtcKA6DClQ==}
+
+ broccoli-merge-trees@3.0.2:
+ resolution: {integrity: sha512-ZyPAwrOdlCddduFbsMyyFzJUrvW6b04pMvDiAQZrCwghlvgowJDY+EfoXn+eR1RRA5nmGHJ+B68T63VnpRiT1A==}
+ engines: {node: '>=6.0.0'}
+
+ broccoli-merge-trees@4.2.0:
+ resolution: {integrity: sha512-nTrQe5AQtCrW4enLRvbD/vTLHqyW2tz+vsLXQe4IEaUhepuMGVKJJr+I8n34Vu6fPjmPLwTjzNC8izMIDMtHPw==}
+ engines: {node: 10.* || >= 12.*}
+
+ broccoli-middleware@2.1.2:
+ resolution: {integrity: sha512-hdJ5mPwvsQI/eDZbpztfaA0DNINqp/aHzEz4lPG8WCVOXUfbFdbiWO7nMu3v+mmwTcgRD2e8I4DVQ9J2AoYnPQ==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ broccoli-node-api@1.7.0:
+ resolution: {integrity: sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw==}
+
+ broccoli-node-info@1.1.0:
+ resolution: {integrity: sha512-DUohSZCdfXli/3iN6SmxPbck1OVG8xCkrLx47R25his06xVc1ZmmrOsrThiM8BsCWirwyocODiYJqNP5W2Hg1A==}
+ engines: {node: '>= 0.10.0'}
+
+ broccoli-node-info@2.2.0:
+ resolution: {integrity: sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg==}
+ engines: {node: 8.* || >= 10.*}
+
+ broccoli-output-wrapper@2.0.0:
+ resolution: {integrity: sha512-V/ozejo+snzNf75i/a6iTmp71k+rlvqjE3+jYfimuMwR1tjNNRdtfno+NGNQB2An9bIAeqZnKhMDurAznHAdtA==}
+
+ broccoli-output-wrapper@3.2.5:
+ resolution: {integrity: sha512-bQAtwjSrF4Nu0CK0JOy5OZqw9t5U0zzv2555EA/cF8/a8SLDTIetk9UgrtMVw7qKLKdSpOZ2liZNeZZDaKgayw==}
+ engines: {node: 10.* || >= 12.*}
+
+ broccoli-persistent-filter@1.4.6:
+ resolution: {integrity: sha512-0RejLwoC95kv4kta8KAa+FmECJCK78Qgm8SRDEK7YyU0N9Cx6KpY3UCDy9WELl3mCXLN8TokNxc7/hp3lL4lfw==}
+
+ broccoli-persistent-filter@2.3.1:
+ resolution: {integrity: sha512-hVsmIgCDrl2NFM+3Gs4Cr2TA6UPaIZip99hN8mtkaUPgM8UeVnCbxelCvBjUBHo0oaaqP5jzqqnRVvb568Yu5g==}
+ engines: {node: 6.* || >= 8.*}
+
+ broccoli-persistent-filter@3.1.3:
+ resolution: {integrity: sha512-Q+8iezprZzL9voaBsDY3rQVl7c7H5h+bvv8SpzCZXPZgfBFCbx7KFQ2c3rZR6lW5k4Kwoqt7jG+rZMUg67Gwxw==}
+ engines: {node: 10.* || >= 12.*}
+
+ broccoli-plugin@1.1.0:
+ resolution: {integrity: sha512-dY1QsA20of9wWEto8yhN7JQjpfjySmgeIMsvnQ9aBAv1wEJJCe04B0ekdgq7Bduyx9yWXdoC5CngGy81swmp2w==}
+
+ broccoli-plugin@1.3.1:
+ resolution: {integrity: sha512-DW8XASZkmorp+q7J4EeDEZz+LoyKLAd2XZULXyD9l4m9/hAKV3vjHmB1kiUshcWAYMgTP1m2i4NnqCE/23h6AQ==}
+
+ broccoli-plugin@2.1.0:
+ resolution: {integrity: sha512-ElE4caljW4slapyEhSD9jU9Uayc8SoSABWdmY9SqbV8DHNxU6xg1jJsPcMm+cXOvggR3+G+OXAYQeFjWVnznaw==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ broccoli-plugin@3.1.0:
+ resolution: {integrity: sha512-7w7FP8WJYjLvb0eaw27LO678TGGaom++49O1VYIuzjhXjK5kn2+AMlDm7CaUFw4F7CLGoVQeZ84d8gICMJa4lA==}
+ engines: {node: 8.* || 10.* || >= 12.*}
+
+ broccoli-plugin@4.0.7:
+ resolution: {integrity: sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==}
+ engines: {node: 10.* || >= 12.*}
+
+ broccoli-postcss-single@5.0.2:
+ resolution: {integrity: sha512-r4eWtz/5uihtHwOszViWwV6weJr9VryvaqtVo1DOh4gL+TbTyU+NX+Y+t9TqUw99OtuivMz4uHLLH7zZECbZmw==}
+ engines: {node: '>= 10'}
+
+ broccoli-postcss@6.1.0:
+ resolution: {integrity: sha512-I8+DHq5xcCBHU0PpCtDMayAmSUVx07CqAquUpdlNUHckXeD//cUFf4aFQllnZBhF8Z86YLhuA+j7qvCYYgBXRg==}
+ engines: {node: '>= 10'}
+
+ broccoli-rollup@5.0.0:
+ resolution: {integrity: sha512-QdMuXHwsdz/LOS8zu4HP91Sfi4ofimrOXoYP/lrPdRh7lJYD87Lfq4WzzUhGHsxMfzANIEvl/7qVHKD3cFJ4tA==}
+ engines: {node: '>=12.0'}
+
+ broccoli-slow-trees@3.1.0:
+ resolution: {integrity: sha512-FRI7mRTk2wjIDrdNJd6znS7Kmmne4VkAkl8Ix1R/VoePFMD0g0tEl671xswzFqaRjpT9Qu+CC4hdXDLDJBuzMw==}
+
+ broccoli-source@2.1.2:
+ resolution: {integrity: sha512-1lLayO4wfS0c0Sj50VfHJXNWf94FYY0WUhxj0R77thbs6uWI7USiOWFqQV5dRmhAJnoKaGN4WyLGQbgjgiYFwQ==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ broccoli-source@3.0.1:
+ resolution: {integrity: sha512-ZbGVQjivWi0k220fEeIUioN6Y68xjMy0xiLAc0LdieHI99gw+tafU8w0CggBDYVNsJMKUr006AZaM7gNEwCxEg==}
+ engines: {node: 8.* || 10.* || >= 12.*}
+
+ broccoli-sri-hash@2.1.2:
+ resolution: {integrity: sha512-toLD/v7ut2ajcH8JsdCMG2Bpq2qkwTcKM6CMzVMSAJjaz/KpK69fR+gSqe1dsjh+QTdxG0yVvkq3Sij/XMzV6A==}
+
+ broccoli-stew@1.6.0:
+ resolution: {integrity: sha512-sUwCJNnYH4Na690By5xcEMAZqKgquUQnMAEuIiL3Z2k63mSw9Xg+7Ew4wCrFrMmXMcLpWjZDOm6Yqnq268N+ZQ==}
+ engines: {node: ^4.5 || 6.* || >= 7.*}
+
+ broccoli-stew@3.0.0:
+ resolution: {integrity: sha512-NXfi+Vas24n3Ivo21GvENTI55qxKu7OwKRnCLWXld8MiLiQKQlWIq28eoARaFj0lTUFwUa4jKZeA7fW9PiWQeg==}
+ engines: {node: 8.* || >= 10.*}
+
+ broccoli-string-replace@0.1.2:
+ resolution: {integrity: sha512-QHESTrrrPlKuXQNWsvXawSQbV2g34wCZ5oKgd6bntdOuN8VHxbg1BCBHqVY5HxXJhWelimgGxj3vI7ECkyij8g==}
+
+ broccoli-terser-sourcemap@4.1.1:
+ resolution: {integrity: sha512-8sbpRf0/+XeszBJQM7vph2UNj4Kal0lCI/yubcrBIzb2NvYj5gjTHJABXOdxx5mKNmlCMu2hx2kvOtMpQsxrfg==}
+ engines: {node: ^10.12.0 || 12.* || >= 14}
+
+ broccoli@3.5.2:
+ resolution: {integrity: sha512-sWi3b3fTUSVPDsz5KsQ5eCQNVAtLgkIE/HYFkEZXR/07clqmd4E/gFiuwSaqa9b+QTXc1Uemfb7TVWbEIURWDg==}
+ engines: {node: 8.* || >= 10.*}
+
+ brorand@1.1.0:
+ resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==}
+
+ browserify-aes@1.2.0:
+ resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==}
+
+ browserify-cipher@1.0.1:
+ resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==}
+
+ browserify-des@1.0.2:
+ resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==}
+
+ browserify-rsa@4.1.1:
+ resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==}
+ engines: {node: '>= 0.10'}
+
+ browserify-sign@4.2.6:
+ resolution: {integrity: sha512-sd+Q65fjlWCYWtZKXiKfrUc8d+4jtp/8f0W2NkwzLtoW4bI6UDnWusLWIurHnmurW0XShIRxpwiOX4EoPtXUAg==}
+ engines: {node: '>= 0.10'}
+
+ browserify-zlib@0.2.0:
+ resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==}
+
+ browserslist@4.28.2:
+ resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ bser@2.1.1:
+ resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ buffer-xor@1.0.3:
+ resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==}
+
+ buffer@4.9.2:
+ resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==}
+
+ buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+
+ builtin-modules@3.3.0:
+ resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
+ engines: {node: '>=6'}
+
+ builtin-status-codes@3.0.0:
+ resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==}
+
+ builtins@5.1.0:
+ resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==}
+
+ bytes@1.0.0:
+ resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==}
+
+ bytes@3.1.2:
+ resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
+ engines: {node: '>= 0.8'}
+
+ cacache@12.0.4:
+ resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==}
+
+ cache-base@1.0.1:
+ resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
+ engines: {node: '>=0.10.0'}
+
+ cacheable-request@6.1.0:
+ resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==}
+ engines: {node: '>=8'}
+
+ calculate-cache-key-for-tree@2.0.0:
+ resolution: {integrity: sha512-Quw8a6y8CPmRd6eU+mwypktYCwUcf8yVFIRbNZ6tPQEckX9yd+EBVEPC/GSZZrMWH9e7Vz4pT7XhpmyApRByLQ==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.9:
+ resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+
+ call-me-maybe@1.0.2:
+ resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ camel-case@4.1.2:
+ resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
+
+ camelcase-css@2.0.1:
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+ engines: {node: '>= 6'}
+
+ camelcase-keys@7.0.2:
+ resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
+ engines: {node: '>=12'}
+
+ camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ can-symlink@1.0.0:
+ resolution: {integrity: sha512-RbsNrFyhwkx+6psk/0fK/Q9orOUr9VMxohGd8vTa4djf4TGLfblBgUfqZChrZuW0Q+mz2eBPFLusw9Jfukzmhg==}
+ hasBin: true
+
+ caniuse-api@3.0.0:
+ resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
+
+ caniuse-lite@1.0.30001793:
+ resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==}
+
+ capture-exit@2.0.0:
+ resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ cardinal@1.0.0:
+ resolution: {integrity: sha512-INsuF4GyiFLk8C91FPokbKTc/rwHqV4JnfatVZ6GPhguP1qmkRWX2dp5tepYboYdPpGWisLVLI+KsXoXFPRSMg==}
+ hasBin: true
+
+ chalk@1.1.3:
+ resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
+ engines: {node: '>=0.10.0'}
+
+ chalk@2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ chardet@0.7.0:
+ resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+
+ chardet@2.1.1:
+ resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==}
+
+ charm@1.0.2:
+ resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==}
+
+ chart.js@4.5.1:
+ resolution: {integrity: sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==}
+ engines: {pnpm: '>=8'}
+
+ chartjs-adapter-date-fns@3.0.0:
+ resolution: {integrity: sha512-Rs3iEB3Q5pJ973J93OBTpnP7qoGwvq3nUnoMdtxO+9aoJof7UFcRbWcIDteXuYd1fgAvct/32T9qaLyLuZVwCg==}
+ peerDependencies:
+ chart.js: '>=2.8.0'
+ date-fns: '>=2.0.0'
+
+ chokidar@2.1.8:
+ resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==}
+
+ chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+
+ chokidar@5.0.0:
+ resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
+ engines: {node: '>= 20.19.0'}
+
+ chownr@1.1.4:
+ resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
+
+ chrome-trace-event@1.0.4:
+ resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
+ engines: {node: '>=6.0'}
+
+ ci-info@3.9.0:
+ resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+ engines: {node: '>=8'}
+
+ cipher-base@1.0.7:
+ resolution: {integrity: sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==}
+ engines: {node: '>= 0.10'}
+
+ class-utils@0.3.6:
+ resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
+ engines: {node: '>=0.10.0'}
+
+ cldr-core@44.1.0:
+ resolution: {integrity: sha512-ssbJaXu3pCkc4YqNC6xHhgleZG7YqnOFZ9laMlJfHOfnspoA9waI4AH54gKB3Fe/+wI4i3cVxKFdCTVGTRw+UA==}
+
+ clean-base-url@1.0.0:
+ resolution: {integrity: sha512-9q6ZvUAhbKOSRFY7A/irCQ/rF0KIpa3uXpx6izm8+fp7b2H4hLeUJ+F1YYk9+gDQ/X8Q0MEyYs+tG3cht//HTg==}
+
+ clean-css-promise@0.1.1:
+ resolution: {integrity: sha512-tzWkANXMD70ETa/wAu2TXAAxYWS0ZjVUFM2dVik8RQBoAbGMFJv4iVluz3RpcoEbo++fX4RV/BXfgGoOjp8o3Q==}
+
+ clean-css@3.4.28:
+ resolution: {integrity: sha512-aTWyttSdI2mYi07kWqHi24NUU9YlELFKGOAgFzZjDN1064DMAOy2FBuoyGmkKRlXkbpXd0EVHmiVkbKhKoirTw==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+
+ clean-css@5.3.3:
+ resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
+ engines: {node: '>= 10.0'}
+
+ clean-stack@2.2.0:
+ resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
+ engines: {node: '>=6'}
+
+ clean-up-path@1.0.0:
+ resolution: {integrity: sha512-PHGlEF0Z6976qQyN6gM7kKH6EH0RdfZcc8V+QhFe36eRxV0SMH5OUBZG7Bxa9YcreNzyNbK63cGiZxdSZgosRw==}
+
+ cli-cursor@2.1.0:
+ resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==}
+ engines: {node: '>=4'}
+
+ cli-cursor@3.1.0:
+ resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
+ engines: {node: '>=8'}
+
+ cli-spinners@2.9.2:
+ resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
+ engines: {node: '>=6'}
+
+ cli-table3@0.6.5:
+ resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==}
+ engines: {node: 10.* || >= 12.*}
+
+ cli-table@0.3.11:
+ resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
+ engines: {node: '>= 0.2.0'}
+
+ cli-width@2.2.1:
+ resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==}
+
+ cli-width@3.0.0:
+ resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
+ engines: {node: '>= 10'}
+
+ cli-width@4.1.0:
+ resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
+ engines: {node: '>= 12'}
+
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+
+ clone-deep@4.0.1:
+ resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
+ engines: {node: '>=6'}
+
+ clone-response@1.0.3:
+ resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
+
+ clone@1.0.4:
+ resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
+ engines: {node: '>=0.8'}
+
+ clone@2.1.2:
+ resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
+ engines: {node: '>=0.8'}
+
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
+ collection-visit@1.0.0:
+ resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
+ engines: {node: '>=0.10.0'}
+
+ color-convert@0.5.3:
+ resolution: {integrity: sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==}
+
+ color-convert@1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ colord@2.9.3:
+ resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
+
+ colors@1.0.3:
+ resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
+ engines: {node: '>=0.1.90'}
+
+ colors@1.4.0:
+ resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==}
+ engines: {node: '>=0.1.90'}
+
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ commander@2.8.1:
+ resolution: {integrity: sha512-+pJLBFVk+9ZZdlAOB5WuIElVPPth47hILFkmGym57aq8kwxsowvByvB0DHs1vQAhyMZzdcpTtF0VDKGkSDR4ZQ==}
+ engines: {node: '>= 0.6.x'}
+
+ commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
+ commander@7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+
+ commander@8.3.0:
+ resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
+ engines: {node: '>= 12'}
+
+ common-ancestor-path@1.0.1:
+ resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
+
+ common-tags@1.8.2:
+ resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==}
+ engines: {node: '>=4.0.0'}
+
+ commondir@1.0.1:
+ resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
+
+ component-emitter@1.3.1:
+ resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
+
+ compress-json@3.4.0:
+ resolution: {integrity: sha512-SxT8uFOacRbP3gfi4aVAulr4KzE933eZWBguVBwuVWv3GTGQAToqpq8rFtdbIVgeCOH7RpPuXKQrPPd087b8uA==}
+
+ compressible@2.0.18:
+ resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
+ engines: {node: '>= 0.6'}
+
+ compression@1.8.1:
+ resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==}
+ engines: {node: '>= 0.8.0'}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ concat-stream@1.6.2:
+ resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
+ engines: {'0': node >= 0.8}
+
+ concurrently@8.2.2:
+ resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==}
+ engines: {node: ^14.13.0 || >=16.0.0}
+ hasBin: true
+
+ configstore@5.0.1:
+ resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==}
+ engines: {node: '>=8'}
+
+ connect@3.7.0:
+ resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==}
+ engines: {node: '>= 0.10.0'}
+
+ console-browserify@1.2.0:
+ resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==}
+
+ console-ui@3.1.2:
+ resolution: {integrity: sha512-+5j3R4wZJcEYZeXk30whc4ZU/+fWW9JMTNntVuMYpjZJ9n26Cxr0tUBXco1NRjVZRpRVvZ4DDKKKIHNYeUG9Dw==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ consolidate@1.0.4:
+ resolution: {integrity: sha512-RuZ3xnqEDsxiwaoIkqVeeK3gg9qxw7+YKYX2tKhLs1eukVKMgSr4VYI3iYFsRHi4TloHYDlugrz3kvkjs3nynA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.22.5
+ arc-templates: ^0.5.3
+ atpl: '>=0.7.6'
+ bracket-template: ^1.1.5
+ coffee-script: ^1.12.7
+ dot: ^1.1.3
+ dust: ^0.3.0
+ dustjs-helpers: ^1.7.4
+ dustjs-linkedin: ^2.7.5
+ eco: ^1.1.0-rc-3
+ ect: ^0.5.9
+ ejs: ^3.1.5
+ haml-coffee: ^1.14.1
+ hamlet: ^0.3.3
+ hamljs: ^0.6.2
+ handlebars: ^4.7.6
+ hogan.js: ^3.0.2
+ htmling: ^0.0.8
+ jazz: ^0.0.18
+ jqtpl: ~1.1.0
+ just: ^0.1.8
+ liquid-node: ^3.0.1
+ liquor: ^0.0.5
+ lodash: ^4.17.20
+ mote: ^0.2.0
+ mustache: ^4.0.1
+ nunjucks: ^3.2.2
+ plates: ~0.4.11
+ pug: ^3.0.0
+ qejs: ^3.0.5
+ ractive: ^1.3.12
+ react: '>=16.13.1'
+ react-dom: '>=16.13.1'
+ slm: ^2.0.0
+ swig: ^1.4.2
+ swig-templates: ^2.0.3
+ teacup: ^2.0.0
+ templayed: '>=0.2.3'
+ then-pug: '*'
+ tinyliquid: ^0.2.34
+ toffee: ^0.3.6
+ twig: ^1.15.2
+ twing: ^5.0.2
+ underscore: ^1.11.0
+ vash: ^0.13.0
+ velocityjs: ^2.0.1
+ walrus: ^0.10.1
+ whiskers: ^0.4.0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ arc-templates:
+ optional: true
+ atpl:
+ optional: true
+ bracket-template:
+ optional: true
+ coffee-script:
+ optional: true
+ dot:
+ optional: true
+ dust:
+ optional: true
+ dustjs-helpers:
+ optional: true
+ dustjs-linkedin:
+ optional: true
+ eco:
+ optional: true
+ ect:
+ optional: true
+ ejs:
+ optional: true
+ haml-coffee:
+ optional: true
+ hamlet:
+ optional: true
+ hamljs:
+ optional: true
+ handlebars:
+ optional: true
+ hogan.js:
+ optional: true
+ htmling:
+ optional: true
+ jazz:
+ optional: true
+ jqtpl:
+ optional: true
+ just:
+ optional: true
+ liquid-node:
+ optional: true
+ liquor:
+ optional: true
+ lodash:
+ optional: true
+ mote:
+ optional: true
+ mustache:
+ optional: true
+ nunjucks:
+ optional: true
+ plates:
+ optional: true
+ pug:
+ optional: true
+ qejs:
+ optional: true
+ ractive:
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+ slm:
+ optional: true
+ swig:
+ optional: true
+ swig-templates:
+ optional: true
+ teacup:
+ optional: true
+ templayed:
+ optional: true
+ then-pug:
+ optional: true
+ tinyliquid:
+ optional: true
+ toffee:
+ optional: true
+ twig:
+ optional: true
+ twing:
+ optional: true
+ underscore:
+ optional: true
+ vash:
+ optional: true
+ velocityjs:
+ optional: true
+ walrus:
+ optional: true
+ whiskers:
+ optional: true
+
+ constants-browserify@1.0.0:
+ resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==}
+
+ consumable-stream@2.0.0:
+ resolution: {integrity: sha512-I6WA2JVYXs/68rEvi1ie3rZjP6qusTVFEQkbzR+WC+fY56TpwiGTIDJETsrnlxv5CsnmK69ps6CkYvIbpEEqBA==}
+
+ content-disposition@0.5.4:
+ resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
+ engines: {node: '>= 0.6'}
+
+ content-disposition@1.1.0:
+ resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==}
+ engines: {node: '>=18'}
+
+ content-tag@4.2.0:
+ resolution: {integrity: sha512-f/o+F3qSa4gg23I7RWy6cMDxP2nPo99YWusxw2bjne7ZC6Acqqf4uB/+87AekOq1ehTocHH7b7nMd2X4S3NHVw==}
+
+ content-type@1.0.5:
+ resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
+ engines: {node: '>= 0.6'}
+
+ content-type@2.0.0:
+ resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==}
+ engines: {node: '>=18'}
+
+ continuable-cache@0.3.1:
+ resolution: {integrity: sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==}
+
+ convert-source-map@1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+ cookie-signature@1.0.7:
+ resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==}
+
+ cookie-signature@1.2.2:
+ resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==}
+ engines: {node: '>=6.6.0'}
+
+ cookie@0.7.2:
+ resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
+ engines: {node: '>= 0.6'}
+
+ copy-concurrently@1.0.5:
+ resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==}
+ deprecated: This package is no longer supported.
+
+ copy-dereference@1.0.0:
+ resolution: {integrity: sha512-40TSLuhhbiKeszZhK9LfNdazC67Ue4kq/gGwN5sdxEUWPXTIMmKmGmgD9mPfNKVAeecEW+NfEIpBaZoACCQLLw==}
+
+ copy-descriptor@0.1.1:
+ resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
+ engines: {node: '>=0.10.0'}
+
+ core-js-compat@3.49.0:
+ resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==}
+
+ core-js@2.6.12:
+ resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
+ deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
+
+ core-object@3.1.5:
+ resolution: {integrity: sha512-sA2/4+/PZ/KV6CKgjrVrrUVBKCkdDO02CUlQ0YKTQoYUwPYNOtOAcWlbYhd5v/1JqYaA6oZ4sDlOU4ppVw6Wbg==}
+ engines: {node: '>= 4'}
+
+ core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
+ cors@2.8.6:
+ resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==}
+ engines: {node: '>= 0.10'}
+
+ cosmiconfig@8.3.6:
+ resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ create-ecdh@4.0.4:
+ resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==}
+
+ create-hash@1.2.0:
+ resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==}
+
+ create-hmac@1.1.7:
+ resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==}
+
+ crelt@1.0.6:
+ resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
+
+ cross-spawn@6.0.6:
+ resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==}
+ engines: {node: '>=4.8'}
+
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ crypto-browserify@3.12.1:
+ resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==}
+ engines: {node: '>= 0.10'}
+
+ crypto-random-string@2.0.0:
+ resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
+ engines: {node: '>=8'}
+
+ css-blank-pseudo@6.0.2:
+ resolution: {integrity: sha512-J/6m+lsqpKPqWHOifAFtKFeGLOzw3jR92rxQcwRUfA/eTuZzKfKlxOmYDx2+tqOPQAueNvBiY8WhAeHu5qNmTg==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ css-color-converter@2.0.0:
+ resolution: {integrity: sha512-oLIG2soZz3wcC3aAl/7Us5RS8Hvvc6I8G8LniF/qfMmrm7fIKQ8RIDDRZeKyGL2SrWfNqYspuLShbnjBMVWm8g==}
+
+ css-functions-list@3.3.3:
+ resolution: {integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==}
+ engines: {node: '>=12'}
+
+ css-has-pseudo@6.0.5:
+ resolution: {integrity: sha512-ZTv6RlvJJZKp32jPYnAJVhowDCrRrHUTAxsYSuUPBEDJjzws6neMnzkRblxtgmv1RgcV5dhH2gn7E3wA9Wt6lw==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ css-loader@5.2.7:
+ resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ webpack: ^4.27.0 || ^5.0.0
+
+ css-prefers-color-scheme@9.0.1:
+ resolution: {integrity: sha512-iFit06ochwCKPRiWagbTa1OAWCvWWVdEnIFd8BaRrgO8YrrNh4RAWUQTFcYX5tdFZgFl1DJ3iiULchZyEbnF4g==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ css-tree@2.3.1:
+ resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+
+ css-unit-converter@1.1.2:
+ resolution: {integrity: sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==}
+
+ cssdb@8.9.0:
+ resolution: {integrity: sha512-J8jOU/hLjaXcO1LldOLraJSQpfLXRKof0I7mtbRyOy2AAXgqst0x9rlgi2qXeD6d0ou3ZLqcPAMqYVbpCbrxEw==}
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
+
+ cyclist@1.0.2:
+ resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==}
+
+ dag-map@2.0.2:
+ resolution: {integrity: sha512-xnsprIzYuDeiyu5zSKwilV/ajRHxnoMlAhEREfyfTgTSViMVY2fGP1ZcHJbtwup26oCkofySU/m6oKJ3HrkW7w==}
+
+ data-view-buffer@1.0.2:
+ resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-length@1.0.2:
+ resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-offset@1.0.1:
+ resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
+ engines: {node: '>= 0.4'}
+
+ date-fns@2.30.0:
+ resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
+ engines: {node: '>=0.11'}
+
+ debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decamelize-keys@1.1.1:
+ resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
+ engines: {node: '>=0.10.0'}
+
+ decamelize@1.2.0:
+ resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+ engines: {node: '>=0.10.0'}
+
+ decamelize@5.0.1:
+ resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
+ engines: {node: '>=10'}
+
+ decimal.js@10.6.0:
+ resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
+
+ decode-uri-component@0.2.2:
+ resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+ engines: {node: '>=0.10'}
+
+ decompress-response@3.3.0:
+ resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==}
+ engines: {node: '>=4'}
+
+ decorator-transforms@1.2.1:
+ resolution: {integrity: sha512-UUtmyfdlHvYoX3VSG1w5rbvBQ2r5TX1JsE4hmKU9snleFymadA3VACjl6SRfi9YgBCSjBbfQvR1bs9PRW9yBKw==}
+
+ decorator-transforms@2.3.2:
+ resolution: {integrity: sha512-XcErcjlmCzG5ODgYjt6ZTXwd6S8fPKln/sJmw15ZXkWG2JpoQNwszis+AwF6XSGlOoG7g8MCEO97g+Yw3fk5OQ==}
+
+ deep-extend@0.6.0:
+ resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
+ engines: {node: '>=4.0.0'}
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
+ defaults@1.0.4:
+ resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+
+ defer-to-connect@1.1.3:
+ resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ define-property@0.2.5:
+ resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
+ engines: {node: '>=0.10.0'}
+
+ define-property@1.0.0:
+ resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
+ engines: {node: '>=0.10.0'}
+
+ define-property@2.0.2:
+ resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
+ engines: {node: '>=0.10.0'}
+
+ depd@1.1.2:
+ resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
+ engines: {node: '>= 0.6'}
+
+ depd@2.0.0:
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
+ engines: {node: '>= 0.8'}
+
+ des.js@1.1.0:
+ resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==}
+
+ destroy@1.2.0:
+ resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
+ detect-file@1.0.0:
+ resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==}
+ engines: {node: '>=0.10.0'}
+
+ detect-indent@4.0.0:
+ resolution: {integrity: sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==}
+ engines: {node: '>=0.10.0'}
+
+ detect-indent@6.1.0:
+ resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
+ engines: {node: '>=8'}
+
+ detect-newline@3.1.0:
+ resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
+ engines: {node: '>=8'}
+
+ devalue@5.8.1:
+ resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==}
+
+ didyoumean@1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+
+ diff@5.2.2:
+ resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==}
+ engines: {node: '>=0.3.1'}
+
+ diffie-hellman@5.0.3:
+ resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==}
+
+ dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+
+ dlv@1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
+ doctrine@3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+
+ dom-element-descriptors@0.5.1:
+ resolution: {integrity: sha512-DLayMRQ+yJaziF4JJX1FMjwjdr7wdTr1y9XvZ+NfHELfOMcYDnCHneAYXAS4FT1gLILh4V0juMZohhH1N5FsoQ==}
+
+ domain-browser@1.2.0:
+ resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==}
+ engines: {node: '>=0.4', npm: '>=1.2'}
+
+ dot-case@3.0.4:
+ resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
+
+ dot-prop@5.3.0:
+ resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
+ engines: {node: '>=8'}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ duplexer3@0.1.5:
+ resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==}
+
+ duplexify@3.7.1:
+ resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==}
+
+ eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
+ editions@1.3.4:
+ resolution: {integrity: sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==}
+ engines: {node: '>=0.8'}
+
+ editions@2.3.1:
+ resolution: {integrity: sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==}
+ engines: {node: '>=0.8'}
+
+ ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+
+ electron-to-chromium@1.5.366:
+ resolution: {integrity: sha512-OlRuhb688YTCzzU3gXPLn6nGyd+F+53INE1qaKKlu6kETErE8FYsyDh0XqXEU+uBRn0MpCzz2vfNwORhkap8qg==}
+
+ element-closest@3.0.2:
+ resolution: {integrity: sha512-JxKQiJKX0Zr5Q2/bCaTx8P+UbfyMET1OQd61qu5xQFeWr1km3fGaxelSJtnfT27XQ5Uoztn2yIyeamAc/VX13g==}
+ engines: {node: '>=0.12.0'}
+
+ elliptic@6.6.1:
+ resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==}
+
+ ember-animated@1.1.4:
+ resolution: {integrity: sha512-30omG5vB8naagE7cFW7AfTH4i2r+JyvEPpN/pRoz6Z/I5pYcjhSTrONZs5BAdX8B+B0/hEfZqO7ge/Ui8riBHA==}
+ peerDependencies:
+ '@ember/test-helpers': ^2.6.0 || ^3.0.0
+ peerDependenciesMeta:
+ '@ember/test-helpers':
+ optional: true
+
+ ember-asset-loader@1.0.0:
+ resolution: {integrity: sha512-JXr9bEkkzXiamW2kMk36U2VugLzo4MeoTQGRxvpNFqU1oldUMzm/yFPVvtjsVOjishH4pVwQuOK9Sjrx9E2xZg==}
+ engines: {node: 14.* || 16.* || >= 17}
+
+ ember-assign-helper@0.4.0:
+ resolution: {integrity: sha512-GKHhT4HD2fhtDnuBk6eCdCA8XGew9hY7TVs8zjrykegiI7weC0CGtpJscmIG3O0gEEb0d07UTkF2pjfNGLx4Nw==}
+ engines: {node: '>= 12'}
+
+ ember-assign-helper@0.5.1:
+ resolution: {integrity: sha512-dXHbwlBTJWVjG7k4dhVrT3Gh4nQt6rC2LjyltuPztIhQ+YcPYHMqAPJRJYLGZu16aPSJbaGF8K+u51i7CLzqlQ==}
+
+ ember-ast-helpers@0.4.0:
+ resolution: {integrity: sha512-3gBsatspW3AT2hwzD27aQbgyWA29RXeMxCnMYgFBYtmS/T1M6TxuatEgfpofKqai4OC/JijftmN4s6dydeXGzQ==}
+ engines: {node: '>= 6'}
+
+ ember-auto-import@1.12.2:
+ resolution: {integrity: sha512-gLqML2k77AuUiXxWNon1FSzuG1DV7PEPpCLCU5aJvf6fdL6rmFfElsZRh+8ELEB/qP9dT+LHjNEunVzd2dYc8A==}
+ engines: {node: '>= 10.*'}
+
+ ember-auto-import@2.13.1:
+ resolution: {integrity: sha512-MjxJK2nfCJmmQI/rju2TrycmAa1AxmTarfvygbcrrgW0s4WeZHtbGXCO2z1lW9wfrShqeTo/o+3Mgk+9xcDTWg==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ ember-basic-dropdown@8.4.0:
+ resolution: {integrity: sha512-vaK0ypA6J8hduvIrctquMpIoAsgp1Uz/W2RGQJ1KsvvgAttowuDBBuGFEmubzhnnKJM2LGBX7+miRXnn36kBTA==}
+ peerDependencies:
+ '@ember/test-helpers': ^2.9.4 || ^3.2.1 || ^4.0.2
+ '@glimmer/component': ^1.1.2 || ^2.0.0
+ '@glimmer/tracking': ^1.1.2
+ ember-source: ^3.28.0 || ^4.0.0 || >=5.0.0
+
+ ember-cache-primitive-polyfill@1.0.1:
+ resolution: {integrity: sha512-hSPcvIKarA8wad2/b6jDd/eU+OtKmi6uP+iYQbzi5TQpjsqV6b4QdRqrLk7ClSRRKBAtdTuutx+m+X+WlEd2lw==}
+ engines: {node: 10.* || >= 12}
+
+ ember-cached-decorator-polyfill@1.0.2:
+ resolution: {integrity: sha512-hUX6OYTKltAPAu8vsVZK02BfMTV0OUXrPqvRahYPhgS7D0I6joLjlskd7mhqJMcaXLywqceIy8/s+x8bxF8bpQ==}
+ engines: {node: 14.* || >= 16}
+ peerDependencies:
+ ember-source: ^3.13.0 || ^4.0.0 || >= 5.0.0
+
+ ember-can@6.0.0:
+ resolution: {integrity: sha512-/8TnWxU9Yu0HXCk04qCHK3nnjrNMe3j6wrJJjW9ffLsnBBHKTT8yNP1f54EsHaHoNtWd73JGSSTmtcpBHhWAyw==}
+ peerDependencies:
+ '@ember/string': ^3.1.1 || ^4.0.0
+ ember-inflector: ^4.0.2 || ^5.0.1
+ ember-resolver: '>= 8.0.0'
+ ember-source: ^3.28.0 || ^4.0.0 || >=5.0.0
+
+ ember-cli-babel-plugin-helpers@1.1.1:
+ resolution: {integrity: sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ ember-cli-babel@7.26.11:
+ resolution: {integrity: sha512-JJYeYjiz/JTn34q7F5DSOjkkZqy8qwFOOxXfE6pe9yEJqWGu4qErKxlz8I22JoVEQ/aBUO+OcKTpmctvykM9YA==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ ember-cli-babel@8.3.1:
+ resolution: {integrity: sha512-Pxm5JP0jQ6fCBlXuh1BFmhrg2/5YXjhf16JI/n8ReOR6Nl+fEbudMpdO69LlqZRsMmTgdjCRmfSxMh26Wsw/rw==}
+ engines: {node: 16.* || 18.* || >= 20}
+ peerDependencies:
+ '@babel/core': ^7.12.0
+
+ ember-cli-clean-css@3.0.0:
+ resolution: {integrity: sha512-BbveJCyRvzzkaTH1llLW+MpHe/yzA5zpHOpMIg2vp/3JD9mban9zUm7lphaB0TSpPuMuby9rAhTI8pgXq0ifIA==}
+ engines: {node: 16.* || >= 18}
+
+ ember-cli-dependency-checker@3.3.3:
+ resolution: {integrity: sha512-mvp+HrE0M5Zhc2oW8cqs8wdhtqq0CfQXAYzaIstOzHJJn/U01NZEGu3hz7J7zl/+jxZkyygylzcS57QqmPXMuQ==}
+ engines: {node: '>= 6'}
+ peerDependencies:
+ ember-cli: ^3.2.0 || >=4.0.0
+
+ ember-cli-element-closest-polyfill@0.0.2:
+ resolution: {integrity: sha512-e9w1KCRUKorxZUyi50MhkHvf+7YihSk1zmu0eWeeTvtMfrKmrf9n8NQG57dxxgWBz+en1qAnEmsxIJcJs6bFRQ==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ ember-cli-get-component-path-option@1.0.0:
+ resolution: {integrity: sha512-k47TDwcJ2zPideBCZE8sCiShSxQSpebY2BHcX2DdipMmBox5gsfyVrbKJWIHeSTTKyEUgmBIvQkqTOozEziCZA==}
+
+ ember-cli-htmlbars@4.5.0:
+ resolution: {integrity: sha512-bYJpK1pqFu9AadDAGTw05g2LMNzY8xTCIqQm7dMJmKEoUpLRFbPf4SfHXrktzDh7Q5iggl6Skzf1M0bPlIxARw==}
+ engines: {node: 8.* || 10.* || >= 12.*}
+
+ ember-cli-htmlbars@5.7.2:
+ resolution: {integrity: sha512-Uj6R+3TtBV5RZoJY14oZn/sNPnc+UgmC8nb5rI4P3fR/gYoyTFIZSXiIM7zl++IpMoIrocxOrgt+mhonKphgGg==}
+ engines: {node: 10.* || >= 12.*}
+
+ ember-cli-htmlbars@6.3.0:
+ resolution: {integrity: sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ ember-cli-inject-live-reload@2.1.0:
+ resolution: {integrity: sha512-YV5wYRD5PJHmxaxaJt18u6LE6Y+wo455BnmcpN+hGNlChy2piM9/GMvYgTAz/8Vin8RJ5KekqP/w/NEaRndc/A==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ ember-cli-is-package-missing@1.0.0:
+ resolution: {integrity: sha512-9hEoZj6Au5onlSDdcoBqYEPT8ehlYntZPxH8pBKV0GO7LNel88otSAQsCfXvbi2eKE+MaSeLG/gNaCI5UdWm9g==}
+
+ ember-cli-lodash-subset@2.0.1:
+ resolution: {integrity: sha512-QkLGcYv1WRK35g4MWu/uIeJ5Suk2eJXKtZ+8s+qE7C9INmpCPyPxzaqZABquYzcWNzIdw6kYwz3NWAFdKYFxwg==}
+ engines: {node: ^4.5 || 6.* || >= 7.*}
+
+ ember-cli-normalize-entity-name@1.0.0:
+ resolution: {integrity: sha512-rF4P1rW2P1gVX1ynZYPmuIf7TnAFDiJmIUFI1Xz16VYykUAyiOCme0Y22LeZq8rTzwBMiwBwoE3RO4GYWehXZA==}
+
+ ember-cli-notifications@9.1.0:
+ resolution: {integrity: sha512-Vr3/3y6dIbfFZB7OJuKrQCwMzL48Ym1tnJUGiElvg3G75gr/FUZ88O8gTo5HqCSASmqp2HFw4bQpvtmq2GHqjg==}
+ peerDependencies:
+ ember-source: '>= 3.8.0'
+
+ ember-cli-path-utils@1.0.0:
+ resolution: {integrity: sha512-Qq0vvquzf4cFHoDZavzkOy3Izc893r/5spspWgyzLCPTaG78fM3HsrjZm7UWEltbXUqwHHYrqZd/R0jS08NqSA==}
+
+ ember-cli-postcss@8.2.0:
+ resolution: {integrity: sha512-S2HQqmNtcezmLSt/OPZKCXg+aRV7yFoZp+tn1HCLSbR/eU95xl7MWxTjbj/wOIGMfhggy/hBT2+STDh8mGuVpw==}
+ engines: {node: '>= 14'}
+
+ ember-cli-preprocess-registry@3.3.0:
+ resolution: {integrity: sha512-60GYpw7VPeB7TvzTLZTuLTlHdOXvayxjAQ+IxM2T04Xkfyu75O2ItbWlftQW7NZVGkaCsXSRAmn22PG03VpLMA==}
+
+ ember-cli-preprocess-registry@5.0.1:
+ resolution: {integrity: sha512-Jb2zbE5Kfe56Nf4IpdaQ10zZ72p/RyLdgE5j5/lKG3I94QHlq+7AkAd18nPpb5OUeRUT13yQTAYpU+MbjpKTtg==}
+ engines: {node: 16.* || >= 18}
+
+ ember-cli-sri@2.1.1:
+ resolution: {integrity: sha512-YG/lojDxkur9Bnskt7xB6gUOtJ6aPl/+JyGYm9HNDk3GECVHB3SMN3rlGhDKHa1ndS5NK2W2TSLb9bzRbGlMdg==}
+ engines: {node: '>= 0.10.0'}
+
+ ember-cli-string-helpers@6.1.0:
+ resolution: {integrity: sha512-Lw8B6MJx2n8CNF2TSIKs+hWLw0FqSYjr2/NRPyquyYA05qsl137WJSYW3ZqTsLgoinHat0DGF2qaCXocLhLmyA==}
+ engines: {node: 10.* || >=12.*}
+
+ ember-cli-string-utils@1.1.0:
+ resolution: {integrity: sha512-PlJt4fUDyBrC/0X+4cOpaGCiMawaaB//qD85AXmDRikxhxVzfVdpuoec02HSiTGTTB85qCIzWBIh8lDOiMyyFg==}
+
+ ember-cli-terser@4.0.2:
+ resolution: {integrity: sha512-Ej77K+YhCZImotoi/CU2cfsoZaswoPlGaM5TB3LvjvPDlVPRhxUHO2RsaUVC5lsGeRLRiHCOxVtoJ6GyqexzFA==}
+ engines: {node: 10.* || 12.* || >= 14}
+
+ ember-cli-test-info@1.0.0:
+ resolution: {integrity: sha512-dEVTIpmUfCzweC97NGf6p7L6XKBwV2GmSM4elmzKvkttEp5P7AvGA9uGyN4GqFq+RwhW+2b0I2qlX00w+skm+A==}
+
+ ember-cli-test-loader@3.1.0:
+ resolution: {integrity: sha512-0aocZV9SIoOHiU3hrH3IuLR6busWhTX6UVXgd490hmJkIymmOXNH2+jJoC7Ebkeo3PiOfAdjqhb765QDlHSJOw==}
+ engines: {node: 10.* || >= 12}
+
+ ember-cli-typescript-blueprint-polyfill@0.1.0:
+ resolution: {integrity: sha512-g0weUTOnHmPGqVZzkQTl3Nbk9fzEdFkEXydCs5mT1qBjXh8eQ6VlmjjGD5/998UXKuA0pLSCVVMbSp/linLzGA==}
+
+ ember-cli-typescript@2.0.2:
+ resolution: {integrity: sha512-7I5azCTxOgRDN8aSSnJZIKSqr+MGnT+jLTUbBYqF8wu6ojs2DUnTePxUcQMcvNh3Q3B1ySv7Q/uZFSjdU9gSjA==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ ember-cli-typescript@3.0.0:
+ resolution: {integrity: sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA==}
+ engines: {node: 8.* || >= 10.*}
+
+ ember-cli-typescript@3.1.4:
+ resolution: {integrity: sha512-HJ73kL45OGRmIkPhBNFt31I1SGUvdZND+LCH21+qpq3pPlFpJG8GORyXpP+2ze8PbnITNLzwe5AwUrpyuRswdQ==}
+ engines: {node: 8.* || >= 10.*}
+
+ ember-cli-typescript@4.2.1:
+ resolution: {integrity: sha512-0iKTZ+/wH6UB/VTWKvGuXlmwiE8HSIGcxHamwNhEC5x1mN3z8RfvsFZdQWYUzIWFN2Tek0gmepGRPTwWdBYl/A==}
+ engines: {node: 10.* || >= 12.*}
+
+ ember-cli-typescript@5.3.0:
+ resolution: {integrity: sha512-gFA+ZwmsvvFwo2Jz/B9GMduEn+fPoGb69qWGP0Tp3+Tu5xypDtIKVSZ5086I3Cr19cLXD4HkrOR3YQvdUKzAkQ==}
+ engines: {node: '>= 12.*'}
+
+ ember-cli-version-checker@2.2.0:
+ resolution: {integrity: sha512-G+KtYIVlSOWGcNaTFHk76xR4GdzDLzAS4uxZUKdASuFX0KJE43C6DaqL+y3VTpUFLI2FIkAS6HZ4I1YBi+S3hg==}
+ engines: {node: '>= 4'}
+
+ ember-cli-version-checker@3.1.3:
+ resolution: {integrity: sha512-PZNSvpzwWgv68hcXxyjREpj3WWb81A7rtYNQq1lLEgrWIchF8ApKJjWP3NBpHjaatwILkZAV8klair5WFlXAKg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ ember-cli-version-checker@4.1.1:
+ resolution: {integrity: sha512-bzEWsTMXUGEJfxcAGWPe6kI7oHEGD3jaxUWDYPTqzqGhNkgPwXTBgoWs9zG1RaSMaOPFnloWuxRcoHi4TrYS3Q==}
+ engines: {node: 8.* || 10.* || >= 12.*}
+
+ ember-cli-version-checker@5.1.2:
+ resolution: {integrity: sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q==}
+ engines: {node: 10.* || >= 12.*}
+
+ ember-cli@5.4.2:
+ resolution: {integrity: sha512-EeeiTHo+rtat+YRv01q64Wmo+MRZETcZ7bPKBU14h9gSqSU0bHj57KGKsaQ+av8sOUojwWSqp+GQfOtwuWDgYA==}
+ engines: {node: '>= 18'}
+ hasBin: true
+
+ ember-compatibility-helpers@1.2.7:
+ resolution: {integrity: sha512-BtkjulweiXo9c3yVWrtexw2dTmBrvavD/xixNC6TKOBdrixUwU+6nuOO9dufDWsMxoid7MvtmDpzc9+mE8PdaA==}
+ engines: {node: 10.* || >= 12.*}
+
+ ember-composability-tools@1.3.0:
+ resolution: {integrity: sha512-KRIybkRlPWrymQFfW2UiDrbI6GDpXiqJLK+fxKZyaqf2Pb/vJmHShm55Bch90U2tcbG20UB4Tf+w+IpZA8Gi3w==}
+ engines: {node: 16.* || >= 18}
+ peerDependencies:
+ ember-source: ^3.8 || ^4.0.0 || >= 5.0.0
+
+ ember-composable-helpers@5.0.0:
+ resolution: {integrity: sha512-gyUrjiSju4QwNrsCLbBpP0FL6VDFZaELNW7Kbcp60xXhjvNjncYgzm4zzYXhT+i1lLA6WEgRZ3lOGgyBORYD0w==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ ember-concurrency-async@1.0.0:
+ resolution: {integrity: sha512-otE1UcF+VYva8qdkYayHVBrGDG+Lt9oYLLMt3heEo98Mv9abdjrdaLzvSMMspzI3ncgKtmZsEwn+aubvq+Zhhw==}
+ engines: {node: ^10.17 || >= 12}
+ peerDependencies:
+ ember-concurrency: ^2.0.0-rc.1
+
+ ember-concurrency-decorators@2.0.3:
+ resolution: {integrity: sha512-r6O34YKI/slyYapVsuOPnmaKC4AsmBSwvgcadbdy+jHNj+mnryXPkm+3hhhRnFdlsKUKdEuXvl43lhjhYRLhhA==}
+ engines: {node: 10.* || >= 12}
+
+ ember-concurrency-ts@0.3.1:
+ resolution: {integrity: sha512-lE9uqPgK1Y9PN/0BJ5zE2a+h95izRCn6FCyt7qVV3012TlblTynsBaoUuAbN1T3KfzFsrJaXwsxzRbDjEde2Sw==}
+ engines: {node: 10.* || >= 12}
+ peerDependencies:
+ ember-concurrency: ^1.2.1 || ^2.0.0-rc.1
+
+ ember-concurrency@2.3.7:
+ resolution: {integrity: sha512-sz6sTIXN/CuLb5wdpauFa+rWXuvXXSnSHS4kuNzU5GSMDX1pLBWSuovoUk61FUe6CYRqBmT1/UushObwBGickQ==}
+ engines: {node: 10.* || 12.* || 14.* || >= 16}
+
+ ember-concurrency@3.1.1:
+ resolution: {integrity: sha512-doXFYYfy1C7jez+jDDlfahTp03QdjXeSY/W3Zbnx/q3UNJ9g10Shf2d7M/HvWo/TC22eU+6dPLIpqd/6q4pR+Q==}
+ engines: {node: 16.* || >= 18}
+ peerDependencies:
+ ember-source: ^3.28.0 || ^4.0.0 || >=5.0.0
+
+ ember-concurrency@4.0.6:
+ resolution: {integrity: sha512-Ikwl2YwXVe8aBwrT1deWTcUVxVu6KxS1qeU1ks3EML1Q/nxwKgxCkGqTJavxczawO8H/SIW45dV4r7z5Yqd2Xg==}
+ engines: {node: 16.* || >= 18}
+ peerDependencies:
+ '@glint/template': '>= 1.0.0'
+ peerDependenciesMeta:
+ '@glint/template':
+ optional: true
+
+ ember-cookies@1.3.0:
+ resolution: {integrity: sha512-nhVDm9lql4EVLpbjxyosyEITFvuNAmHr7cod8K2FmIyw2KcAFWSS0v88quIWc+GvcawBTz3KSMRXOJq/0InVpg==}
+ engines: {node: '>= 16.*'}
+ peerDependencies:
+ ember-source: '>=4.0'
+
+ ember-copy@2.0.1:
+ resolution: {integrity: sha512-N/XFvZszrzyyX4IcNoeK4mJvIItNuONumhPLqi64T8NDjJkxBj4Pq61rvMkJx/9eZ8alzE4I8vYKOLxT0FvRuQ==}
+ engines: {node: 10.* || >= 12}
+
+ ember-data@4.12.8:
+ resolution: {integrity: sha512-fK9mp+chqXGWYx6lal/azBKP4AtW8E6u3xUUWet6henO2zPN4S5lRs6iBfaynPkmhW5DK5bvaxNmFvSzmPOghw==}
+ engines: {node: 16.* || >= 18.*}
+ peerDependencies:
+ '@ember/string': ^3.0.1
+
+ ember-decorators@6.1.1:
+ resolution: {integrity: sha512-63vZPntPn1aqMyeNRLoYjJD+8A8obd+c2iZkJflswpDRNVIsp2m7aQdSCtPt4G0U/TEq2251g+N10maHX3rnJQ==}
+ engines: {node: '>= 8.*'}
+
+ ember-destroyable-polyfill@2.0.3:
+ resolution: {integrity: sha512-TovtNqCumzyAiW0/OisSkkVK93xnVF4NRU6+FN0ubpfwEOpRrmM2RqDwXI6YAChCgSHON1cz0DfQStpA1Gjuuw==}
+ engines: {node: 10.* || >= 12}
+
+ ember-drag-sort@4.2.0:
+ resolution: {integrity: sha512-MB+4P6/O77YVpUPdKV3PKCyB3SFAy5nzFhatEPUILBbONv+YNIw9QKJgrqK3ytwNfJi8zBUPXGk3KMZvyzcfAQ==}
+ engines: {node: '>= 20'}
+ peerDependencies:
+ ember-source: '>= 4.0.0'
+
+ ember-element-helper@0.6.1:
+ resolution: {integrity: sha512-YiOdAMlzYul4ulkIoNp8z7iHDfbT1fbut/9xGFRfxDwU/FmF8HtAUB2f1veu/w50HTeZNopa1OV2PCloZ76XlQ==}
+ engines: {node: 12.* || 14.* || >= 16}
+ peerDependencies:
+ ember-source: ^3.8 || 4
+
+ ember-element-helper@0.8.8:
+ resolution: {integrity: sha512-3slTltQV5ke53t3YVP2GYoswsQ6y+lhuVzKmt09tbEx91DapG8I/xa8W5OA0StvcQlavL3/vHrz/vCQEFs8bBA==}
+ engines: {node: 14.* || 16.* || >= 18}
+
+ ember-engines@0.9.0:
+ resolution: {integrity: sha512-LVb1GrLGU2DXLXL2ynYXPHg0JJ6P3LRciOdDfjP0aRPLZ1evOr0h7IPIDq4SsT2nG0yhX5qBMJNB4NCyFZvcyA==}
+ engines: {node: 14.* || 16.* || >= 18}
+ peerDependencies:
+ '@ember/legacy-built-in-components': '*'
+ ember-source: ^3.24.1 || 4
+ peerDependenciesMeta:
+ '@ember/legacy-built-in-components':
+ optional: true
+
+ ember-file-upload@8.4.0:
+ resolution: {integrity: sha512-iiE3iE/7hncBiU5cvjitpc0whfeAMvdyW2ReiDCzKe9ByVZlgG7Hnp89EPE6c8aSvTLXCQ3X6SsF1U4LTgh75g==}
+ engines: {node: 16.* || >= 18}
+ peerDependencies:
+ '@ember/test-helpers': ^2.9.3 || ^3.0.3
+ '@glimmer/component': ^1.1.2
+ '@glimmer/tracking': ^1.1.2
+ ember-cli-mirage: '*'
+ ember-modifier: ^3.2.7 || ^4.1.0
+ miragejs: '*'
+ tracked-built-ins: ^3.1.1
+ peerDependenciesMeta:
+ ember-cli-mirage:
+ optional: true
+ miragejs:
+ optional: true
+
+ ember-focus-trap@1.2.0:
+ resolution: {integrity: sha512-+/AkXjWF9Qtv6a3tSZQvzFTF+vSoSNuWVemN8kbp4d3MmHWnbXzv5brd9wmAFFlp4yYRr2be7bVhNVxzJMLEhw==}
+
+ ember-functions-as-helper-polyfill@2.1.3:
+ resolution: {integrity: sha512-Hte8jfOmSNzrz/vOchf68CGaBWXN2/5qKgFaylqr9omW2i4Wt9JmaBWRkeR0AJ53N57q3DX2TOb166Taq6QjiA==}
+ engines: {node: '>= 14.0.0'}
+ peerDependencies:
+ ember-source: ^3.25.0 || >=4.0.0
+
+ ember-get-config@2.1.1:
+ resolution: {integrity: sha512-uNmv1cPG/4qsac8oIf5txJ2FZ8p88LEpG4P3dNcjsJS98Y8hd0GPMFwVqpnzI78Lz7VYRGQWY4jnE4qm5R3j4g==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ ember-gridstack@4.0.0:
+ resolution: {integrity: sha512-qcl3E+k7wWO7D/zqTzU4jtu6ruVYFT/SbBoqaOBZR017aBDOo3zcavU80z6w8zNYqUG6gVWSXFKNTtbE/D2wlg==}
+ engines: {node: 14.* || 16.* || >= 18}
+ peerDependencies:
+ ember-source: ^4.0.0
+
+ ember-in-element-polyfill@1.0.1:
+ resolution: {integrity: sha512-eHs+7D7PuQr8a1DPqsJTsEyo3FZ1XuH6WEZaEBPDa9s0xLlwByCNKl8hi1EbXOgvgEZNHHi9Rh0vjxyfakrlgg==}
+ engines: {node: 10.* || >= 12}
+
+ ember-inflector@4.0.3:
+ resolution: {integrity: sha512-E+NnmzybMRWn1JyEfDxY7arjOTJLIcGjcXnUxizgjD4TlvO1s3O65blZt+Xq2C2AFSPeqHLC6PXd6XHYM8BxdQ==}
+ engines: {node: 14.* || 16.* || >= 18}
+ peerDependencies:
+ ember-source: ^3.16.0 || ^4.0.0 || ^5.0.0
+
+ ember-intl@6.3.2:
+ resolution: {integrity: sha512-UJ91JjlY3z6fjajoHhhJtKUbgqEr/l6Ie4Viqn0B3Lrbavxg5IgAIvyZZ9fOVtq05MDtCuc610zV6vLOc71G0w==}
+ engines: {node: 16.* || >= 18}
+ peerDependencies:
+ typescript: ^4.8.0 || ^5.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ ember-leaflet@5.1.3:
+ resolution: {integrity: sha512-7rzZePUCjapMzkE1SXsgSDQ28nG1w/WIMt80wf72UG4LIMHOGHibenk3naFllu1Np9wApCHxLB6x4ig8clt2Aw==}
+ engines: {node: 14.* || 16.* || >= 18}
+ peerDependencies:
+ ember-source: ^4.0.0 || ^5.0.0
+ leaflet: '>=0.7'
+
+ ember-lifeline@7.0.0:
+ resolution: {integrity: sha512-2l51NzgH5vjN972zgbs+32rnXnnEFKB7qsSpJF+lBI4V5TG6DMy4SfowC72ZEuAtS58OVfwITbOO+RnM21EdpA==}
+ engines: {node: 16.* || >= 18}
+ peerDependencies:
+ '@ember/test-helpers': '>= 1.0.0'
+ peerDependenciesMeta:
+ '@ember/test-helpers':
+ optional: true
+
+ ember-load-initializers@2.1.2:
+ resolution: {integrity: sha512-CYR+U/wRxLbrfYN3dh+0Tb6mFaxJKfdyz+wNql6cqTrA0BBi9k6J3AaKXj273TqvEpyyXegQFFkZEiuZdYtgJw==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ ember-loading@2.0.0:
+ resolution: {integrity: sha512-aGFZszIwmrIZ5XINv9TXQGWrfpKIiPwYiakEmRXx0Jvr5ZnUyKtCO84+FaKMyezrbDWsq0UjYqmdiqSAXhIkIA==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ ember-local-storage@2.0.7:
+ resolution: {integrity: sha512-EPvxH/27mIzrX/EEgng+FG6HD0ri/God9OH/9mhmgPSXrgMNq/614Z3NMnooM4QKIEBAvr0p+p1UL2DgrTTMNg==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ ember-math-helpers@4.2.1:
+ resolution: {integrity: sha512-/pOFz6tQ67mh0faiD7nzOCYRXHElg2d/SvQnYB8vdYoj7BLCkNHLjdo3F0oa5Qz/6J/+k3ie5ZGBjMumvlOeIw==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ ember-source: '>= 4.0.0'
+
+ ember-modifier-manager-polyfill@1.2.0:
+ resolution: {integrity: sha512-bnaKF1LLKMkBNeDoetvIJ4vhwRPKIIumWr6dbVuW6W6p4QV8ZiO+GdF8J7mxDNlog9CeL9Z/7wam4YS86G8BYA==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ ember-modifier@3.2.7:
+ resolution: {integrity: sha512-ezcPQhH8jUfcJQbbHji4/ZG/h0yyj1jRDknfYue/ypQS8fM8LrGcCMo0rjDZLzL1Vd11InjNs3BD7BdxFlzGoA==}
+ engines: {node: 12.* || >= 14}
+
+ ember-modifier@4.3.0:
+ resolution: {integrity: sha512-O0rirSLQbGg0VJ/NqoQ4uN1bh2iAekZC/Ykma+FkjCM2ofrO38u+d8n3+AK6uVWeMJmogGX2KL+Is5fofoInJg==}
+
+ ember-on-helper@0.1.0:
+ resolution: {integrity: sha512-jjafBnWfoA4VSSje476ft5G+urlvvuSDddwAJjKDCjKY9mbe3hAEsJiMBAaPObJRMm1FOglCuKjQZfwDDls6MQ==}
+ engines: {node: 8.* || >= 10.*}
+
+ ember-page-title@8.2.4:
+ resolution: {integrity: sha512-ZZ912IRItIEfD5+35w65DT9TmqppK+suXJeaJenD5OSuvujUnYl6KxBpyAbfjw4mYtURwJO/TmSe+4GGJbsJ0w==}
+ engines: {node: 16.* || >= 18}
+ peerDependencies:
+ ember-source: '>= 3.28.0'
+
+ ember-power-calendar@0.18.0:
+ resolution: {integrity: sha512-bkW5eL8MxS3rmn6XnR7B4QivJZ+Y4SF2kHSZPlUwaVjsw4FqZ7a3I1N1dbC3khcgcFvh1M8aa4/Ek/BwP+sorQ==}
+ engines: {node: 10.* || >= 12}
+
+ ember-power-select@8.6.2:
+ resolution: {integrity: sha512-EUDMxcO+I0iK6QBM4rOuqn7OMZOxrznslulgI51OStAfbT+Qf5MAvSeOMOEdPbDI7n/racXKr55kCn3HviQSgQ==}
+ peerDependencies:
+ '@ember/test-helpers': ^2.9.4 || ^3.2.1 || ^4.0.2
+ '@glimmer/component': ^1.1.2 || ^2.0.0
+ '@glimmer/tracking': ^1.1.2
+ ember-basic-dropdown: ^8.2.0
+ ember-concurrency: ^4.0.2
+ ember-source: ^3.28.0 || ^4.0.0 || >=5.0.0
+
+ ember-qunit@8.1.1:
+ resolution: {integrity: sha512-nT+6s74j3BKNn+QQY/hINC3Xw3kn0NF0cU9zlgVQmCBWoyis1J24xWrY2LFOMThPmF6lHqcrUb5JwvBD4BXEXg==}
+ peerDependencies:
+ '@ember/test-helpers': '>=3.0.3'
+ ember-source: '>=4.0.0'
+ qunit: ^2.13.0
+
+ ember-radio-button@3.0.0-beta.1:
+ resolution: {integrity: sha512-KcSCXQHNosYRFB2t5GDpXQaHzu3A/UwoKgxVQ2XwV9n4xico7HqWReyt7s3OAMxRYmfZTxeQw7F5THawNd3SYA==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ ember-ref-bucket@4.1.0:
+ resolution: {integrity: sha512-oEUU2mDtuYuMM039U9YEqrrOCVHH6rQfvbFOmh3WxOVEgubmLVyKEpGgU4P/6j0B/JxTqqTwM3ULTQyDto8dKg==}
+ engines: {node: 10.* || >= 12}
+
+ ember-render-helpers@0.2.1:
+ resolution: {integrity: sha512-LbsUQRGcR4z9zQPdZsP5+ODU76xzbC9O97+1/ceDJPd5y0FqL9aFOWfSiqL3nEgcf93WW3im8MEVRzFWxz0Hzg==}
+ engines: {node: 8.* || >= 10.*}
+
+ ember-resolver@11.0.1:
+ resolution: {integrity: sha512-ucBk3oM+PR+AfYoSUXeQh8cDQS1sSiEKp4Pcgbew5cFMSqPxJfqd1zyZsfQKNTuyubeGmWxBOyMVSTvX2LeCyg==}
+ engines: {node: 14.* || 16.* || >= 18}
+ peerDependencies:
+ ember-source: ^4.8.3 || >= 5.0.0
+ peerDependenciesMeta:
+ ember-source:
+ optional: true
+
+ ember-responsive@5.0.0:
+ resolution: {integrity: sha512-JDwNIKHNcHrILGkpLqLqZ1idO7hxxt6f4M2wmiktOuzhBm2/JxUjkK+yec+tzIzXaD7rrl2/S7STa/Uj5s6TEw==}
+ engines: {node: 10.* || >= 12}
+
+ ember-rfc176-data@0.3.18:
+ resolution: {integrity: sha512-JtuLoYGSjay1W3MQAxt3eINWXNYYQliK90tLwtb8aeCuQK8zKGCRbBodVIrkcTqshULMnRuTOS6t1P7oQk3g6Q==}
+
+ ember-router-generator@2.0.0:
+ resolution: {integrity: sha512-89oVHVJwmLDvGvAUWgS87KpBoRhy3aZ6U0Ql6HOmU4TrPkyaa8pM0W81wj9cIwjYprcQtN9EwzZMHnq46+oUyw==}
+ engines: {node: 8.* || 10.* || >= 12}
+
+ ember-simple-auth@6.1.0:
+ resolution: {integrity: sha512-LhOl7TrOKlqb+0a/5STOoTSncDNuPELuFZ9+1SLduVX7DtdQr8VOEAmB8UaOnG0clJ9Bj6E3SczhXGjqd718Lw==}
+ peerDependencies:
+ '@ember/test-helpers': '>= 3 || > 2.7'
+ peerDependenciesMeta:
+ '@ember/test-helpers':
+ optional: true
+
+ ember-source-channel-url@3.0.0:
+ resolution: {integrity: sha512-vF/8BraOc66ZxIDo3VuNP7iiDrnXEINclJgSJmqwAAEpg84Zb1DHPI22XTXSDA+E8fW5btPUxu65c3ZXi8AQFA==}
+ engines: {node: 10.* || 12.* || >= 14}
+ hasBin: true
+
+ ember-source@5.4.1:
+ resolution: {integrity: sha512-9nDumNOxODPHUDE0s/mDelOnpB416PrngeG88Gxha3NLbjR2sgQV3K6KQ/w8sCaTGB3qVXNZSi+RqLPO+d74Ig==}
+ engines: {node: '>= 16.*'}
+ peerDependencies:
+ '@glimmer/component': ^1.1.2
+
+ ember-style-modifier@3.1.1:
+ resolution: {integrity: sha512-J91YLKVp3/m7LrcLEWNSG2sJlSFhE5Ny75empU048qYJtdJMe788Ks/EpKEi953o1mJujVRg792YGrwbrpTzNA==}
+ engines: {node: 14.* || 16.* || >= 18}
+ peerDependencies:
+ '@ember/string': ^3.0.1
+
+ ember-style-modifier@4.6.0:
+ resolution: {integrity: sha512-ZM1pztpyEdZDfQEgOkWREiiUrsfnYGJGJzEw5QO60Sd2GAZIXLhCHxOTaT3ox5pUGb+ldG4I9Fk3srQreMJlQw==}
+ engines: {node: 18.* || >= 20, pnpm: '>= 10.*'}
+
+ ember-tag-input@3.1.0:
+ resolution: {integrity: sha512-DSLYpZ5n4Buyo2sWObmXw4dYoA3RB9y+HgFabK5Uz8k3EnBn1Mt9RzOh0nju4fWjlvQMjjjouIu6Afb+xIES8g==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ ember-template-imports@3.4.2:
+ resolution: {integrity: sha512-OS8TUVG2kQYYwP3netunLVfeijPoOKIs1SvPQRTNOQX4Pu8xGGBEZmrv0U1YTnQn12Eg+p6w/0UdGbUnITjyzw==}
+ engines: {node: 12.* || >= 14}
+
+ ember-template-imports@4.4.0:
+ resolution: {integrity: sha512-HNOHabTEMbRluci1uScvh3ljMDo9E46dHHNcJAIf5yjOhIQ/zN4Y0DVDWrRfcbihlHvt4v/iF69G+8tffC1YkA==}
+ engines: {node: 16.* || >= 18}
+
+ ember-template-lint@5.13.0:
+ resolution: {integrity: sha512-AYxz9S9fVZfHPmTsymc7NwsD7FVmDUZyfC+KYpxDlK0wic7JSQx2FNQNqQSBFRLOuzn7VQ0/+1pX6DGqKDGswg==}
+ engines: {node: ^14.18.0 || ^16.0.0 || >= 18.0.0}
+ hasBin: true
+
+ ember-template-recast@6.1.5:
+ resolution: {integrity: sha512-VnRN8FzEHQnw/5rCv6Wnq8MVYXbGQbFY+rEufvWV+FO/IsxMahGEud4MYWtTA2q8iG+qJFrDQefNvQ//7MI7Qw==}
+ engines: {node: 12.* || 14.* || >= 16.*}
+ hasBin: true
+
+ ember-tracked-storage-polyfill@1.0.1:
+ resolution: {integrity: sha512-lr66R+1H9qMXIUXxwzpixS/qTwsMEpJXS5s2nOdvQP9U/JYuZT9MexpvLktSUQ1uWEhGQA8DDeeVh4R1CvLDFQ==}
+ engines: {node: 12.* || >= 14}
+
+ ember-truth-helpers@3.1.1:
+ resolution: {integrity: sha512-FHwJAx77aA5q27EhdaaiBFuy9No+8yaWNT5A7zs0sIFCmf14GbcLn69vJEp6mW7vkITezizGAWhw7gL0Wbk7DA==}
+ engines: {node: 10.* || >= 12}
+
+ ember-truth-helpers@4.0.3:
+ resolution: {integrity: sha512-T6Ogd3pk9FxYiZfSxdjgn3Hb3Ksqgw7CD23V9qfig9jktNdkNEHo4+3PA3cSD/+3a2kdH3KmNvKyarVuzdtEkA==}
+ peerDependencies:
+ ember-source: '>=3.28.0'
+
+ ember-try-config@4.0.0:
+ resolution: {integrity: sha512-jAv7fqYJK7QYYekPc/8Nr7KOqDpv/asqM6F8xcRnbmf9UrD35BkSffY63qUuiD9e0aR5qiMNBIQzH8f65rGDqw==}
+ engines: {node: 10.* || 12.* || >= 14}
+
+ ember-try@3.0.0:
+ resolution: {integrity: sha512-ZYVKYWMnrHSD3vywo7rV76kPCOC9ATIEnGGG/PEKfCcFE0lB26jltRDnOrhORfLKq0JFp62fFxC/4940U+MwRQ==}
+ engines: {node: 16.* || >= 18.*}
+
+ ember-window-mock@0.9.0:
+ resolution: {integrity: sha512-jFWq8zNFhiKNA0QnJFnhsYW+Y+2FwpvFuAf4s393Il5f1fJJfZoiwjL5l8FMpxV1alf2o8jZ2XqNQWh8rM9YBA==}
+ engines: {node: 16.* || >= 18}
+ peerDependencies:
+ ember-source: ^4.0.0
+
+ ember-wormhole@0.6.1:
+ resolution: {integrity: sha512-PIKLhWsWaw6W9a6kRGLFRVLdzw5f2wRkaTXOlM19PvakvchV969l67Ee52YwwKS69iYv2052TNaJ9pA3AeWmuw==}
+ engines: {node: 10.* || >= 12}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+ emojis-list@3.0.0:
+ resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
+ engines: {node: '>= 4'}
+
+ encodeurl@1.0.2:
+ resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
+ engines: {node: '>= 0.8'}
+
+ encodeurl@2.0.0:
+ resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
+ engines: {node: '>= 0.8'}
+
+ end-of-stream@1.4.5:
+ resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
+
+ engine.io-parser@5.2.3:
+ resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
+ engines: {node: '>=10.0.0'}
+
+ engine.io@6.6.8:
+ resolution: {integrity: sha512-2agL3ueZhqxoVrfmntO8yuVj+uNSlIOnhykYHk3Cq0ShYPdUjjUiSJrQvXjq01I9jAuI0Zl2YO8Evv5Mqytm5g==}
+ engines: {node: '>=10.2.0'}
+
+ enhanced-resolve@4.5.0:
+ resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==}
+ engines: {node: '>=6.9.0'}
+
+ enhanced-resolve@5.22.1:
+ resolution: {integrity: sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww==}
+ engines: {node: '>=10.13.0'}
+
+ ensure-posix-path@1.1.1:
+ resolution: {integrity: sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==}
+
+ entities@2.2.0:
+ resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+
+ entities@3.0.1:
+ resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==}
+ engines: {node: '>=0.12'}
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ errlop@2.2.0:
+ resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==}
+ engines: {node: '>=0.8'}
+
+ errno@0.1.8:
+ resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
+ hasBin: true
+
+ error-ex@1.3.4:
+ resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
+
+ error@7.2.1:
+ resolution: {integrity: sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==}
+
+ es-abstract@1.24.2:
+ resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==}
+ engines: {node: '>= 0.4'}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-module-lexer@2.1.0:
+ resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==}
+
+ es-object-atoms@1.1.2:
+ resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
+ es-to-primitive@1.3.0:
+ resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+ engines: {node: '>= 0.4'}
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
+ escape-string-regexp@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eslint-compat-utils@0.5.1:
+ resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-config-prettier@9.1.2:
+ resolution: {integrity: sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==}
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+
+ eslint-formatter-kakoune@1.0.0:
+ resolution: {integrity: sha512-Uk/TVLt6Nf6Xoz7C1iYuZjOSdJxe5aaauGRke8JhKeJwD66Y61/pY2FjtLP04Ooq9PwV34bzrkKkU2UZ5FtDRA==}
+
+ eslint-plugin-ember@11.12.0:
+ resolution: {integrity: sha512-7Ow1ky5JnRR0k3cxuvgYi4AWTe9DzGjlLgOJbU5VABLgr7Q0iq3ioC+YwAP79nV48cpw2HOgMgkZ1MynuIg59g==}
+ engines: {node: 14.* || 16.* || >= 18}
+ peerDependencies:
+ eslint: '>= 7'
+
+ eslint-plugin-es-x@7.8.0:
+ resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=8'
+
+ eslint-plugin-n@16.6.2:
+ resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ eslint: '>=7.0.0'
+
+ eslint-plugin-prettier@5.5.6:
+ resolution: {integrity: sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ '@types/eslint': '>=8.0.0'
+ eslint: '>=8.0.0'
+ eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0'
+ prettier: '>=3.0.0'
+ peerDependenciesMeta:
+ '@types/eslint':
+ optional: true
+ eslint-config-prettier:
+ optional: true
+
+ eslint-plugin-qunit@8.2.6:
+ resolution: {integrity: sha512-S1jC/DIW9J8VtNX4uG1vlf5FZVrfQFlcuiYmvTHR2IICUhubHqpWA5o+qS1tujh+81Gs39omKV2D4OXfbSJE5g==}
+ engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
+ peerDependencies:
+ eslint: '>=8.38.0'
+
+ eslint-scope@4.0.3:
+ resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==}
+ engines: {node: '>=4.0.0'}
+
+ eslint-scope@5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+
+ eslint-scope@7.2.2:
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-utils@3.0.0:
+ resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
+ engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
+ peerDependencies:
+ eslint: '>=5'
+
+ eslint-visitor-keys@2.1.0:
+ resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
+ engines: {node: '>=10'}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint@8.57.1:
+ resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
+ hasBin: true
+
+ esm-env@1.2.2:
+ resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
+
+ esm@3.2.25:
+ resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==}
+ engines: {node: '>=6'}
+
+ espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ esprima@3.0.0:
+ resolution: {integrity: sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+
+ esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ esquery@1.7.0:
+ resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
+ engines: {node: '>=0.10'}
+
+ esrap@2.2.11:
+ resolution: {integrity: sha512-gPdx+I+BjYEinNMQaBXFjbaJVyoPMU4ZODg5mE+M4DqVG9VusAVHHjcBX+zqyITlI0DIARwDMMzZwAWj36dRoQ==}
+ peerDependencies:
+ '@typescript-eslint/types': ^8.2.0
+ peerDependenciesMeta:
+ '@typescript-eslint/types':
+ optional: true
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ estree-walker@0.6.1:
+ resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+
+ eventemitter3@4.0.7:
+ resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+
+ events-to-array@2.0.3:
+ resolution: {integrity: sha512-f/qE2gImHRa4Cp2y1stEOSgw8wTFyUdVJX7G//bMwbaV9JqISFxg99NbmVQeP7YLnDUZ2un851jlaDrlpmGehQ==}
+ engines: {node: '>=12'}
+
+ events@3.3.0:
+ resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
+ engines: {node: '>=0.8.x'}
+
+ evp_bytestokey@1.0.3:
+ resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==}
+
+ exec-sh@0.3.6:
+ resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==}
+
+ execa@1.0.0:
+ resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==}
+ engines: {node: '>=6'}
+
+ execa@2.1.0:
+ resolution: {integrity: sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==}
+ engines: {node: ^8.12.0 || >=9.7.0}
+
+ execa@3.4.0:
+ resolution: {integrity: sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==}
+ engines: {node: ^8.12.0 || >=9.7.0}
+
+ execa@4.1.0:
+ resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==}
+ engines: {node: '>=10'}
+
+ execa@5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+
+ execa@9.6.1:
+ resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==}
+ engines: {node: ^18.19.0 || >=20.5.0}
+
+ exit@0.1.2:
+ resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
+ engines: {node: '>= 0.8.0'}
+
+ expand-brackets@2.1.4:
+ resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
+ engines: {node: '>=0.10.0'}
+
+ expand-tilde@2.0.2:
+ resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}
+ engines: {node: '>=0.10.0'}
+
+ express@4.22.2:
+ resolution: {integrity: sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==}
+ engines: {node: '>= 0.10.0'}
+
+ express@5.2.1:
+ resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==}
+ engines: {node: '>= 18'}
+
+ extend-shallow@2.0.1:
+ resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
+ engines: {node: '>=0.10.0'}
+
+ extend-shallow@3.0.2:
+ resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
+ engines: {node: '>=0.10.0'}
+
+ extend@3.0.2:
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+
+ external-editor@3.1.0:
+ resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
+ engines: {node: '>=4'}
+
+ extglob@2.0.4:
+ resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
+ engines: {node: '>=0.10.0'}
+
+ extract-stack@2.0.0:
+ resolution: {integrity: sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==}
+ engines: {node: '>=8'}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-diff@1.3.0:
+ resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+
+ fast-glob@2.2.7:
+ resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==}
+ engines: {node: '>=4.0.0'}
+
+ fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
+ engines: {node: '>=8.6.0'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fast-memoize@2.5.2:
+ resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==}
+
+ fast-ordered-set@1.0.3:
+ resolution: {integrity: sha512-MxBW4URybFszOx1YlACEoK52P6lE3xiFcPaGCUZ7QQOZ6uJXKo++Se8wa31SjcZ+NC/fdAWX7UtKEfaGgHS2Vg==}
+
+ fast-sourcemap-concat@2.1.1:
+ resolution: {integrity: sha512-7h9/x25c6AQwdU3mA8MZDUMR3UCy50f237egBrBkuwjnUZSmfu4ptCf91PZSKzON2Uh5VvIHozYKWcPPgcjxIw==}
+ engines: {node: 10.* || >= 12.*}
+
+ fast-uri@3.1.2:
+ resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==}
+
+ fastboot-transform@0.1.3:
+ resolution: {integrity: sha512-6otygPIJw1ARp1jJb+6KVO56iKBjhO+5x59RSC9qiZTbZRrv+HZAuP00KD3s+nWMvcFDemtdkugki9DNFTTwCQ==}
+
+ fastest-levenshtein@1.0.16:
+ resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
+ engines: {node: '>= 4.9.1'}
+
+ fastq@1.20.1:
+ resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
+
+ faye-websocket@0.11.4:
+ resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
+ engines: {node: '>=0.8.0'}
+
+ fb-watchman@2.0.2:
+ resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
+
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ figgy-pudding@3.5.2:
+ resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==}
+ deprecated: This module is no longer supported.
+
+ figures@2.0.0:
+ resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==}
+ engines: {node: '>=4'}
+
+ figures@3.2.0:
+ resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
+ engines: {node: '>=8'}
+
+ figures@6.1.0:
+ resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
+ engines: {node: '>=18'}
+
+ file-entry-cache@6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ file-entry-cache@7.0.2:
+ resolution: {integrity: sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==}
+ engines: {node: '>=12.0.0'}
+
+ file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+
+ filesize@10.1.6:
+ resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==}
+ engines: {node: '>= 10.4.0'}
+
+ fill-range@4.0.0:
+ resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
+ engines: {node: '>=0.10.0'}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ finalhandler@1.1.2:
+ resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
+ engines: {node: '>= 0.8'}
+
+ finalhandler@1.3.2:
+ resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==}
+ engines: {node: '>= 0.8'}
+
+ finalhandler@2.1.1:
+ resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==}
+ engines: {node: '>= 18.0.0'}
+
+ find-babel-config@1.2.2:
+ resolution: {integrity: sha512-oK59njMyw2y3yxto1BCfVK7MQp/OYf4FleHu0RgosH3riFJ1aOuo/7naLDLAObfrgn3ueFhw5sAT/cp0QuJI3Q==}
+ engines: {node: '>=4.0.0'}
+
+ find-babel-config@2.1.2:
+ resolution: {integrity: sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg==}
+
+ find-cache-dir@2.1.0:
+ resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==}
+ engines: {node: '>=6'}
+
+ find-cache-dir@3.3.2:
+ resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==}
+ engines: {node: '>=8'}
+
+ find-index@1.1.1:
+ resolution: {integrity: sha512-XYKutXMrIK99YMUPf91KX5QVJoG31/OsgftD6YoTPAObfQIxM4ziA9f0J1AsqKhJmo+IeaIPP0CFopTD4bdUBw==}
+
+ find-up@2.1.0:
+ resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
+ engines: {node: '>=4'}
+
+ find-up@3.0.0:
+ resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
+ engines: {node: '>=6'}
+
+ find-up@4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ find-up@6.3.0:
+ resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ find-yarn-workspace-root@2.0.0:
+ resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==}
+
+ findup-sync@4.0.0:
+ resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==}
+ engines: {node: '>= 8'}
+
+ fixturify-project@1.10.0:
+ resolution: {integrity: sha512-L1k9uiBQuN0Yr8tA9Noy2VSQ0dfg0B8qMdvT7Wb5WQKc7f3dn3bzCbSrqlb+etLW+KDV4cBC7R1OvcMg3kcxmA==}
+
+ fixturify-project@2.1.1:
+ resolution: {integrity: sha512-sP0gGMTr4iQ8Kdq5Ez0CVJOZOGWqzP5dv/veOTdFNywioKjkNWCHBi1q65DMpcNGUGeoOUWehyji274Q2wRgxA==}
+ engines: {node: 10.* || >= 12.*}
+
+ fixturify@1.3.0:
+ resolution: {integrity: sha512-tL0svlOy56pIMMUQ4bU1xRe6NZbFSa/ABTWMxW2mH38lFGc9TrNAKWcMBQ7eIjo3wqSS8f2ICabFaatFyFmrVQ==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ fixturify@2.1.1:
+ resolution: {integrity: sha512-SRgwIMXlxkb6AUgaVjIX+jCEqdhyXu9hah7mcK+lWynjKtX73Ux1TDv71B7XyaQ+LJxkYRHl5yCL8IycAvQRUw==}
+ engines: {node: 10.* || >= 12.*}
+
+ flat-cache@3.2.0:
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ flatted@3.4.2:
+ resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
+
+ flush-write-stream@1.1.1:
+ resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==}
+
+ focus-trap@7.8.0:
+ resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==}
+
+ follow-redirects@1.16.0:
+ resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
+
+ for-in@1.0.2:
+ resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
+ engines: {node: '>=0.10.0'}
+
+ foreground-child@3.3.1:
+ resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
+ engines: {node: '>=14'}
+
+ forwarded@0.2.0:
+ resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
+ engines: {node: '>= 0.6'}
+
+ fraction.js@5.3.4:
+ resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==}
+
+ fragment-cache@0.2.1:
+ resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
+ engines: {node: '>=0.10.0'}
+
+ fresh@0.5.2:
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
+ engines: {node: '>= 0.6'}
+
+ fresh@2.0.0:
+ resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
+ engines: {node: '>= 0.8'}
+
+ from2@2.3.0:
+ resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==}
+
+ fs-extra@0.24.0:
+ resolution: {integrity: sha512-w1RvhdLZdU9V3vQdL+RooGlo6b9R9WVoBanOfoJvosWlqSKvrjFlci2oVhwvLwZXBtM7khyPvZ8r3fwsim3o0A==}
+
+ fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+
+ fs-extra@11.3.5:
+ resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==}
+ engines: {node: '>=14.14'}
+
+ fs-extra@3.0.1:
+ resolution: {integrity: sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==}
+
+ fs-extra@4.0.3:
+ resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==}
+
+ fs-extra@5.0.0:
+ resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==}
+
+ fs-extra@6.0.1:
+ resolution: {integrity: sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==}
+
+ fs-extra@7.0.1:
+ resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
+ engines: {node: '>=6 <7 || >=8'}
+
+ fs-extra@8.1.0:
+ resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
+ engines: {node: '>=6 <7 || >=8'}
+
+ fs-extra@9.1.0:
+ resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
+ engines: {node: '>=10'}
+
+ fs-merger@3.2.1:
+ resolution: {integrity: sha512-AN6sX12liy0JE7C2evclwoo0aCG3PFulLjrTLsJpWh/2mM+DinhpSGqYLbHBBbIW1PLRNcFhJG8Axtz8mQW3ug==}
+
+ fs-tree-diff@0.5.9:
+ resolution: {integrity: sha512-872G8ax0kHh01m9n/2KDzgYwouKza0Ad9iFltBpNykvROvf2AGtoOzPJgGx125aolGPER3JuC7uZFrQ7bG1AZw==}
+
+ fs-tree-diff@2.0.1:
+ resolution: {integrity: sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ fs-updater@1.0.4:
+ resolution: {integrity: sha512-0pJX4mJF/qLsNEwTct8CdnnRdagfb+LmjRPJ8sO+nCnAZLW0cTmz4rTgU25n+RvTuWSITiLKrGVJceJPBIPlKg==}
+ engines: {node: '>=6.0.0'}
+
+ fs-write-stream-atomic@1.0.10:
+ resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==}
+ deprecated: This package is no longer supported.
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ fsevents@1.2.13:
+ resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==}
+ engines: {node: '>= 4.0'}
+ os: [darwin]
+ deprecated: Upgrade to fsevents v2 to mitigate potential security issues
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ function.prototype.name@1.1.8:
+ resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
+ engines: {node: '>= 0.4'}
+
+ functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+ fuse.js@6.6.2:
+ resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==}
+ engines: {node: '>=10'}
+
+ generator-function@2.0.1:
+ resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==}
+ engines: {node: '>= 0.4'}
+
+ gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ get-stdin@4.0.1:
+ resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==}
+ engines: {node: '>=0.10.0'}
+
+ get-stdin@9.0.0:
+ resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==}
+ engines: {node: '>=12'}
+
+ get-stream@4.1.0:
+ resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==}
+ engines: {node: '>=6'}
+
+ get-stream@5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+
+ get-stream@6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+
+ get-stream@9.0.1:
+ resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
+ engines: {node: '>=18'}
+
+ get-symbol-description@1.1.0:
+ resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
+ engines: {node: '>= 0.4'}
+
+ get-tsconfig@4.14.0:
+ resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==}
+
+ get-value@2.0.6:
+ resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
+ engines: {node: '>=0.10.0'}
+
+ git-hooks-list@1.0.3:
+ resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==}
+
+ git-repo-info@2.1.1:
+ resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==}
+ engines: {node: '>= 4.0'}
+
+ glob-parent@3.1.0:
+ resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ glob-to-regexp@0.3.0:
+ resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==}
+
+ glob-to-regexp@0.4.1:
+ resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
+
+ glob@10.5.0:
+ resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+ hasBin: true
+
+ glob@13.0.6:
+ resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==}
+ engines: {node: 18 || 20 || >=22}
+
+ glob@5.0.15:
+ resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+
+ glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+
+ glob@8.1.0:
+ resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
+ engines: {node: '>=12'}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+
+ glob@9.3.5:
+ resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+
+ global-modules@1.0.0:
+ resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==}
+ engines: {node: '>=0.10.0'}
+
+ global-modules@2.0.0:
+ resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
+ engines: {node: '>=6'}
+
+ global-prefix@1.0.2:
+ resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==}
+ engines: {node: '>=0.10.0'}
+
+ global-prefix@3.0.0:
+ resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
+ engines: {node: '>=6'}
+
+ globals@13.24.0:
+ resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
+ engines: {node: '>=8'}
+
+ globals@9.18.0:
+ resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==}
+ engines: {node: '>=0.10.0'}
+
+ globalthis@1.0.4:
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+ engines: {node: '>= 0.4'}
+
+ globalyzer@0.1.0:
+ resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
+
+ globby@10.0.0:
+ resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==}
+ engines: {node: '>=8'}
+
+ globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+
+ globby@13.2.2:
+ resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ globjoin@0.1.4:
+ resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==}
+
+ globrex@0.1.2:
+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ got@9.6.0:
+ resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==}
+ engines: {node: '>=8.6'}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ graceful-readlink@1.0.1:
+ resolution: {integrity: sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==}
+
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+ gridstack@7.3.0:
+ resolution: {integrity: sha512-JKZgsHzm1ljkn1NnBZpf8j4NDOBCXTuw0m1ZC0sr6NKUh0BFWzXAONIxtX1hWGUVeKLj5l1VcmnTwCXw5ypDNw==}
+
+ growly@1.3.0:
+ resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==}
+
+ handlebars@4.7.9:
+ resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==}
+ engines: {node: '>=0.4.7'}
+ hasBin: true
+
+ hard-rejection@2.1.0:
+ resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
+ engines: {node: '>=6'}
+
+ has-ansi@2.0.0:
+ resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==}
+ engines: {node: '>=0.10.0'}
+
+ has-ansi@3.0.0:
+ resolution: {integrity: sha512-5JRDTvNq6mVkaMHQVXrGnaCXHD6JfqxwCy8LA/DQSqLLqePR9uaJVm2u3Ek/UziJFQz+d1ul99RtfIhE2aorkQ==}
+ engines: {node: '>=4'}
+
+ has-bigints@1.1.0:
+ resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
+ engines: {node: '>= 0.4'}
+
+ has-flag@3.0.0:
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+ engines: {node: '>=4'}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-proto@1.2.0:
+ resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
+ engines: {node: '>= 0.4'}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ has-value@0.3.1:
+ resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
+ engines: {node: '>=0.10.0'}
+
+ has-value@1.0.0:
+ resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
+ engines: {node: '>=0.10.0'}
+
+ has-values@0.1.4:
+ resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
+ engines: {node: '>=0.10.0'}
+
+ has-values@1.0.0:
+ resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
+ engines: {node: '>=0.10.0'}
+
+ hash-base@3.0.5:
+ resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==}
+ engines: {node: '>= 0.10'}
+
+ hash-base@3.1.2:
+ resolution: {integrity: sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==}
+ engines: {node: '>= 0.8'}
+
+ hash-for-dep@1.5.2:
+ resolution: {integrity: sha512-+kJRJpgO+V8x6c3UQuzO+gzHu5euS8HDOIaIUsOPdQrVu7ajNKkMykbSC8O0VX3LuRnUNf4hHE0o/rJ+nB8czw==}
+
+ hash.js@1.1.7:
+ resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==}
+
+ hasown@2.0.4:
+ resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==}
+ engines: {node: '>= 0.4'}
+
+ heimdalljs-fs-monitor@1.1.2:
+ resolution: {integrity: sha512-M7OPf3Tu+ybhAXdiC07O1vUYFyhCgfew4L3vaG2nn4Be05xzNvtBcU6IKMTfHJ9AxWFa3w9rrmiJovkxHhpopw==}
+
+ heimdalljs-graph@1.0.0:
+ resolution: {integrity: sha512-v2AsTERBss0ukm/Qv4BmXrkwsT5x6M1V5Om6E8NcDQ/ruGkERsfsuLi5T8jx8qWzKMGYlwzAd7c/idymxRaPzA==}
+ engines: {node: 8.* || >= 10.*}
+
+ heimdalljs-logger@0.1.10:
+ resolution: {integrity: sha512-pO++cJbhIufVI/fmB/u2Yty3KJD0TqNPecehFae0/eps0hkZ3b4Zc/PezUMOpYuHFQbA7FxHZxa305EhmjLj4g==}
+
+ heimdalljs@0.2.6:
+ resolution: {integrity: sha512-o9bd30+5vLBvBtzCPwwGqpry2+n0Hi6H1+qwt6y+0kwRHGGF8TFIhJPmnuM0xO97zaKrDZMwO/V56fAnn8m/tA==}
+
+ hmac-drbg@1.0.1:
+ resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==}
+
+ home-or-tmp@2.0.0:
+ resolution: {integrity: sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==}
+ engines: {node: '>=0.10.0'}
+
+ homedir-polyfill@1.0.3:
+ resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
+ engines: {node: '>=0.10.0'}
+
+ hosted-git-info@4.1.0:
+ resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
+ engines: {node: '>=10'}
+
+ hosted-git-info@6.1.3:
+ resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ html-tags@3.3.1:
+ resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
+ engines: {node: '>=8'}
+
+ http-cache-semantics@4.2.0:
+ resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==}
+
+ http-errors@1.6.3:
+ resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
+ engines: {node: '>= 0.6'}
+
+ http-errors@2.0.1:
+ resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==}
+ engines: {node: '>= 0.8'}
+
+ http-parser-js@0.5.10:
+ resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==}
+
+ http-proxy@1.18.1:
+ resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
+ engines: {node: '>=8.0.0'}
+
+ https-browserify@1.0.0:
+ resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==}
+
+ https@1.0.0:
+ resolution: {integrity: sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==}
+
+ human-signals@1.1.1:
+ resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
+ engines: {node: '>=8.12.0'}
+
+ human-signals@2.1.0:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+
+ human-signals@8.0.1:
+ resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==}
+ engines: {node: '>=18.18.0'}
+
+ iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+
+ iconv-lite@0.7.2:
+ resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==}
+ engines: {node: '>=0.10.0'}
+
+ icss-utils@5.1.0:
+ resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ iferr@0.1.5:
+ resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==}
+
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+
+ imask@6.6.3:
+ resolution: {integrity: sha512-a9MTDhm+ET4G2IRcdUGuVTXHS05WsRNPGM5CeNJnXiXuoi4zv7g0/UDFLlRF4lBBeb8EWds4C4JVwhI0nuAIug==}
+ engines: {npm: '>=4.0.0'}
+
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+ engines: {node: '>=6'}
+
+ import-lazy@4.0.0:
+ resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
+ engines: {node: '>=8'}
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ include-path-searcher@0.1.0:
+ resolution: {integrity: sha512-KlpXnsZOrBGo4PPKqPFi3Ft6dcRyh8fTaqgzqDRi8jKAsngJEWWOxeFIWC8EfZtXKaZqlsNf9XRwcQ49DVgl/g==}
+
+ indent-string@5.0.0:
+ resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
+ engines: {node: '>=12'}
+
+ infer-owner@1.0.4:
+ resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
+
+ inflection@2.0.1:
+ resolution: {integrity: sha512-wzkZHqpb4eGrOKBl34xy3umnYHx8Si5R1U4fwmdxLo5gdH6mEK8gclckTj/qWqy4Je0bsDYe/qazZYuO7xe3XQ==}
+ engines: {node: '>=14.0.0'}
+
+ inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+ inherits@2.0.3:
+ resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
+
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ ini@1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+
+ inline-source-map-comment@1.0.5:
+ resolution: {integrity: sha512-a3/m6XgooVCXkZCduOb7pkuvUtNKt4DaqaggKKJrMQHQsqt6JcJXEreExeZiiK4vWL/cM/uF6+chH05pz2/TdQ==}
+ hasBin: true
+
+ inquirer@6.5.2:
+ resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==}
+ engines: {node: '>=6.0.0'}
+
+ inquirer@7.3.3:
+ resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==}
+ engines: {node: '>=8.0.0'}
+
+ inquirer@9.3.8:
+ resolution: {integrity: sha512-pFGGdaHrmRKMh4WoDDSowddgjT1Vkl90atobmTeSmcPGdYiwikch/m/Ef5wRaiamHejtw0cUUMMerzDUXCci2w==}
+ engines: {node: '>=18'}
+
+ interactjs@1.10.27:
+ resolution: {integrity: sha512-y/8RcCftGAF24gSp76X2JS3XpHiUvDQyhF8i7ujemBz77hwiHDuJzftHx7thY8cxGogwGiPJ+o97kWB6eAXnsA==}
+
+ internal-slot@1.1.0:
+ resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
+ engines: {node: '>= 0.4'}
+
+ intl-messageformat@10.7.18:
+ resolution: {integrity: sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==}
+
+ intl-messageformat@10.7.7:
+ resolution: {integrity: sha512-F134jIoeYMro/3I0h08D0Yt4N9o9pjddU/4IIxMMURqbAtI2wu70X8hvG1V48W49zXHXv3RKSF/po+0fDfsGjA==}
+
+ intl-tel-input@22.0.2:
+ resolution: {integrity: sha512-FYDLp56aCVE+G7TJGmKCeU8LlfSztINiv54TALquMhMJumlUP1d48I6fEssbcq325vcXOrqdOO7Bbi1U/WRCcw==}
+
+ invariant@2.2.4:
+ resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
+
+ invert-kv@3.0.1:
+ resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==}
+ engines: {node: '>=8'}
+
+ ipaddr.js@1.9.1:
+ resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
+ engines: {node: '>= 0.10'}
+
+ is-accessor-descriptor@1.0.2:
+ resolution: {integrity: sha512-AIbwAcazqP3R65dGvqk1V+a+vE5Fg1yu/ZKMOiBWSUIXXiwQkYmXQcVa2O0nh0tSDKDFKxG2mY7dB1Sr4hEP1g==}
+ engines: {node: '>= 0.4'}
+
+ is-array-buffer@3.0.5:
+ resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
+ engines: {node: '>= 0.4'}
+
+ is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+ is-async-function@2.1.1:
+ resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
+ engines: {node: '>= 0.4'}
+
+ is-bigint@1.1.0:
+ resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
+ engines: {node: '>= 0.4'}
+
+ is-binary-path@1.0.1:
+ resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==}
+ engines: {node: '>=0.10.0'}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-boolean-object@1.2.2:
+ resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
+ engines: {node: '>= 0.4'}
+
+ is-buffer@1.1.6:
+ resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+
+ is-builtin-module@3.2.1:
+ resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
+ engines: {node: '>=6'}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ is-core-module@2.16.2:
+ resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==}
+ engines: {node: '>= 0.4'}
+
+ is-data-descriptor@1.0.1:
+ resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==}
+ engines: {node: '>= 0.4'}
+
+ is-data-view@1.0.2:
+ resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
+ engines: {node: '>= 0.4'}
+
+ is-date-object@1.1.0:
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
+ engines: {node: '>= 0.4'}
+
+ is-descriptor@0.1.8:
+ resolution: {integrity: sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==}
+ engines: {node: '>= 0.4'}
+
+ is-descriptor@1.0.4:
+ resolution: {integrity: sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==}
+ engines: {node: '>= 0.4'}
+
+ is-docker@2.2.1:
+ resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ is-extendable@0.1.1:
+ resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
+ engines: {node: '>=0.10.0'}
+
+ is-extendable@1.0.1:
+ resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
+ engines: {node: '>=0.10.0'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-finalizationregistry@1.1.1:
+ resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
+ engines: {node: '>= 0.4'}
+
+ is-finite@1.1.0:
+ resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==}
+ engines: {node: '>=0.10.0'}
+
+ is-fullwidth-code-point@2.0.0:
+ resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==}
+ engines: {node: '>=4'}
+
+ is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
+ is-generator-function@1.1.2:
+ resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
+ engines: {node: '>= 0.4'}
+
+ is-git-url@1.0.0:
+ resolution: {integrity: sha512-UCFta9F9rWFSavp9H3zHEHrARUfZbdJvmHKeEpds4BK3v7W2LdXoNypMtXXi5w5YBDEBCTYmbI+vsSwI8LYJaQ==}
+ engines: {node: '>=0.8'}
+
+ is-glob@3.1.0:
+ resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==}
+ engines: {node: '>=0.10.0'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-interactive@1.0.0:
+ resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
+ engines: {node: '>=8'}
+
+ is-language-code@3.1.0:
+ resolution: {integrity: sha512-zJdQ3QTeLye+iphMeK3wks+vXSRFKh68/Pnlw7aOfApFSEIOhYa8P9vwwa6QrImNNBMJTiL1PpYF0f4BxDuEgA==}
+
+ is-map@2.0.3:
+ resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
+ engines: {node: '>= 0.4'}
+
+ is-module@1.0.0:
+ resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
+
+ is-negative-zero@2.0.3:
+ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
+ engines: {node: '>= 0.4'}
+
+ is-number-object@1.1.1:
+ resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
+ engines: {node: '>= 0.4'}
+
+ is-number@3.0.0:
+ resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
+ engines: {node: '>=0.10.0'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-obj@2.0.0:
+ resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
+ engines: {node: '>=8'}
+
+ is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+
+ is-plain-obj@1.1.0:
+ resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
+ engines: {node: '>=0.10.0'}
+
+ is-plain-obj@2.1.0:
+ resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
+ engines: {node: '>=8'}
+
+ is-plain-obj@4.1.0:
+ resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
+ engines: {node: '>=12'}
+
+ is-plain-object@2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
+
+ is-plain-object@5.0.0:
+ resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
+ engines: {node: '>=0.10.0'}
+
+ is-promise@4.0.0:
+ resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
+
+ is-reference@3.0.3:
+ resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
+
+ is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-set@2.0.3:
+ resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
+ engines: {node: '>= 0.4'}
+
+ is-shared-array-buffer@1.0.4:
+ resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
+ engines: {node: '>= 0.4'}
+
+ is-stream@1.1.0:
+ resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
+ is-stream@4.0.1:
+ resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
+ engines: {node: '>=18'}
+
+ is-string@1.1.1:
+ resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
+ engines: {node: '>= 0.4'}
+
+ is-subdir@1.2.0:
+ resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
+ engines: {node: '>=4'}
+
+ is-symbol@1.1.1:
+ resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
+ engines: {node: '>= 0.4'}
+
+ is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
+
+ is-typedarray@1.0.0:
+ resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
+
+ is-unicode-supported@0.1.0:
+ resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
+ engines: {node: '>=10'}
+
+ is-unicode-supported@2.1.0:
+ resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
+ engines: {node: '>=18'}
+
+ is-weakmap@2.0.2:
+ resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
+ engines: {node: '>= 0.4'}
+
+ is-weakref@1.1.1:
+ resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
+ engines: {node: '>= 0.4'}
+
+ is-weakset@2.0.4:
+ resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
+ engines: {node: '>= 0.4'}
+
+ is-windows@1.0.2:
+ resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
+ engines: {node: '>=0.10.0'}
+
+ is-wsl@1.1.0:
+ resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==}
+ engines: {node: '>=4'}
+
+ is-wsl@2.2.0:
+ resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
+ engines: {node: '>=8'}
+
+ isarray@0.0.1:
+ resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
+
+ isarray@1.0.0:
+ resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+
+ isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+
+ isbinaryfile@5.0.7:
+ resolution: {integrity: sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==}
+ engines: {node: '>= 18.0.0'}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ isobject@2.1.0:
+ resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
+ engines: {node: '>=0.10.0'}
+
+ isobject@3.0.1:
+ resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
+ engines: {node: '>=0.10.0'}
+
+ istextorbinary@2.1.0:
+ resolution: {integrity: sha512-kT1g2zxZ5Tdabtpp9VSdOzW9lb6LXImyWbzbQeTxoRtHhurC9Ej9Wckngr2+uepPL09ky/mJHmN9jeJPML5t6A==}
+ engines: {node: '>=0.12'}
+
+ istextorbinary@2.6.0:
+ resolution: {integrity: sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==}
+ engines: {node: '>=0.12'}
+
+ jackspeak@3.4.3:
+ resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+
+ jest-worker@27.5.1:
+ resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
+ engines: {node: '>= 10.13.0'}
+
+ jiti@1.21.7:
+ resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
+ hasBin: true
+
+ js-string-escape@1.0.1:
+ resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==}
+ engines: {node: '>= 0.8'}
+
+ js-tokens@3.0.2:
+ resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-yaml@4.2.0:
+ resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==}
+ hasBin: true
+
+ jsesc@1.3.0:
+ resolution: {integrity: sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==}
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ json-buffer@3.0.0:
+ resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==}
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-parse-better-errors@1.0.2:
+ resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
+
+ json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ json-stable-stringify@1.3.0:
+ resolution: {integrity: sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==}
+ engines: {node: '>= 0.4'}
+
+ json5@0.5.1:
+ resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==}
+ hasBin: true
+
+ json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsonfile@2.4.0:
+ resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==}
+
+ jsonfile@3.0.1:
+ resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==}
+
+ jsonfile@4.0.0:
+ resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+
+ jsonfile@6.2.1:
+ resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==}
+
+ jsonify@0.0.1:
+ resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==}
+
+ keyv@3.1.0:
+ resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ kind-of@3.2.2:
+ resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
+ engines: {node: '>=0.10.0'}
+
+ kind-of@4.0.0:
+ resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
+ engines: {node: '>=0.10.0'}
+
+ kind-of@6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+
+ known-css-properties@0.29.0:
+ resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==}
+
+ language-subtag-registry@0.3.23:
+ resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
+
+ language-tags@1.0.9:
+ resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
+ engines: {node: '>=0.10'}
+
+ lcid@3.1.1:
+ resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==}
+ engines: {node: '>=8'}
+
+ leaflet@1.9.4:
+ resolution: {integrity: sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ lilconfig@3.1.3:
+ resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
+ engines: {node: '>=14'}
+
+ line-column@1.0.2:
+ resolution: {integrity: sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==}
+
+ lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ linked-list@0.1.0:
+ resolution: {integrity: sha512-Zr4ovrd0ODzF3ut2TWZMdHIxb8iFdJc/P3QM4iCJdlxxGHXo69c9hGIHzLo8/FtuR9E6WUZc5irKhtPUgOKMAg==}
+
+ linkify-it@4.0.1:
+ resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==}
+
+ linkify-it@5.0.1:
+ resolution: {integrity: sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==}
+
+ livereload-js@3.4.1:
+ resolution: {integrity: sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g==}
+
+ loader-runner@2.4.0:
+ resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==}
+ engines: {node: '>=4.3.0 <5.0.0 || >=5.10'}
+
+ loader-runner@4.3.2:
+ resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==}
+ engines: {node: '>=6.11.5'}
+
+ loader-utils@1.4.2:
+ resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==}
+ engines: {node: '>=4.0.0'}
+
+ loader-utils@2.0.4:
+ resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
+ engines: {node: '>=8.9.0'}
+
+ loader.js@4.7.0:
+ resolution: {integrity: sha512-9M2KvGT6duzGMgkOcTkWb+PR/Q2Oe54df/tLgHGVmFpAmtqJ553xJh6N63iFYI2yjo2PeJXbS5skHi/QpJq4vA==}
+
+ locate-character@3.0.0:
+ resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
+
+ locate-path@2.0.0:
+ resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
+ engines: {node: '>=4'}
+
+ locate-path@3.0.0:
+ resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
+ engines: {node: '>=6'}
+
+ locate-path@5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ locate-path@7.2.0:
+ resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ lodash.camelcase@4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+
+ lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
+ lodash.defaults@4.2.0:
+ resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
+
+ lodash.defaultsdeep@4.6.1:
+ resolution: {integrity: sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==}
+
+ lodash.kebabcase@4.1.1:
+ resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==}
+
+ lodash.memoize@4.1.2:
+ resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lodash.truncate@4.4.2:
+ resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
+
+ lodash.uniq@4.5.0:
+ resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+
+ lodash@4.18.1:
+ resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
+
+ log-symbols@2.2.0:
+ resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==}
+ engines: {node: '>=4'}
+
+ log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+
+ loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+
+ lower-case@2.0.2:
+ resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+
+ lowercase-keys@1.0.1:
+ resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==}
+ engines: {node: '>=0.10.0'}
+
+ lowercase-keys@2.0.0:
+ resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
+ engines: {node: '>=8'}
+
+ lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+
+ lru-cache@11.5.1:
+ resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==}
+ engines: {node: 20 || >=22}
+
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+ lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+
+ lru-cache@7.18.3:
+ resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
+ engines: {node: '>=12'}
+
+ magic-string@0.25.9:
+ resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
+
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+
+ make-dir@2.1.0:
+ resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
+ engines: {node: '>=6'}
+
+ make-dir@3.1.0:
+ resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
+ engines: {node: '>=8'}
+
+ makeerror@1.0.12:
+ resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+
+ map-age-cleaner@0.1.3:
+ resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
+ engines: {node: '>=6'}
+
+ map-cache@0.2.2:
+ resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
+ engines: {node: '>=0.10.0'}
+
+ map-obj@1.0.1:
+ resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
+ engines: {node: '>=0.10.0'}
+
+ map-obj@4.3.0:
+ resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
+ engines: {node: '>=8'}
+
+ map-visit@1.0.0:
+ resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
+ engines: {node: '>=0.10.0'}
+
+ markdown-it-terminal@0.4.0:
+ resolution: {integrity: sha512-NeXtgpIK6jBciHTm9UhiPnyHDdqyVIdRPJ+KdQtZaf/wR74gvhCNbw5li4TYsxRp5u3ZoHEF4DwpECeZqyCw+w==}
+ peerDependencies:
+ markdown-it: '>= 13.0.0'
+
+ markdown-it@13.0.2:
+ resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==}
+ hasBin: true
+
+ markdown-it@14.2.0:
+ resolution: {integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==}
+ hasBin: true
+
+ matcher-collection@1.1.2:
+ resolution: {integrity: sha512-YQ/teqaOIIfUHedRam08PB3NK7Mjct6BvzRnJmpGDm8uFXpNr1sbY4yuflI5JcEs6COpYA0FpRQhSDBf1tT95g==}
+
+ matcher-collection@2.0.1:
+ resolution: {integrity: sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ mathml-tag-names@2.1.3:
+ resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
+
+ md5.js@1.3.5:
+ resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==}
+
+ mdn-data@2.0.30:
+ resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
+
+ mdurl@1.0.1:
+ resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==}
+
+ mdurl@2.0.0:
+ resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
+
+ media-typer@0.3.0:
+ resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
+ engines: {node: '>= 0.6'}
+
+ media-typer@1.1.0:
+ resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
+ engines: {node: '>= 0.8'}
+
+ mem@5.1.1:
+ resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==}
+ engines: {node: '>=8'}
+
+ mem@8.1.1:
+ resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
+ engines: {node: '>=10'}
+
+ memory-fs@0.4.1:
+ resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==}
+
+ memory-fs@0.5.0:
+ resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==}
+ engines: {node: '>=4.3.0 <5.0.0 || >=5.10'}
+
+ memory-streams@0.1.3:
+ resolution: {integrity: sha512-qVQ/CjkMyMInPaaRMrwWNDvf6boRZXaT/DbQeMYcCWuXPEBf1v8qChOc9OlEVQp2uOvRXa1Qu30fLmKhY6NipA==}
+
+ meow@10.1.5:
+ resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ merge-descriptors@1.0.3:
+ resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
+
+ merge-descriptors@2.0.0:
+ resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==}
+ engines: {node: '>=18'}
+
+ merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+ merge-trees@1.0.1:
+ resolution: {integrity: sha512-O7TWwipLHhc9tErjq3WBvNP7I1g7Wgudl1ZkLqpT7F2MZy1yEdgnI9cpZZxBaqk+wJZu+2b9FE7D3ubUmGFHFA==}
+
+ merge-trees@2.0.0:
+ resolution: {integrity: sha512-5xBbmqYBalWqmhYm51XlohhkmVOua3VAUrrWh8t9iOkaLpS6ifqm/UVuUjQCeDVJ9Vx3g2l6ihfkbLSTeKsHbw==}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ merge@2.1.1:
+ resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==}
+
+ methods@1.1.2:
+ resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
+ engines: {node: '>= 0.6'}
+
+ micromatch@3.1.10:
+ resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==}
+ engines: {node: '>=0.10.0'}
+
+ micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ engines: {node: '>=8.6'}
+
+ miller-rabin@4.0.1:
+ resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==}
+ hasBin: true
+
+ mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ mime-db@1.54.0:
+ resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==}
+ engines: {node: '>= 0.6'}
+
+ mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+
+ mime-types@3.0.2:
+ resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==}
+ engines: {node: '>=18'}
+
+ mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ mimic-fn@1.2.0:
+ resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==}
+ engines: {node: '>=4'}
+
+ mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+
+ mimic-fn@3.1.0:
+ resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
+ engines: {node: '>=8'}
+
+ mimic-response@1.0.1:
+ resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
+ engines: {node: '>=4'}
+
+ mini-css-extract-plugin@2.10.2:
+ resolution: {integrity: sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==}
+ engines: {node: '>= 12.13.0'}
+ peerDependencies:
+ webpack: ^5.0.0
+
+ mini-svg-data-uri@1.4.4:
+ resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
+ hasBin: true
+
+ minimalistic-assert@1.0.1:
+ resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
+
+ minimalistic-crypto-utils@1.0.1:
+ resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==}
+
+ minimatch@10.2.5:
+ resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
+ engines: {node: 18 || 20 || >=22}
+
+ minimatch@3.1.5:
+ resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
+
+ minimatch@5.1.9:
+ resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==}
+ engines: {node: '>=10'}
+
+ minimatch@7.4.9:
+ resolution: {integrity: sha512-Brg/fp/iAVDOQoHxkuN5bEYhyQlZhxddI78yWsCbeEwTHXQjlNLtiJDUsp1GIptVqMI7/gkJMz4vVAc01mpoBw==}
+ engines: {node: '>=10'}
+
+ minimatch@8.0.7:
+ resolution: {integrity: sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimatch@9.0.9:
+ resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimist-options@4.1.0:
+ resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
+ engines: {node: '>= 6'}
+
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ minipass@4.2.8:
+ resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==}
+ engines: {node: '>=8'}
+
+ minipass@7.1.3:
+ resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ mississippi@3.0.0:
+ resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==}
+ engines: {node: '>=4.0.0'}
+
+ mixin-deep@1.3.2:
+ resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
+ engines: {node: '>=0.10.0'}
+
+ mkdirp@0.5.6:
+ resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
+ hasBin: true
+
+ mkdirp@1.0.4:
+ resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ mkdirp@3.0.1:
+ resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ mktemp@2.0.3:
+ resolution: {integrity: sha512-Bq72L2oi/isYSy0guN9ihNhAMQOyZEwts+Bezm/1U+wh8bQ+fVQ2ZiUoJJjceOMiiKv/BUrA0NF98jFc81CB6w==}
+ engines: {node: 20 || 22 || 24}
+
+ morgan@1.11.0:
+ resolution: {integrity: sha512-zSkVu3t18r39pw4ixfBKvfZi3y2UOqr7d4WYwcj3m8nXpEQK4rPO6GLzs/CExoRgmX3y9EjmmcXqv6jq0SK46g==}
+ engines: {node: '>= 0.8.0'}
+
+ move-concurrently@1.0.1:
+ resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==}
+ deprecated: This package is no longer supported.
+
+ mr-dep-walk@1.4.0:
+ resolution: {integrity: sha512-UaDUqkLsd0ep3jAx2+A7BIpfw8wKxhthDj3yPNLBnevipK1CUFJJiz24jRVLw18q7R2aEiRq13WwUBlnwfbQqQ==}
+
+ ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ mustache@4.2.0:
+ resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
+ hasBin: true
+
+ mute-stream@0.0.7:
+ resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==}
+
+ mute-stream@0.0.8:
+ resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
+
+ mute-stream@1.0.0:
+ resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+
+ nan@2.27.0:
+ resolution: {integrity: sha512-hC+0LidcL3XE4rp1C4H54KujgXKzbfyTngZTwBByQxsOxCEKZT0MPQ4hOKUH2jU1OYstqdDH4onyHPDzcV0XdQ==}
+
+ nanoid@3.3.12:
+ resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ nanomatch@1.2.13:
+ resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
+ engines: {node: '>=0.10.0'}
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ negotiator@0.6.3:
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
+ engines: {node: '>= 0.6'}
+
+ negotiator@0.6.4:
+ resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==}
+ engines: {node: '>= 0.6'}
+
+ negotiator@1.0.0:
+ resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
+ engines: {node: '>= 0.6'}
+
+ neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
+ nice-try@1.0.5:
+ resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
+
+ no-case@3.0.4:
+ resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
+ node-int64@0.4.0:
+ resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
+
+ node-libs-browser@2.2.1:
+ resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==}
+
+ node-modules-path@1.0.2:
+ resolution: {integrity: sha512-6Gbjq+d7uhkO7epaKi5DNgUJn7H0gEyA4Jg0Mo1uQOi3Rk50G83LtmhhFyw0LxnAFhtlspkiiw52ISP13qzcBg==}
+
+ node-releases@2.0.47:
+ resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==}
+ engines: {node: '>=18'}
+
+ node-watch@0.7.3:
+ resolution: {integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==}
+ engines: {node: '>=6'}
+
+ nopt@3.0.6:
+ resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==}
+ hasBin: true
+
+ normalize-package-data@3.0.3:
+ resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
+ engines: {node: '>=10'}
+
+ normalize-path@2.1.1:
+ resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==}
+ engines: {node: '>=0.10.0'}
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ normalize-url@4.5.1:
+ resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==}
+ engines: {node: '>=8'}
+
+ npm-git-info@1.0.3:
+ resolution: {integrity: sha512-i5WBdj4F/ULl16z9ZhsJDMl1EQCMQhHZzBwNnKL2LOA+T8IHNeRkLCVz9uVV9SzUdGTbDq+1oXhIYMe+8148vw==}
+
+ npm-package-arg@10.1.0:
+ resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ npm-run-path@2.0.2:
+ resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
+ engines: {node: '>=4'}
+
+ npm-run-path@3.1.0:
+ resolution: {integrity: sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==}
+ engines: {node: '>=8'}
+
+ npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+
+ npm-run-path@6.0.0:
+ resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==}
+ engines: {node: '>=18'}
+
+ object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ object-copy@0.1.0:
+ resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
+ engines: {node: '>=0.10.0'}
+
+ object-hash@1.3.1:
+ resolution: {integrity: sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==}
+ engines: {node: '>= 0.10.0'}
+
+ object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
+ object-inspect@1.13.4:
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ object-visit@1.0.1:
+ resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
+ engines: {node: '>=0.10.0'}
+
+ object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
+
+ object.pick@1.3.0:
+ resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
+ engines: {node: '>=0.10.0'}
+
+ on-finished@2.3.0:
+ resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
+ engines: {node: '>= 0.8'}
+
+ on-finished@2.4.1:
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
+ engines: {node: '>= 0.8'}
+
+ on-headers@1.1.0:
+ resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==}
+ engines: {node: '>= 0.8'}
+
+ once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+ onetime@2.0.1:
+ resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==}
+ engines: {node: '>=4'}
+
+ onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ ora@3.4.0:
+ resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==}
+ engines: {node: '>=6'}
+
+ ora@5.4.1:
+ resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
+ engines: {node: '>=10'}
+
+ orderedmap@2.1.1:
+ resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==}
+
+ os-browserify@0.3.0:
+ resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==}
+
+ os-homedir@1.0.2:
+ resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==}
+ engines: {node: '>=0.10.0'}
+
+ os-locale@5.0.0:
+ resolution: {integrity: sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==}
+ engines: {node: '>=10'}
+
+ os-tmpdir@1.0.2:
+ resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+ engines: {node: '>=0.10.0'}
+
+ osrm-text-instructions@0.13.4:
+ resolution: {integrity: sha512-ge4ZTIetMQKAHKq2MwWf83ntzdJN20ndRKRaVNoZ3SkDkBNO99Qddz7r6+hrVx38I+ih6Rk5T1yslczAB6Q9Pg==}
+
+ own-keys@1.0.1:
+ resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+ engines: {node: '>= 0.4'}
+
+ p-cancelable@1.1.0:
+ resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==}
+ engines: {node: '>=6'}
+
+ p-defer@1.0.0:
+ resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
+ engines: {node: '>=4'}
+
+ p-defer@3.0.0:
+ resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==}
+ engines: {node: '>=8'}
+
+ p-event@2.3.1:
+ resolution: {integrity: sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==}
+ engines: {node: '>=6'}
+
+ p-finally@1.0.0:
+ resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
+ engines: {node: '>=4'}
+
+ p-finally@2.0.1:
+ resolution: {integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==}
+ engines: {node: '>=8'}
+
+ p-is-promise@2.1.0:
+ resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==}
+ engines: {node: '>=6'}
+
+ p-limit@1.3.0:
+ resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
+ engines: {node: '>=4'}
+
+ p-limit@2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-limit@4.0.0:
+ resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ p-locate@2.0.0:
+ resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
+ engines: {node: '>=4'}
+
+ p-locate@3.0.0:
+ resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
+ engines: {node: '>=6'}
+
+ p-locate@4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ p-locate@6.0.0:
+ resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ p-timeout@2.0.1:
+ resolution: {integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==}
+ engines: {node: '>=4'}
+
+ p-try@1.0.0:
+ resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
+ engines: {node: '>=4'}
+
+ p-try@2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+
+ package-json-from-dist@1.0.1:
+ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
+ package-json@6.5.0:
+ resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==}
+ engines: {node: '>=8'}
+
+ pako@1.0.11:
+ resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
+
+ parallel-transform@1.2.0:
+ resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parse-asn1@5.1.9:
+ resolution: {integrity: sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==}
+ engines: {node: '>= 0.10'}
+
+ parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+
+ parse-ms@4.0.0:
+ resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
+ engines: {node: '>=18'}
+
+ parse-passwd@1.0.0:
+ resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}
+ engines: {node: '>=0.10.0'}
+
+ parse-static-imports@1.1.0:
+ resolution: {integrity: sha512-HlxrZcISCblEV0lzXmAHheH/8qEkKgmqkdxyHTPbSqsTUV8GzqmN1L+SSti+VbNPfbBO3bYLPHDiUs2avbAdbA==}
+
+ parse5@6.0.1:
+ resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
+
+ parseurl@1.3.3:
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
+ engines: {node: '>= 0.8'}
+
+ pascal-case@3.1.2:
+ resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
+
+ pascalcase@0.1.1:
+ resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
+ engines: {node: '>=0.10.0'}
+
+ path-browserify@0.0.1:
+ resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==}
+
+ path-dirname@1.0.2:
+ resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==}
+
+ path-exists@3.0.0:
+ resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
+ engines: {node: '>=4'}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-exists@5.0.0:
+ resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
+ path-key@2.0.1:
+ resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
+ engines: {node: '>=4'}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ path-key@4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-posix@1.0.0:
+ resolution: {integrity: sha512-1gJ0WpNIiYcQydgg3Ed8KzvIqTsDpNwq+cjBCssvBtuTWjEqY1AW+i+OepiEMqDCzyro9B2sLAe4RBPajMYFiA==}
+
+ path-root-regex@0.1.2:
+ resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==}
+ engines: {node: '>=0.10.0'}
+
+ path-root@0.1.1:
+ resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==}
+ engines: {node: '>=0.10.0'}
+
+ path-scurry@1.11.1:
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+ engines: {node: '>=16 || 14 >=14.18'}
+
+ path-scurry@2.0.2:
+ resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==}
+ engines: {node: 18 || 20 || >=22}
+
+ path-to-regexp@0.1.13:
+ resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==}
+
+ path-to-regexp@8.4.2:
+ resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==}
+
+ path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+
+ pbkdf2@3.1.6:
+ resolution: {integrity: sha512-BT6eelPB1EyGHo8pC0o9Bl6k6SYVhKO1jEbd3lcTrtr7XHdjP8BW1YpfCV3G9Kwkxgattk+S5q2/RvuttCsS1g==}
+ engines: {node: '>= 0.10'}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.2:
+ resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@4.0.4:
+ resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
+ engines: {node: '>=12'}
+
+ pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+
+ pify@4.0.1:
+ resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+ engines: {node: '>=6'}
+
+ pinkie-promise@2.0.1:
+ resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==}
+ engines: {node: '>=0.10.0'}
+
+ pinkie@2.0.4:
+ resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==}
+ engines: {node: '>=0.10.0'}
+
+ pirates@4.0.7:
+ resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
+ engines: {node: '>= 6'}
+
+ pkg-dir@3.0.0:
+ resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==}
+ engines: {node: '>=6'}
+
+ pkg-dir@4.2.0:
+ resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
+ engines: {node: '>=8'}
+
+ pkg-entry-points@1.1.1:
+ resolution: {integrity: sha512-BhZa7iaPmB4b3vKIACoppyUoYn8/sFs17VJJtzrzPZvEnN2nqrgg911tdL65lA2m1ml6UI3iPeYbZQ4VXpn1mA==}
+
+ pkg-up@2.0.0:
+ resolution: {integrity: sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg==}
+ engines: {node: '>=4'}
+
+ pkg-up@3.1.0:
+ resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
+ engines: {node: '>=8'}
+
+ portfinder@1.0.38:
+ resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==}
+ engines: {node: '>= 10.12'}
+
+ posix-character-classes@0.1.1:
+ resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
+ engines: {node: '>=0.10.0'}
+
+ possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
+ engines: {node: '>= 0.4'}
+
+ postcss-at-rules-variables@0.3.0:
+ resolution: {integrity: sha512-TmzLAG17XTsRYSqcpk96zXie+oU30Tn0F5f8mgSD3JagIAmhWUH7/3CLxY8XL8BhqiIjGiCSMuolIxwB4TE4NA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ postcss: ^8.1.10
+
+ postcss-attribute-case-insensitive@6.0.3:
+ resolution: {integrity: sha512-KHkmCILThWBRtg+Jn1owTnHPnFit4OkqS+eKiGEOPIGke54DCeYGJ6r0Fx/HjfE9M9kznApCLcU0DvnPchazMQ==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-clamp@4.1.0:
+ resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==}
+ engines: {node: '>=7.6.0'}
+ peerDependencies:
+ postcss: ^8.4.6
+
+ postcss-color-functional-notation@6.0.14:
+ resolution: {integrity: sha512-dNUX+UH4dAozZ8uMHZ3CtCNYw8fyFAmqqdcyxMr7PEdM9jLXV19YscoYO0F25KqZYhmtWKQ+4tKrIZQrwzwg7A==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-color-hex-alpha@9.0.4:
+ resolution: {integrity: sha512-XQZm4q4fNFqVCYMGPiBjcqDhuG7Ey2xrl99AnDJMyr5eDASsAGalndVgHZF8i97VFNy1GQeZc4q2ydagGmhelQ==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-color-rebeccapurple@9.0.3:
+ resolution: {integrity: sha512-ruBqzEFDYHrcVq3FnW3XHgwRqVMrtEPLBtD7K2YmsLKVc2jbkxzzNEctJKsPCpDZ+LeMHLKRDoSShVefGc+CkQ==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-conditionals-renewed@1.0.0:
+ resolution: {integrity: sha512-sK93TxuX+l+GYH/dxe/adXXqDyFW2Z4/8Hkl25aVWCW8+DFMNNRrjzki/hVzvHc3vCXD9QUKe2FKAjbQudLOqA==}
+ peerDependencies:
+ postcss: ^8
+
+ postcss-custom-media@10.0.8:
+ resolution: {integrity: sha512-V1KgPcmvlGdxTel4/CyQtBJEFhMVpEmRGFrnVtgfGIHj5PJX9vO36eFBxKBeJn+aCDTed70cc+98Mz3J/uVdGQ==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-custom-properties@13.3.12:
+ resolution: {integrity: sha512-oPn/OVqONB2ZLNqN185LDyaVByELAA/u3l2CS2TS16x2j2XsmV4kd8U49+TMxmUsEU9d8fB/I10E6U7kB0L1BA==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-custom-selectors@7.1.12:
+ resolution: {integrity: sha512-ctIoprBMJwByYMGjXG0F7IT2iMF2hnamQ+aWZETyBM0aAlyaYdVZTeUkk8RB+9h9wP+NdN3f01lfvKl2ZSqC0g==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-dir-pseudo-class@8.0.1:
+ resolution: {integrity: sha512-uULohfWBBVoFiZXgsQA24JV6FdKIidQ+ZqxOouhWwdE+qJlALbkS5ScB43ZTjPK+xUZZhlaO/NjfCt5h4IKUfw==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-double-position-gradients@5.0.7:
+ resolution: {integrity: sha512-1xEhjV9u1s4l3iP5lRt1zvMjI/ya8492o9l/ivcxHhkO3nOz16moC4JpMxDUGrOs4R3hX+KWT7gKoV842cwRgg==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-each@1.1.0:
+ resolution: {integrity: sha512-YfTPHHAPFVRgEJfLg9RM4R9WYEHVU9Rf1R8QgZfnObwV2dgNqzTLzTl0w5tF71ApFcYLiJAXiTpHAoqJFYcZVw==}
+ peerDependencies:
+ postcss: ^8.0.0
+
+ postcss-focus-visible@9.0.1:
+ resolution: {integrity: sha512-N2VQ5uPz3Z9ZcqI5tmeholn4d+1H14fKXszpjogZIrFbhaq0zNAtq8sAnw6VLiqGbL8YBzsnu7K9bBkTqaRimQ==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-focus-within@8.0.1:
+ resolution: {integrity: sha512-NFU3xcY/xwNaapVb+1uJ4n23XImoC86JNwkY/uduytSl2s9Ekc2EpzmRR63+ExitnW3Mab3Fba/wRPCT5oDILA==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-font-variant@5.0.0:
+ resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==}
+ peerDependencies:
+ postcss: ^8.1.0
+
+ postcss-gap-properties@5.0.1:
+ resolution: {integrity: sha512-k2z9Cnngc24c0KF4MtMuDdToROYqGMMUQGcE6V0odwjHyOHtaDBlLeRBV70y9/vF7KIbShrTRZ70JjsI1BZyWw==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-image-set-function@6.0.3:
+ resolution: {integrity: sha512-i2bXrBYzfbRzFnm+pVuxVePSTCRiNmlfssGI4H0tJQvDue+yywXwUxe68VyzXs7cGtMaH6MCLY6IbCShrSroCw==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-import@15.1.0:
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+
+ postcss-js@4.1.0:
+ resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.4.21
+
+ postcss-lab-function@6.0.19:
+ resolution: {integrity: sha512-vwln/mgvFrotJuGV8GFhpAOu9iGf3pvTBr6dLPDmUcqVD5OsQpEFyQMAFTxSxWXGEzBj6ld4pZ/9GDfEpXvo0g==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-load-config@6.0.1:
+ resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ jiti: '>=1.21.0'
+ postcss: '>=8.0.9'
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+ postcss:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+ postcss-logical@7.0.1:
+ resolution: {integrity: sha512-8GwUQZE0ri0K0HJHkDv87XOLC8DE0msc+HoWLeKdtjDZEwpZ5xuK3QdV6FhmHSQW40LPkg43QzvATRAI3LsRkg==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-mixins@9.0.4:
+ resolution: {integrity: sha512-XVq5jwQJDRu5M1XGkdpgASqLk37OqkH4JCFDXl/Dn7janOJjCTEKL+36cnRVy7bMtoBzALfO7bV7nTIsFnUWLA==}
+ engines: {node: '>=14.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
+ postcss-modules-extract-imports@3.1.0:
+ resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+
+ postcss-modules-local-by-default@4.2.0:
+ resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+
+ postcss-modules-scope@3.2.1:
+ resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+
+ postcss-modules-values@4.0.0:
+ resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+
+ postcss-nested@6.2.0:
+ resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
+ postcss-nesting@12.1.5:
+ resolution: {integrity: sha512-N1NgI1PDCiAGWPTYrwqm8wpjv0bgDmkYHH72pNsqTCv9CObxjxftdYu6AKtGN+pnJa7FQjMm3v4sp8QJbFsYdQ==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-opacity-percentage@2.0.0:
+ resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.2
+
+ postcss-overflow-shorthand@5.0.1:
+ resolution: {integrity: sha512-XzjBYKLd1t6vHsaokMV9URBt2EwC9a7nDhpQpjoPk2HRTSQfokPfyAS/Q7AOrzUu6q+vp/GnrDBGuj/FCaRqrQ==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-page-break@3.0.4:
+ resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==}
+ peerDependencies:
+ postcss: ^8
+
+ postcss-place@9.0.1:
+ resolution: {integrity: sha512-JfL+paQOgRQRMoYFc2f73pGuG/Aw3tt4vYMR6UA3cWVMxivviPTnMFnFTczUJOA4K2Zga6xgQVE+PcLs64WC8Q==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-preset-env@9.6.0:
+ resolution: {integrity: sha512-Lxfk4RYjUdwPCYkc321QMdgtdCP34AeI94z+/8kVmqnTIlD4bMRQeGcMZgwz8BxHrzQiFXYIR5d7k/9JMs2MEA==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-pseudo-class-any-link@9.0.2:
+ resolution: {integrity: sha512-HFSsxIqQ9nA27ahyfH37cRWGk3SYyQLpk0LiWw/UGMV4VKT5YG2ONee4Pz/oFesnK0dn2AjcyequDbIjKJgB0g==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-replace-overflow-wrap@4.0.0:
+ resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==}
+ peerDependencies:
+ postcss: ^8.0.3
+
+ postcss-resolve-nested-selector@0.1.6:
+ resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==}
+
+ postcss-safe-parser@6.0.0:
+ resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.3.3
+
+ postcss-selector-not@7.0.2:
+ resolution: {integrity: sha512-/SSxf/90Obye49VZIfc0ls4H0P6i6V1iHv0pzZH8SdgvZOPFkF37ef1r5cyWcMflJSFJ5bfuoluTnFnBBFiuSA==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.4
+
+ postcss-selector-parser@6.1.2:
+ resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
+ engines: {node: '>=4'}
+
+ postcss-selector-parser@7.1.1:
+ resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==}
+ engines: {node: '>=4'}
+
+ postcss-simple-vars@6.0.3:
+ resolution: {integrity: sha512-fkNn4Zio8vN4vIig9IFdb8lVlxWnYR769RgvxCM6YWlFKie/nQaOcaMMMFz/s4gsfHW4/5bJW+i57zD67mQU7g==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ postcss: ^8.2.1
+
+ postcss-simple-vars@7.0.1:
+ resolution: {integrity: sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==}
+ engines: {node: '>=14.0'}
+ peerDependencies:
+ postcss: ^8.2.1
+
+ postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+ postcss@8.5.15:
+ resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ preact@10.12.1:
+ resolution: {integrity: sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prepend-http@2.0.0:
+ resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==}
+ engines: {node: '>=4'}
+
+ prettier-linter-helpers@1.0.1:
+ resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==}
+ engines: {node: '>=6.0.0'}
+
+ prettier@2.8.8:
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+
+ prettier@3.8.3:
+ resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ pretty-ms@9.3.0:
+ resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==}
+ engines: {node: '>=18'}
+
+ printf@0.6.1:
+ resolution: {integrity: sha512-is0ctgGdPJ5951KulgfzvHGwJtZ5ck8l042vRkV6jrkpBzTmb/lueTqguWHy2JfVA+RY6gFVlaZgUS0j7S/dsw==}
+ engines: {node: '>= 0.9.0'}
+
+ private@0.1.8:
+ resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==}
+ engines: {node: '>= 0.6'}
+
+ proc-log@3.0.0:
+ resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ proc-log@6.1.0:
+ resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==}
+ engines: {node: ^20.17.0 || >=22.9.0}
+
+ process-nextick-args@2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+
+ process-relative-require@1.0.0:
+ resolution: {integrity: sha512-r8G5WJPozMJAiv8sDdVWKgJ4In/zBXqwJdMCGAXQt2Kd3HdbAuJVzWYM4JW150hWoaI9DjhtbjcsCCHIMxm8RA==}
+
+ process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+
+ promise-inflight@1.0.1:
+ resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
+ peerDependencies:
+ bluebird: '*'
+ peerDependenciesMeta:
+ bluebird:
+ optional: true
+
+ promise-map-series@0.2.3:
+ resolution: {integrity: sha512-wx9Chrutvqu1N/NHzTayZjE1BgIwt6SJykQoCOic4IZ9yUDjKyVYrpLa/4YCNsV61eRENfs29hrEquVuB13Zlw==}
+
+ promise-map-series@0.3.0:
+ resolution: {integrity: sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA==}
+ engines: {node: 10.* || >= 12.*}
+
+ promise.hash.helper@1.0.8:
+ resolution: {integrity: sha512-KYcnXctWUWyVD3W3Ye0ZDuA1N8Szrh85cVCxpG6xYrOk/0CttRtYCmU30nWsUch0NuExQQ63QXvzRE6FLimZmg==}
+ engines: {node: 10.* || >= 12.*}
+
+ proper-lockfile@4.1.2:
+ resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
+
+ prosemirror-changeset@2.4.1:
+ resolution: {integrity: sha512-96WBLhOaYhJ+kPhLg3uW359Tz6I/MfcrQfL4EGv4SrcqKEMC1gmoGrXHecPE8eOwTVCJ4IwgfzM8fFad25wNfw==}
+
+ prosemirror-collab@1.3.1:
+ resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==}
+
+ prosemirror-commands@1.7.1:
+ resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==}
+
+ prosemirror-dropcursor@1.8.2:
+ resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==}
+
+ prosemirror-gapcursor@1.4.1:
+ resolution: {integrity: sha512-pMdYaEnjNMSwl11yjEGtgTmLkR08m/Vl+Jj443167p9eB3HVQKhYCc4gmHVDsLPODfZfjr/MmirsdyZziXbQKw==}
+
+ prosemirror-history@1.5.0:
+ resolution: {integrity: sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==}
+
+ prosemirror-inputrules@1.5.1:
+ resolution: {integrity: sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==}
+
+ prosemirror-keymap@1.2.3:
+ resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==}
+
+ prosemirror-markdown@1.13.4:
+ resolution: {integrity: sha512-D98dm4cQ3Hs6EmjK500TdAOew4Z03EV71ajEFiWra3Upr7diytJsjF4mPV2dW+eK5uNectiRj0xFxYI9NLXDbw==}
+
+ prosemirror-menu@1.3.2:
+ resolution: {integrity: sha512-6VgUJTYod0nMBlCaYJGhXGLu7Gt4AvcwcOq0YfJCY/6Uh+3S7UsWhpy6rJFCBFOmonq1hD8KyWOtZhkppd4YPg==}
+
+ prosemirror-model@1.25.7:
+ resolution: {integrity: sha512-A79aN8QEFUwI6cax8Yq4Rpcx1TJZ3Kagn+ii7qLo4/V8H3mMiHrhFyhTyHHvpSnOgMPpWiDGSwM3etwrxE50ug==}
+
+ prosemirror-schema-basic@1.2.4:
+ resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==}
+
+ prosemirror-schema-list@1.5.1:
+ resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==}
+
+ prosemirror-state@1.4.4:
+ resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==}
+
+ prosemirror-tables@1.8.5:
+ resolution: {integrity: sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==}
+
+ prosemirror-trailing-node@3.0.0:
+ resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==}
+ peerDependencies:
+ prosemirror-model: ^1.22.1
+ prosemirror-state: ^1.4.2
+ prosemirror-view: ^1.33.8
+
+ prosemirror-transform@1.12.0:
+ resolution: {integrity: sha512-GxboyN4AMIsoHNtz5uf2r2Ru551i5hWeCMD6E2Ib4Eogqoub0NflniaBPVQ4MrGE5yZ8JV9tUHg9qcZTTrcN4w==}
+
+ prosemirror-view@1.41.8:
+ resolution: {integrity: sha512-TnKDdohEatgyZNGCDWIdccOHXhYloJwbwU+phw/a23KBvJIR9lWQWW7WHHK3vBdOLDNuF7TaX98GObUZOWkOnA==}
+
+ proxy-addr@2.0.7:
+ resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
+ engines: {node: '>= 0.10'}
+
+ prr@1.0.1:
+ resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
+
+ public-encrypt@4.0.3:
+ resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==}
+
+ pump@2.0.1:
+ resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==}
+
+ pump@3.0.4:
+ resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==}
+
+ pumpify@1.5.1:
+ resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==}
+
+ punycode.js@2.3.1:
+ resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
+ engines: {node: '>=6'}
+
+ punycode@1.4.1:
+ resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ qs@6.15.2:
+ resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==}
+ engines: {node: '>=0.6'}
+
+ querystring-es3@0.2.1:
+ resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==}
+ engines: {node: '>=0.4.x'}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ quick-lru@5.1.1:
+ resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
+ engines: {node: '>=10'}
+
+ quick-temp@0.1.9:
+ resolution: {integrity: sha512-yI0h7tIhKVObn03kD+Ln9JFi4OljD28lfaOsTdfpTR0xzrhGOod+q66CjGafUqYX2juUfT9oHIGrTBBo22mkRA==}
+
+ qunit-dom@2.0.0:
+ resolution: {integrity: sha512-mElzLN99wYPOGekahqRA+mq7NcThXY9c+/tDkgJmT7W5LeZAFNyITr2rFKNnCbWLIhuLdFw88kCBMrJSfyBYpA==}
+ engines: {node: 12.* || 14.* || >= 16.*}
+
+ qunit-theme-ember@1.0.0:
+ resolution: {integrity: sha512-vdMVVo6ecdCkWttMTKeyq1ZTLGHcA6zdze2zhguNuc3ritlJMhOXY5RDseqazOwqZVfCg3rtlmL3fMUyIzUyFQ==}
+
+ qunit@2.26.0:
+ resolution: {integrity: sha512-KSv16YomcYmiK90qTOJl3Bm5IvTf2upqQDdBQWCvSQWe94FWobnUgKOpvpvZdG7VkDt3TJSI8k8g9+GGGEd7Fw==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
+ randomfill@1.0.4:
+ resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==}
+
+ range-parser@1.2.1:
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
+ engines: {node: '>= 0.6'}
+
+ raw-body@1.1.7:
+ resolution: {integrity: sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==}
+ engines: {node: '>= 0.8.0'}
+ deprecated: No longer maintained. Please upgrade to a stable version.
+
+ raw-body@2.5.3:
+ resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==}
+ engines: {node: '>= 0.8'}
+
+ raw-body@3.0.2:
+ resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==}
+ engines: {node: '>= 0.10'}
+
+ rc@1.2.8:
+ resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
+ hasBin: true
+
+ read-cache@1.0.0:
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+
+ read-pkg-up@8.0.0:
+ resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
+ engines: {node: '>=12'}
+
+ read-pkg@6.0.0:
+ resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
+ engines: {node: '>=12'}
+
+ readable-stream@1.0.34:
+ resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==}
+
+ readable-stream@2.3.8:
+ resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+
+ readdirp@2.2.1:
+ resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==}
+ engines: {node: '>=0.10'}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ readdirp@5.0.0:
+ resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==}
+ engines: {node: '>= 20.19.0'}
+
+ recast@0.18.10:
+ resolution: {integrity: sha512-XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==}
+ engines: {node: '>= 4'}
+
+ redent@4.0.0:
+ resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
+ engines: {node: '>=12'}
+
+ redeyed@1.0.1:
+ resolution: {integrity: sha512-8eEWsNCkV2rvwKLS1Cvp5agNjMhwRe2um+y32B2+3LqOzg4C9BBPs6vzAfV16Ivb8B9HPNKIqd8OrdBws8kNlQ==}
+
+ reflect.getprototypeof@1.0.10:
+ resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
+ engines: {node: '>= 0.4'}
+
+ regenerate-unicode-properties@10.2.2:
+ resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==}
+ engines: {node: '>=4'}
+
+ regenerate@1.4.2:
+ resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+
+ regenerator-runtime@0.11.1:
+ resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==}
+
+ regenerator-runtime@0.13.11:
+ resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
+
+ regex-not@1.0.2:
+ resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
+ engines: {node: '>=0.10.0'}
+
+ regexp.prototype.flags@1.5.4:
+ resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
+ engines: {node: '>= 0.4'}
+
+ regexpu-core@6.4.0:
+ resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==}
+ engines: {node: '>=4'}
+
+ registry-auth-token@4.2.2:
+ resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==}
+ engines: {node: '>=6.0.0'}
+
+ registry-url@5.1.0:
+ resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==}
+ engines: {node: '>=8'}
+
+ regjsgen@0.8.0:
+ resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==}
+
+ regjsparser@0.13.1:
+ resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==}
+ hasBin: true
+
+ remote-git-tags@3.0.0:
+ resolution: {integrity: sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==}
+ engines: {node: '>=8'}
+
+ remote-promises@1.0.0:
+ resolution: {integrity: sha512-+9LztCwsGzC8VXvm9UuA3qGhLIf4HvMbbev0+A+azLLUYHm3BK4C1BWxiZa45FPQ7JdfpHi4kVT7zT5F2E0iuQ==}
+ deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
+
+ remove-trailing-separator@1.1.0:
+ resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
+
+ remove-types@1.0.0:
+ resolution: {integrity: sha512-G7Hk1Q+UJ5DvlNAoJZObxANkBZGiGdp589rVcTW/tYqJWJ5rwfraSnKSQaETN8Epaytw8J40nS/zC7bcHGv36w==}
+
+ repeat-element@1.1.4:
+ resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
+ engines: {node: '>=0.10.0'}
+
+ repeat-string@1.6.1:
+ resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
+ engines: {node: '>=0.10'}
+
+ repeating@2.0.1:
+ resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==}
+ engines: {node: '>=0.10.0'}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
+ requireindex@1.2.0:
+ resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==}
+ engines: {node: '>=0.10.5'}
+
+ requires-port@1.0.0:
+ resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+
+ reselect@3.0.1:
+ resolution: {integrity: sha512-b/6tFZCmRhtBMa4xGqiiRp9jh9Aqi2A687Lo265cN0/QohJQEBPiQ52f4QB6i0eF3yp3hmLL21LSGBcML2dlxA==}
+
+ reselect@4.1.8:
+ resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==}
+
+ resolve-dir@1.0.1:
+ resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==}
+ engines: {node: '>=0.10.0'}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+
+ resolve-package-path@1.2.7:
+ resolution: {integrity: sha512-fVEKHGeK85bGbVFuwO9o1aU0n3vqQGrezPc51JGu9UTXpFQfWq5qCeKxyaRUSvephs+06c5j5rPq/dzHGEo8+Q==}
+
+ resolve-package-path@2.0.0:
+ resolution: {integrity: sha512-/CLuzodHO2wyyHTzls5Qr+EFeG6RcW4u6//gjYvUfcfyuplIX1SSccU+A5A9A78Gmezkl3NBkFAMxLbzTY9TJA==}
+ engines: {node: 8.* || 10.* || >= 12}
+
+ resolve-package-path@3.1.0:
+ resolution: {integrity: sha512-2oC2EjWbMJwvSN6Z7DbDfJMnD8MYEouaLn5eIX0j8XwPsYCVIyY9bbnX88YHVkbr8XHqvZrYbxaLPibfTYKZMA==}
+ engines: {node: 10.* || >= 12}
+
+ resolve-package-path@4.0.3:
+ resolution: {integrity: sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA==}
+ engines: {node: '>= 12'}
+
+ resolve-path@1.4.0:
+ resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==}
+ engines: {node: '>= 0.8'}
+
+ resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
+ resolve-url@0.2.1:
+ resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
+ deprecated: https://github.com/lydell/resolve-url#deprecated
+
+ resolve.exports@2.0.3:
+ resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
+ engines: {node: '>=10'}
+
+ resolve@1.22.12:
+ resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
+ responselike@1.0.2:
+ resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==}
+
+ restore-cursor@2.0.0:
+ resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==}
+ engines: {node: '>=4'}
+
+ restore-cursor@3.1.0:
+ resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
+ engines: {node: '>=8'}
+
+ ret@0.1.15:
+ resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
+ engines: {node: '>=0.12'}
+
+ retry@0.12.0:
+ resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
+ engines: {node: '>= 4'}
+
+ reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rimraf@2.6.3:
+ resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ rimraf@2.7.1:
+ resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ rimraf@5.0.10:
+ resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==}
+ hasBin: true
+
+ rimraf@6.1.3:
+ resolution: {integrity: sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
+ ripemd160@2.0.3:
+ resolution: {integrity: sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==}
+ engines: {node: '>= 0.8'}
+
+ rollup-pluginutils@2.8.2:
+ resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==}
+
+ rollup@2.80.0:
+ resolution: {integrity: sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+
+ rope-sequence@1.3.4:
+ resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==}
+
+ route-recognizer@0.3.4:
+ resolution: {integrity: sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==}
+
+ router@2.2.0:
+ resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==}
+ engines: {node: '>= 18'}
+
+ router_js@8.0.6:
+ resolution: {integrity: sha512-AjGxRDIpTGoAG8admFmvP/cxn1AlwwuosCclMU4R5oGHGt7ER0XtB3l9O04ToBDdPe4ivM/YcLopgBEpJssJ/Q==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ route-recognizer: ^0.3.4
+ rsvp: ^4.8.5
+
+ rsvp@3.2.1:
+ resolution: {integrity: sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==}
+
+ rsvp@3.6.2:
+ resolution: {integrity: sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==}
+ engines: {node: 0.12.* || 4.* || 6.* || >= 7.*}
+
+ rsvp@4.8.5:
+ resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==}
+ engines: {node: 6.* || >= 7.*}
+
+ run-async@2.4.1:
+ resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
+ engines: {node: '>=0.12.0'}
+
+ run-async@3.0.0:
+ resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==}
+ engines: {node: '>=0.12.0'}
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ run-queue@1.0.3:
+ resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==}
+
+ rxjs@6.6.7:
+ resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==}
+ engines: {npm: '>=2.0.0'}
+
+ rxjs@7.8.2:
+ resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
+
+ safe-array-concat@1.1.4:
+ resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==}
+ engines: {node: '>=0.4'}
+
+ safe-buffer@5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safe-json-parse@1.0.1:
+ resolution: {integrity: sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==}
+
+ safe-push-apply@1.0.0:
+ resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
+ engines: {node: '>= 0.4'}
+
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+
+ safe-regex@1.1.0:
+ resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
+
+ safe-stable-stringify@2.5.0:
+ resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
+ engines: {node: '>=10'}
+
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ sane@4.1.0:
+ resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+ deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
+ hasBin: true
+
+ sane@5.0.1:
+ resolution: {integrity: sha512-9/0CYoRz0MKKf04OMCO3Qk3RQl1PAwWAhPSQSym4ULiLpTZnrY1JoZU0IEikHu8kdk2HvKT/VwQMq/xFZ8kh1Q==}
+ engines: {node: 10.* || >= 12.*}
+ hasBin: true
+
+ sc-errors@2.0.3:
+ resolution: {integrity: sha512-HNpClBWpo7zxLBnhH0U/FbC19Gl3OJlVyPxo9Q2eomfdWgYfd84uhqe0LRgybc+nSpcYjtF08+/dKPLugLMMeQ==}
+
+ sc-errors@3.0.0:
+ resolution: {integrity: sha512-rIqv2HTPb9DVreZwK/DV0ytRUqyw2DbDcoB9XTKjEQL7oMEQKsfPA8V8dGGr7p8ZYfmvaRIGZ4Wu5qwvs/hGDA==}
+
+ sc-formatter@4.0.0:
+ resolution: {integrity: sha512-MgUIvuca+90fBrCWY5LdlU9YUWjlkPFwdpvmomcwQEu3t2id/6YHdG2nhB6o7nhRp4ocfmcXQTh00r/tJtynSg==}
+
+ schema-utils@1.0.0:
+ resolution: {integrity: sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==}
+ engines: {node: '>= 4'}
+
+ schema-utils@2.7.1:
+ resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==}
+ engines: {node: '>= 8.9.0'}
+
+ schema-utils@3.3.0:
+ resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
+ engines: {node: '>= 10.13.0'}
+
+ schema-utils@4.3.3:
+ resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==}
+ engines: {node: '>= 10.13.0'}
+
+ semver@5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ semver@7.8.1:
+ resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ send@0.19.2:
+ resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==}
+ engines: {node: '>= 0.8.0'}
+
+ send@1.2.1:
+ resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==}
+ engines: {node: '>= 18'}
+
+ serialize-javascript@4.0.0:
+ resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==}
+
+ serve-static@1.16.3:
+ resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==}
+ engines: {node: '>= 0.8.0'}
+
+ serve-static@2.2.1:
+ resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==}
+ engines: {node: '>= 18'}
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
+
+ set-proto@1.0.0:
+ resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
+ engines: {node: '>= 0.4'}
+
+ set-value@2.0.1:
+ resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
+ engines: {node: '>=0.10.0'}
+
+ setimmediate@1.0.5:
+ resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
+
+ setprototypeof@1.1.0:
+ resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
+
+ setprototypeof@1.2.0:
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+
+ sha.js@2.4.12:
+ resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==}
+ engines: {node: '>= 0.10'}
+ hasBin: true
+
+ shallow-clone@3.0.1:
+ resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
+ engines: {node: '>=8'}
+
+ shebang-command@1.2.0:
+ resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
+ engines: {node: '>=0.10.0'}
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@1.0.0:
+ resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
+ engines: {node: '>=0.10.0'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ shell-quote@1.8.4:
+ resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==}
+ engines: {node: '>= 0.4'}
+
+ shellwords@0.1.1:
+ resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==}
+
+ side-channel-list@1.0.1:
+ resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
+
+ side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ engines: {node: '>= 0.4'}
+
+ signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
+ signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+
+ silent-error@1.1.1:
+ resolution: {integrity: sha512-n4iEKyNcg4v6/jpb3c0/iyH2G1nzUNl7Gpqtn/mHIJK9S/q/7MCfoO4rwVOoO59qPFIc0hVHvMbiOJ0NdtxKKw==}
+
+ simple-html-tokenizer@0.5.11:
+ resolution: {integrity: sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==}
+
+ slash@1.0.0:
+ resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==}
+ engines: {node: '>=0.10.0'}
+
+ slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+
+ slash@4.0.0:
+ resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
+ engines: {node: '>=12'}
+
+ slice-ansi@4.0.0:
+ resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
+ engines: {node: '>=10'}
+
+ snake-case@3.0.4:
+ resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
+
+ snapdragon-node@2.1.1:
+ resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
+ engines: {node: '>=0.10.0'}
+
+ snapdragon-util@3.0.1:
+ resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
+ engines: {node: '>=0.10.0'}
+
+ snapdragon@0.8.2:
+ resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
+ engines: {node: '>=0.10.0'}
+
+ socket.io-adapter@2.5.7:
+ resolution: {integrity: sha512-e0LyK91f3cUxTmv95/KzoLg47+zF+s/sbxRGDNsyG4dmIP8ZSX8ax6byOxfJXeNNtS/8AZlfD+uP7gBeR7DLlg==}
+
+ socket.io-parser@4.2.6:
+ resolution: {integrity: sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==}
+ engines: {node: '>=10.0.0'}
+
+ socket.io@4.8.3:
+ resolution: {integrity: sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==}
+ engines: {node: '>=10.2.0'}
+
+ socketcluster-client@17.2.2:
+ resolution: {integrity: sha512-HIopjTj8p979N5klC7FeZSwu9rd805bFgFcyVX7Y8zPyjVHXHTfGrV/8vqzN2gpOwnnosWQ44ue0qGqovlxZrg==}
+
+ sort-object-keys@1.1.3:
+ resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==}
+
+ sort-package-json@1.57.0:
+ resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==}
+ hasBin: true
+
+ source-list-map@2.0.1:
+ resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ source-map-resolve@0.5.3:
+ resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
+ deprecated: See https://github.com/lydell/source-map-resolve#deprecated
+
+ source-map-support@0.4.18:
+ resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==}
+
+ source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+ source-map-url@0.3.0:
+ resolution: {integrity: sha512-QU4fa0D6aSOmrT+7OHpUXw+jS84T0MLaQNtFs8xzLNe6Arj44Magd7WEbyVW5LNYoAPVV35aKs4azxIfVJrToQ==}
+ deprecated: See https://github.com/lydell/source-map-url#deprecated
+
+ source-map-url@0.4.1:
+ resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
+ deprecated: See https://github.com/lydell/source-map-url#deprecated
+
+ source-map@0.4.4:
+ resolution: {integrity: sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==}
+ engines: {node: '>=0.8.0'}
+
+ source-map@0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ sourcemap-codec@1.4.8:
+ resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
+ deprecated: Please use @jridgewell/sourcemap-codec instead
+
+ spawn-args@0.2.0:
+ resolution: {integrity: sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg==}
+
+ spawn-command@0.0.2:
+ resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==}
+
+ spdx-correct@3.2.0:
+ resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+ spdx-exceptions@2.5.0:
+ resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+ spdx-expression-parse@3.0.1:
+ resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+ spdx-license-ids@3.0.23:
+ resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==}
+
+ split-string@3.1.0:
+ resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
+ engines: {node: '>=0.10.0'}
+
+ sprintf-js@1.1.3:
+ resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+
+ sri-toolbox@0.2.0:
+ resolution: {integrity: sha512-DQIMWCAr/M7phwo+d3bEfXwSBEwuaJL+SJx9cuqt1Ty7K96ZFoHpYnSbhrQZEr0+0/GtmpKECP8X/R4RyeTAfw==}
+ engines: {node: '>= 0.10.4'}
+
+ ssri@6.0.2:
+ resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==}
+
+ stagehand@1.0.1:
+ resolution: {integrity: sha512-GqXBq2SPWv9hTXDFKS8WrKK1aISB0aKGHZzH+uD4ShAgs+Fz20ZfoerLOm8U+f62iRWLrw6nimOY/uYuTcVhvg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ static-extend@0.1.2:
+ resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
+ engines: {node: '>=0.10.0'}
+
+ statuses@1.5.0:
+ resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
+ engines: {node: '>= 0.6'}
+
+ statuses@2.0.2:
+ resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
+ engines: {node: '>= 0.8'}
+
+ stop-iteration-iterator@1.1.0:
+ resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
+ engines: {node: '>= 0.4'}
+
+ stream-browserify@2.0.2:
+ resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==}
+
+ stream-demux@8.1.0:
+ resolution: {integrity: sha512-20vtOmAj2EVzQZKZVmfyio16u/3QOKSvg+0ldgZeS+m2FNI1vKFoqggamagsPCXufdZ1Tk8VvAM/HV/YUmRbSg==}
+
+ stream-each@1.2.3:
+ resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==}
+
+ stream-http@2.8.3:
+ resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==}
+
+ stream-shift@1.0.3:
+ resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==}
+
+ string-template@0.2.1:
+ resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==}
+
+ string-width@2.1.1:
+ resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==}
+ engines: {node: '>=4'}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
+ string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+
+ string.prototype.matchall@4.0.12:
+ resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trim@1.2.10:
+ resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimend@1.0.9:
+ resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimstart@1.0.8:
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+ engines: {node: '>= 0.4'}
+
+ string_decoder@0.10.31:
+ resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
+
+ string_decoder@1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
+ strip-ansi@3.0.1:
+ resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
+ engines: {node: '>=0.10.0'}
+
+ strip-ansi@4.0.0:
+ resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==}
+ engines: {node: '>=4'}
+
+ strip-ansi@5.2.0:
+ resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==}
+ engines: {node: '>=6'}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ strip-ansi@7.2.0:
+ resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==}
+ engines: {node: '>=12'}
+
+ strip-bom@4.0.0:
+ resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
+ engines: {node: '>=8'}
+
+ strip-eof@1.0.0:
+ resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
+ engines: {node: '>=0.10.0'}
+
+ strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+
+ strip-final-newline@4.0.0:
+ resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
+ engines: {node: '>=18'}
+
+ strip-indent@4.1.1:
+ resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==}
+ engines: {node: '>=12'}
+
+ strip-json-comments@2.0.1:
+ resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
+ engines: {node: '>=0.10.0'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ style-loader@2.0.0:
+ resolution: {integrity: sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ webpack: ^4.0.0 || ^5.0.0
+
+ style-search@0.1.0:
+ resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==}
+
+ styled_string@0.0.1:
+ resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==}
+
+ stylelint-config-recommended@13.0.0:
+ resolution: {integrity: sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+ peerDependencies:
+ stylelint: ^15.10.0
+
+ stylelint-config-standard@34.0.0:
+ resolution: {integrity: sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+ peerDependencies:
+ stylelint: ^15.10.0
+
+ stylelint-prettier@4.1.0:
+ resolution: {integrity: sha512-dd653q/d1IfvsSQshz1uAMe+XDm6hfM/7XiFH0htYY8Lse/s5ERTg7SURQehZPwVvm/rs7AsFhda9EQ2E9TS0g==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ prettier: '>=3.0.0'
+ stylelint: '>=15.8.0'
+
+ stylelint@15.11.0:
+ resolution: {integrity: sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+ hasBin: true
+
+ sucrase@3.35.1:
+ resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+
+ sugarss@4.0.1:
+ resolution: {integrity: sha512-WCjS5NfuVJjkQzK10s8WOBY+hhDxxNt/N6ZaGwxFZ+wN3/lKKFSaaKUNecULcTTvE4urLcKaZFQD8vO0mOZujw==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.3.3
+
+ sum-up@1.0.3:
+ resolution: {integrity: sha512-zw5P8gnhiqokJUWRdR6F4kIIIke0+ubQSGyYUY506GCbJWtV7F6Xuy0j6S125eSX2oF+a8KdivsZ8PlVEH0Mcw==}
+
+ supports-color@2.0.0:
+ resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
+ engines: {node: '>=0.8.0'}
+
+ supports-color@5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+
+ supports-hyperlinks@3.2.0:
+ resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==}
+ engines: {node: '>=14.18'}
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ svelte@5.56.1:
+ resolution: {integrity: sha512-eArsJmvl3xZVuTYD852PzIEdg2wgDdIZ1NEsIPbzAukHwi284B18No4nK2rCO9AwsWUDza4Cjvmoa4HaojTl5g==}
+ engines: {node: '>=18'}
+
+ svg-tags@1.0.0:
+ resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
+
+ symlink-or-copy@1.3.1:
+ resolution: {integrity: sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==}
+
+ sync-disk-cache@1.3.4:
+ resolution: {integrity: sha512-GlkGeM81GPPEKz/lH7QUTbvqLq7K/IUTuaKDSMulP9XQ42glqNJIN/RKgSOw4y8vxL1gOVvj+W7ruEO4s36eCw==}
+
+ sync-disk-cache@2.1.0:
+ resolution: {integrity: sha512-vngT2JmkSapgq0z7uIoYtB9kWOOzMihAAYq/D3Pjm/ODOGMgS4r++B+OZ09U4hWR6EaOdy9eqQ7/8ygbH3wehA==}
+ engines: {node: 8.* || >= 10.*}
+
+ synckit@0.11.13:
+ resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
+ tabbable@6.4.0:
+ resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==}
+
+ table@6.9.0:
+ resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==}
+ engines: {node: '>=10.0.0'}
+
+ tailwindcss@3.4.19:
+ resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
+ tap-parser@18.3.4:
+ resolution: {integrity: sha512-CiqzdpWn2CvONcWp7UNMF9/rCPJwCz0es+qykkgJruu1Y/rAS8A5MEQujmjx9NErfst3dGiZJU3lDS2jBsgbPA==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
+ tap-yaml@4.4.2:
+ resolution: {integrity: sha512-03mQI7QhfVZHJqGgFyxNTgUbgsG41ZzpWSb7k1Gangmf9hF71Jpb0Fczs7KtOdUDaHx+KxlPUdM2pQJaijebGA==}
+ engines: {node: 20 || >=22}
+
+ tapable@1.1.3:
+ resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
+ engines: {node: '>=6'}
+
+ tapable@2.3.3:
+ resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==}
+ engines: {node: '>=6'}
+
+ temp@0.9.4:
+ resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==}
+ engines: {node: '>=6.0.0'}
+
+ terser-webpack-plugin@1.4.6:
+ resolution: {integrity: sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==}
+ engines: {node: '>= 6.9.0'}
+ peerDependencies:
+ webpack: ^4.0.0
+
+ terser-webpack-plugin@5.6.1:
+ resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ '@minify-html/node': '*'
+ '@swc/core': '*'
+ '@swc/css': '*'
+ '@swc/html': '*'
+ clean-css: '*'
+ cssnano: '*'
+ csso: '*'
+ esbuild: '*'
+ html-minifier-terser: '*'
+ lightningcss: '*'
+ postcss: '*'
+ uglify-js: '*'
+ webpack: ^5.1.0
+ peerDependenciesMeta:
+ '@minify-html/node':
+ optional: true
+ '@swc/core':
+ optional: true
+ '@swc/css':
+ optional: true
+ '@swc/html':
+ optional: true
+ clean-css:
+ optional: true
+ cssnano:
+ optional: true
+ csso:
+ optional: true
+ esbuild:
+ optional: true
+ html-minifier-terser:
+ optional: true
+ lightningcss:
+ optional: true
+ postcss:
+ optional: true
+ uglify-js:
+ optional: true
+
+ terser@4.8.1:
+ resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ terser@5.48.0:
+ resolution: {integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ testem@3.20.1:
+ resolution: {integrity: sha512-HMbcVlrRDt+GjEGJZrPSCp0XFzM7SSdmLvNSJm++hIITEIMoccCQGikvelOO/NjfZJ0HTZCEyvg3+CIStjaZqQ==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+ hasBin: true
+
+ text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+
+ textextensions@2.6.0:
+ resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==}
+ engines: {node: '>=0.8'}
+
+ thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+
+ thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+
+ through2@2.0.5:
+ resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
+
+ through2@3.0.2:
+ resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==}
+
+ through@2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+
+ timers-browserify@2.0.12:
+ resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==}
+ engines: {node: '>=0.6.0'}
+
+ tiny-glob@0.2.9:
+ resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
+
+ tiny-lr@2.0.0:
+ resolution: {integrity: sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q==}
+
+ tinyglobby@0.2.17:
+ resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
+ engines: {node: '>=12.0.0'}
+
+ tmp@0.0.28:
+ resolution: {integrity: sha512-c2mmfiBmND6SOVxzogm1oda0OJ1HZVIk/5n26N59dDTh80MUeavpiCls4PGAdkX1PFkKokLpcf7prSjCeXLsJg==}
+ engines: {node: '>=0.4.0'}
+
+ tmp@0.0.33:
+ resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
+ engines: {node: '>=0.6.0'}
+
+ tmp@0.1.0:
+ resolution: {integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==}
+ engines: {node: '>=6'}
+
+ tmp@0.2.7:
+ resolution: {integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==}
+ engines: {node: '>=14.14'}
+
+ tmpl@1.0.5:
+ resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
+
+ to-arraybuffer@1.0.1:
+ resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==}
+
+ to-buffer@1.2.2:
+ resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==}
+ engines: {node: '>= 0.4'}
+
+ to-fast-properties@1.0.3:
+ resolution: {integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==}
+ engines: {node: '>=0.10.0'}
+
+ to-object-path@0.3.0:
+ resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
+ engines: {node: '>=0.10.0'}
+
+ to-readable-stream@1.0.0:
+ resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==}
+ engines: {node: '>=6'}
+
+ to-regex-range@2.1.1:
+ resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
+ engines: {node: '>=0.10.0'}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ to-regex@3.0.2:
+ resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
+ engines: {node: '>=0.10.0'}
+
+ toasted-notifier@10.1.0:
+ resolution: {integrity: sha512-SvAufC4t75lRqwQtComPeDC93j8Toy3BRsD1cMIZ+YdfxTnIyxQb+YCuhXohNFDGJPI+RgOYImkDX76fTo1YDA==}
+
+ toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+ tracked-built-ins@3.4.0:
+ resolution: {integrity: sha512-aRwWQXC3VkY50oYxS7wKZiavkjf3uaN+UYUH30D5gxUqbxDN2LnNsfWyDfckmxHUGw4gJDH5lpRS0jX/tim0vw==}
+
+ tree-kill@1.2.2:
+ resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
+ hasBin: true
+
+ tree-sync@1.4.0:
+ resolution: {integrity: sha512-YvYllqh3qrR5TAYZZTXdspnIhlKAYezPYw11ntmweoceu4VK+keN356phHRIIo1d+RDmLpHZrUlmxga2gc9kSQ==}
+
+ tree-sync@2.1.0:
+ resolution: {integrity: sha512-OLWW+Nd99NOM53aZ8ilT/YpEiOo6mXD3F4/wLbARqybSZ3Jb8IxHK5UGVbZaae0wtXAyQshVV+SeqVBik+Fbmw==}
+ engines: {node: '>=8'}
+
+ trim-newlines@4.1.1:
+ resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
+ engines: {node: '>=12'}
+
+ trim-right@1.0.1:
+ resolution: {integrity: sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==}
+ engines: {node: '>=0.10.0'}
+
+ ts-interface-checker@0.1.13:
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+
+ tslib@1.14.1:
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ tty-browserify@0.0.0:
+ resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==}
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ type-fest@0.11.0:
+ resolution: {integrity: sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==}
+ engines: {node: '>=8'}
+
+ type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+
+ type-fest@0.21.3:
+ resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
+ engines: {node: '>=10'}
+
+ type-fest@1.4.0:
+ resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
+ engines: {node: '>=10'}
+
+ type-fest@4.41.0:
+ resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
+ engines: {node: '>=16'}
+
+ type-is@1.6.18:
+ resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
+ engines: {node: '>= 0.6'}
+
+ type-is@2.1.0:
+ resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==}
+ engines: {node: '>= 18'}
+
+ typed-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-length@1.0.3:
+ resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-offset@1.0.4:
+ resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-length@1.0.8:
+ resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==}
+ engines: {node: '>= 0.4'}
+
+ typedarray-to-buffer@3.1.5:
+ resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
+
+ typedarray@0.0.6:
+ resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
+
+ typescript-memoize@1.1.1:
+ resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==}
+
+ uc.micro@1.0.6:
+ resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
+
+ uc.micro@2.1.0:
+ resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
+
+ uglify-js@3.19.3:
+ resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+
+ unbox-primitive@1.1.0:
+ resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
+ engines: {node: '>= 0.4'}
+
+ underscore.string@3.3.6:
+ resolution: {integrity: sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==}
+
+ underscore@1.13.8:
+ resolution: {integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==}
+
+ undici-types@7.24.6:
+ resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==}
+
+ unicode-canonical-property-names-ecmascript@2.0.1:
+ resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
+ engines: {node: '>=4'}
+
+ unicode-match-property-ecmascript@2.0.0:
+ resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
+ engines: {node: '>=4'}
+
+ unicode-match-property-value-ecmascript@2.2.1:
+ resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==}
+ engines: {node: '>=4'}
+
+ unicode-property-aliases-ecmascript@2.2.0:
+ resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==}
+ engines: {node: '>=4'}
+
+ unicorn-magic@0.3.0:
+ resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
+ engines: {node: '>=18'}
+
+ union-value@1.0.1:
+ resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
+ engines: {node: '>=0.10.0'}
+
+ unique-filename@1.1.1:
+ resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
+
+ unique-slug@2.0.2:
+ resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
+
+ unique-string@2.0.0:
+ resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
+ engines: {node: '>=8'}
+
+ universalify@0.1.2:
+ resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+ engines: {node: '>= 4.0.0'}
+
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
+ unpipe@1.0.0:
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
+ engines: {node: '>= 0.8'}
+
+ unset-value@1.0.0:
+ resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
+ engines: {node: '>=0.10.0'}
+
+ upath@1.2.0:
+ resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
+ engines: {node: '>=4'}
+
+ upath@2.0.1:
+ resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==}
+ engines: {node: '>=4'}
+
+ update-browserslist-db@1.2.3:
+ resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ urix@0.1.0:
+ resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
+ deprecated: Please see https://github.com/lydell/urix#deprecated
+
+ url-parse-lax@3.0.0:
+ resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==}
+ engines: {node: '>=4'}
+
+ url@0.11.4:
+ resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==}
+ engines: {node: '>= 0.4'}
+
+ use@3.1.1:
+ resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
+ engines: {node: '>=0.10.0'}
+
+ username-sync@1.0.3:
+ resolution: {integrity: sha512-m/7/FSqjJNAzF2La448c/aEom0gJy7HY7Y509h6l0ePvEkFictAGptwWaj1msWJ38JbfEDOUoE8kqFee9EHKdA==}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ util@0.10.4:
+ resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==}
+
+ util@0.11.1:
+ resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==}
+
+ utils-merge@1.0.1:
+ resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
+ engines: {node: '>= 0.4.0'}
+
+ uuid@8.3.2:
+ resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
+ deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
+ hasBin: true
+
+ v8-compile-cache@2.4.0:
+ resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==}
+
+ validate-npm-package-license@3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
+ validate-npm-package-name@5.0.1:
+ resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ validate-peer-dependencies@1.2.0:
+ resolution: {integrity: sha512-nd2HUpKc6RWblPZQ2GDuI65sxJ2n/UqZwSBVtj64xlWjMx0m7ZB2m9b2JS3v1f+n9VWH/dd1CMhkHfP6pIdckA==}
+
+ vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+
+ vinyl-buffer@1.0.1:
+ resolution: {integrity: sha512-LRBE2/g3C1hSHL2k/FynSZcVTRhEw8sb08oKGt/0hukZXwrh2m8nfy+r5yLhGEk7eFFuclhyIuPct/Bxlxk6rg==}
+
+ vm-browserify@1.1.2:
+ resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==}
+
+ w3c-keyname@2.2.8:
+ resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
+
+ walk-sync@0.2.7:
+ resolution: {integrity: sha512-OH8GdRMowEFr0XSHQeX5fGweO6zSVHo7bG/0yJQx6LAj9Oukz0C8heI3/FYectT66gY0IPGe89kOvU410/UNpg==}
+
+ walk-sync@0.3.4:
+ resolution: {integrity: sha512-ttGcuHA/OBnN2pcM6johpYlEms7XpO5/fyKIr48541xXedan4roO8cS1Q2S/zbbjGH/BarYDAMeS2Mi9HE5Tig==}
+
+ walk-sync@1.1.4:
+ resolution: {integrity: sha512-nowc9thB/Jg0KW4TgxoRjLLYRPvl3DB/98S89r4ZcJqq2B0alNcKDh6pzLkBSkPMzRSMsJghJHQi79qw0YWEkA==}
+
+ walk-sync@2.2.0:
+ resolution: {integrity: sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==}
+ engines: {node: 8.* || >= 10.*}
+
+ walk-sync@3.0.0:
+ resolution: {integrity: sha512-41TvKmDGVpm2iuH7o+DAOt06yyu/cSHpX3uzAwetzASvlNtVddgIjXIb2DfB/Wa20B1Jo86+1Dv1CraSU7hWdw==}
+ engines: {node: 10.* || >= 12.*}
+
+ walker@1.0.8:
+ resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+
+ watch-detector@1.0.2:
+ resolution: {integrity: sha512-MrJK9z7kD5Gl3jHBnnBVHvr1saVGAfmkyyrvuNzV/oe0Gr1nwZTy5VSA0Gw2j2Or0Mu8HcjUa44qlBvC2Ofnpg==}
+ engines: {node: '>= 8'}
+
+ watchpack-chokidar2@2.0.1:
+ resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==}
+
+ watchpack@1.7.5:
+ resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==}
+
+ watchpack@2.5.1:
+ resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==}
+ engines: {node: '>=10.13.0'}
+
+ wcwidth@1.0.1:
+ resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+ webpack-sources@1.4.3:
+ resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==}
+
+ webpack-sources@3.5.0:
+ resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==}
+ engines: {node: '>=10.13.0'}
+
+ webpack@4.47.0:
+ resolution: {integrity: sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==}
+ engines: {node: '>=6.11.5'}
+ hasBin: true
+ peerDependencies:
+ webpack-cli: '*'
+ webpack-command: '*'
+ peerDependenciesMeta:
+ webpack-cli:
+ optional: true
+ webpack-command:
+ optional: true
+
+ webpack@5.107.2:
+ resolution: {integrity: sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ peerDependencies:
+ webpack-cli: '*'
+ peerDependenciesMeta:
+ webpack-cli:
+ optional: true
+
+ websocket-driver@0.7.4:
+ resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
+ engines: {node: '>=0.8.0'}
+
+ websocket-extensions@0.1.4:
+ resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
+ engines: {node: '>=0.8.0'}
+
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
+ which-boxed-primitive@1.1.1:
+ resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
+ engines: {node: '>= 0.4'}
+
+ which-builtin-type@1.2.1:
+ resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
+ engines: {node: '>= 0.4'}
+
+ which-collection@1.0.2:
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
+ engines: {node: '>= 0.4'}
+
+ which-typed-array@1.1.21:
+ resolution: {integrity: sha512-zbRA8cVm6io/d5W8uIe2hblzN76/Wm3v/yiythQvr+dpBWeqhPSWIDNj4zOyHi4zKbMK6DN34Xsr9jPHJERAEw==}
+ engines: {node: '>= 0.4'}
+
+ which@1.3.1:
+ resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+ hasBin: true
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ wordwrap@1.0.0:
+ resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
+
+ worker-farm@1.7.0:
+ resolution: {integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==}
+
+ workerpool@3.1.2:
+ resolution: {integrity: sha512-WJFA0dGqIK7qj7xPTqciWBH5DlJQzoPjsANvc3Y4hNB0SScT+Emjvt0jPPkDBUjBNngX1q9hHgt1Gfwytu6pug==}
+
+ workerpool@6.5.1:
+ resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==}
+
+ wrap-ansi@6.2.0:
+ resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
+ engines: {node: '>=8'}
+
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
+ wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ writable-consumable-stream@3.0.1:
+ resolution: {integrity: sha512-rAOJTA/sMgXD/X6eMwbQJe49w+Fnkdx3iV5oUzdmiZ7Bwx03khqUnAKIpzp/hbI8q2EP5NfjXgIXN0MsipfHeg==}
+
+ write-file-atomic@3.0.3:
+ resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
+
+ write-file-atomic@5.0.1:
+ resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ ws@8.20.1:
+ resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ ws@8.21.0:
+ resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ xdg-basedir@4.0.0:
+ resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==}
+ engines: {node: '>=8'}
+
+ xtend@4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+
+ y18n@4.0.3:
+ resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
+
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+ yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ yam@1.0.0:
+ resolution: {integrity: sha512-Hv9xxHtsJ9228wNhk03xnlDReUuWVvHwM4rIbjdAXYvHLs17xjuyF50N6XXFMN6N0omBaqgOok/MCK3At9fTAg==}
+ engines: {node: ^4.5 || 6.* || >= 7.*}
+
+ yaml-types@0.4.0:
+ resolution: {integrity: sha512-XfbA30NUg4/LWUiplMbiufUiwYhgB9jvBhTWel7XQqjV+GaB79c2tROu/8/Tu7jO0HvDvnKWtBk5ksWRrhQ/0g==}
+ engines: {node: '>= 16', npm: '>= 7'}
+ peerDependencies:
+ yaml: ^2.3.0
+
+ yaml@2.9.0:
+ resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==}
+ engines: {node: '>= 14.6'}
+ hasBin: true
+
+ yargs-parser@20.2.9:
+ resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
+ engines: {node: '>=10'}
+
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ yocto-queue@1.2.2:
+ resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
+ engines: {node: '>=12.20'}
+
+ yoctocolors-cjs@2.1.3:
+ resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==}
+ engines: {node: '>=18'}
+
+ yoctocolors@2.1.2:
+ resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==}
+ engines: {node: '>=18'}
+
+ zimmerframe@1.1.4:
+ resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==}
+
+snapshots:
+
+ '@alloc/quick-lru@5.2.0': {}
+
+ '@babel/code-frame@7.29.7':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.29.7
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.29.7': {}
+
+ '@babel/core@7.29.7':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/generator': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7)
+ '@babel/helpers': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/template': 7.29.7
+ '@babel/traverse': 7.29.7
+ '@babel/types': 7.29.7
+ '@jridgewell/remapping': 2.3.5
+ convert-source-map: 2.0.0
+ debug: 4.4.3
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/eslint-parser@7.29.7(@babel/core@7.29.7)(eslint@8.57.1)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
+ eslint: 8.57.1
+ eslint-visitor-keys: 2.1.0
+ semver: 6.3.1
+
+ '@babel/generator@7.29.7':
+ dependencies:
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+ jsesc: 3.1.0
+
+ '@babel/helper-annotate-as-pure@7.29.7':
+ dependencies:
+ '@babel/types': 7.29.7
+
+ '@babel/helper-compilation-targets@7.29.7':
+ dependencies:
+ '@babel/compat-data': 7.29.7
+ '@babel/helper-validator-option': 7.29.7
+ browserslist: 4.28.2
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-member-expression-to-functions': 7.29.7
+ '@babel/helper-optimise-call-expression': 7.29.7
+ '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7
+ '@babel/traverse': 7.29.7
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-annotate-as-pure': 7.29.7
+ regexpu-core: 6.4.0
+ semver: 6.3.1
+
+ '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ debug: 4.4.3
+ lodash.debounce: 4.0.8
+ resolve: 1.22.12
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-globals@7.29.7': {}
+
+ '@babel/helper-member-expression-to-functions@7.29.7':
+ dependencies:
+ '@babel/traverse': 7.29.7
+ '@babel/types': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-imports@7.29.7':
+ dependencies:
+ '@babel/traverse': 7.29.7
+ '@babel/types': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-module-imports': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-optimise-call-expression@7.29.7':
+ dependencies:
+ '@babel/types': 7.29.7
+
+ '@babel/helper-plugin-utils@7.29.7': {}
+
+ '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-wrap-function': 7.29.7
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-member-expression-to-functions': 7.29.7
+ '@babel/helper-optimise-call-expression': 7.29.7
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.29.7':
+ dependencies:
+ '@babel/traverse': 7.29.7
+ '@babel/types': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-string-parser@7.29.7': {}
+
+ '@babel/helper-validator-identifier@7.29.7': {}
+
+ '@babel/helper-validator-option@7.29.7': {}
+
+ '@babel/helper-wrap-function@7.29.7':
+ dependencies:
+ '@babel/template': 7.29.7
+ '@babel/traverse': 7.29.7
+ '@babel/types': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helpers@7.29.7':
+ dependencies:
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.7
+
+ '@babel/parser@7.29.7':
+ dependencies:
+ '@babel/types': 7.29.7
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7
+ '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-decorators@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.7)
+
+ '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-syntax-decorators@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-async-generator-functions@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7)
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-module-imports': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-class-static-block@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-globals': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7)
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/template': 7.29.7
+
+ '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-explicit-resource-management@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-for-of@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-function-name@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-systemjs@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7)
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-object-super@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-private-methods@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-private-property-in-object@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-module-imports': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.7)
+ babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-spread@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-annotate-as-pure': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.29.7
+ '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-typescript@7.4.5(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7)
+
+ '@babel/plugin-transform-typescript@7.5.5(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-typescript@7.8.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7)
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/polyfill@7.12.1':
+ dependencies:
+ core-js: 2.6.12
+ regenerator-runtime: 0.13.11
+
+ '@babel/preset-env@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/compat-data': 7.29.7
+ '@babel/core': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/helper-validator-option': 7.29.7
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7)
+ '@babel/plugin-syntax-import-assertions': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.7)
+ '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-async-generator-functions': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-async-to-generator': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-duplicate-keys': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-dynamic-import': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-explicit-resource-management': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-exponentiation-operator': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-export-namespace-from': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-function-name': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-json-strings': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-literals': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-logical-assignment-operators': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-modules-systemjs': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-new-target': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-numeric-separator': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-object-rest-spread': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-object-super': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-optional-catch-binding': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-property-literals': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-regenerator': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-regexp-modifiers': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-spread': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-unicode-escapes': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-unicode-property-regex': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-unicode-sets-regex': 7.29.7(@babel/core@7.29.7)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.7)
+ babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7)
+ babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.7)
+ babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7)
+ core-js-compat: 3.49.0
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/types': 7.29.7
+ esutils: 2.0.3
+
+ '@babel/runtime@7.12.18':
+ dependencies:
+ regenerator-runtime: 0.13.11
+
+ '@babel/runtime@7.29.7': {}
+
+ '@babel/template@7.29.7':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
+
+ '@babel/traverse@7.29.7':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/generator': 7.29.7
+ '@babel/helper-globals': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.7
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.29.7':
+ dependencies:
+ '@babel/helper-string-parser': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
+
+ '@cnakazawa/watch@1.0.4':
+ dependencies:
+ exec-sh: 0.3.6
+ minimist: 1.2.8
+
+ '@colors/colors@1.5.0':
+ optional: true
+
+ '@csstools/cascade-layer-name-parser@1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+
+ '@csstools/color-helpers@4.2.1': {}
+
+ '@csstools/css-calc@1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+
+ '@csstools/css-color-parser@2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)':
+ dependencies:
+ '@csstools/color-helpers': 4.2.1
+ '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+
+ '@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)':
+ dependencies:
+ '@csstools/css-tokenizer': 2.4.1
+
+ '@csstools/css-tokenizer@2.4.1': {}
+
+ '@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+
+ '@csstools/postcss-cascade-layers@4.0.6(postcss@8.5.15)':
+ dependencies:
+ '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2)
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
+
+ '@csstools/postcss-color-function@3.0.19(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+
+ '@csstools/postcss-color-mix-function@2.0.19(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+
+ '@csstools/postcss-content-alt-text@1.0.0(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+
+ '@csstools/postcss-exponential-functions@1.0.9(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ postcss: 8.5.15
+
+ '@csstools/postcss-font-format-keywords@3.0.2(postcss@8.5.15)':
+ dependencies:
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+ postcss-value-parser: 4.2.0
+
+ '@csstools/postcss-gamut-mapping@1.0.11(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ postcss: 8.5.15
+
+ '@csstools/postcss-gradients-interpolation-method@4.0.20(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+
+ '@csstools/postcss-hwb-function@3.0.18(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+
+ '@csstools/postcss-ic-unit@3.0.7(postcss@8.5.15)':
+ dependencies:
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+ postcss-value-parser: 4.2.0
+
+ '@csstools/postcss-initial@1.0.1(postcss@8.5.15)':
+ dependencies:
+ postcss: 8.5.15
+
+ '@csstools/postcss-is-pseudo-class@4.0.8(postcss@8.5.15)':
+ dependencies:
+ '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2)
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
+
+ '@csstools/postcss-light-dark-function@1.0.8(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+
+ '@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.5.15)':
+ dependencies:
+ postcss: 8.5.15
+
+ '@csstools/postcss-logical-overflow@1.0.1(postcss@8.5.15)':
+ dependencies:
+ postcss: 8.5.15
+
+ '@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.5.15)':
+ dependencies:
+ postcss: 8.5.15
+
+ '@csstools/postcss-logical-resize@2.0.1(postcss@8.5.15)':
+ dependencies:
+ postcss: 8.5.15
+ postcss-value-parser: 4.2.0
+
+ '@csstools/postcss-logical-viewport-units@2.0.11(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+
+ '@csstools/postcss-media-minmax@1.1.8(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ postcss: 8.5.15
+
+ '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ postcss: 8.5.15
+
+ '@csstools/postcss-nested-calc@3.0.2(postcss@8.5.15)':
+ dependencies:
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+ postcss-value-parser: 4.2.0
+
+ '@csstools/postcss-normalize-display-values@3.0.2(postcss@8.5.15)':
+ dependencies:
+ postcss: 8.5.15
+ postcss-value-parser: 4.2.0
+
+ '@csstools/postcss-oklab-function@3.0.19(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+
+ '@csstools/postcss-progressive-custom-properties@3.3.0(postcss@8.5.15)':
+ dependencies:
+ postcss: 8.5.15
+ postcss-value-parser: 4.2.0
+
+ '@csstools/postcss-relative-color-syntax@2.0.19(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
+
+ '@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.5.15)':
+ dependencies:
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
+
+ '@csstools/postcss-stepped-value-functions@3.0.10(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ postcss: 8.5.15
+
+ '@csstools/postcss-text-decoration-shorthand@3.0.7(postcss@8.5.15)':
+ dependencies:
+ '@csstools/color-helpers': 4.2.1
+ postcss: 8.5.15
+ postcss-value-parser: 4.2.0
+
+ '@csstools/postcss-trigonometric-functions@3.0.10(postcss@8.5.15)':
+ dependencies:
+ '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ postcss: 8.5.15
+
+ '@csstools/postcss-unset-value@3.0.1(postcss@8.5.15)':
+ dependencies:
+ postcss: 8.5.15
+
+ '@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.1.2)':
+ dependencies:
+ postcss-selector-parser: 6.1.2
+
+ '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.2)':
+ dependencies:
+ postcss-selector-parser: 6.1.2
+
+ '@csstools/utilities@1.0.0(postcss@8.5.15)':
+ dependencies:
+ postcss: 8.5.15
+
+ '@ember-data/adapter@4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)(@ember/string@3.1.1)(ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))':
+ dependencies:
+ '@ember-data/private-build-infra': 4.12.8
+ '@ember-data/store': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/model@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@ember/string': 3.1.1
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ ember-cli-babel: 7.26.11
+ ember-cli-test-info: 1.0.0
+ ember-inflector: 4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+
+ '@ember-data/debug@4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)(@ember/string@3.1.1)(webpack@5.107.2(postcss@8.5.15))':
+ dependencies:
+ '@ember-data/private-build-infra': 4.12.8
+ '@ember-data/store': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/model@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@ember/edition-utils': 1.2.0
+ '@ember/string': 3.1.1
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+ - webpack
+
+ '@ember-data/graph@4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)':
+ dependencies:
+ '@ember-data/private-build-infra': 4.12.8
+ '@ember-data/store': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/model@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@ember/edition-utils': 1.2.0
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+
+ '@ember-data/json-api@4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/store@4.12.8)':
+ dependencies:
+ '@ember-data/graph': 4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)
+ '@ember-data/private-build-infra': 4.12.8
+ '@ember-data/store': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/model@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@ember/edition-utils': 1.2.0
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+
+ '@ember-data/legacy-compat@4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember/string@3.1.1)':
+ dependencies:
+ '@ember-data/private-build-infra': 4.12.8
+ '@ember/string': 3.1.1
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ ember-cli-babel: 7.26.11
+ optionalDependencies:
+ '@ember-data/graph': 4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)
+ '@ember-data/json-api': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/store@4.12.8)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+
+ '@ember-data/model@4.12.8(@babel/core@7.29.7)(@ember-data/debug@4.12.8)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/store@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))':
+ dependencies:
+ '@ember-data/legacy-compat': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember/string@3.1.1)
+ '@ember-data/private-build-infra': 4.12.8
+ '@ember-data/store': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/model@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@ember-data/tracking': 4.12.8(@babel/core@7.29.7)
+ '@ember/edition-utils': 1.2.0
+ '@ember/string': 3.1.1
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-cli-babel: 7.26.11
+ ember-cli-string-utils: 1.1.0
+ ember-cli-test-info: 1.0.0
+ ember-inflector: 4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ inflection: 2.0.1
+ optionalDependencies:
+ '@ember-data/debug': 4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)(@ember/string@3.1.1)(webpack@5.107.2(postcss@8.5.15))
+ '@ember-data/graph': 4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)
+ '@ember-data/json-api': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/store@4.12.8)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - ember-source
+ - supports-color
+
+ '@ember-data/private-build-infra@4.12.8':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7)
+ '@babel/runtime': 7.29.7
+ '@ember/edition-utils': 1.2.0
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ babel-import-util: 1.4.1
+ babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.7)
+ babel-plugin-filter-imports: 4.0.0
+ babel6-plugin-strip-class-callcheck: 6.0.0
+ broccoli-debug: 0.6.5
+ broccoli-file-creator: 2.1.1
+ broccoli-funnel: 3.0.8
+ broccoli-merge-trees: 4.2.0
+ broccoli-rollup: 5.0.0
+ calculate-cache-key-for-tree: 2.0.0
+ chalk: 4.1.2
+ ember-cli-babel: 7.26.11
+ ember-cli-path-utils: 1.0.0
+ ember-cli-string-utils: 1.1.0
+ ember-cli-version-checker: 5.1.2
+ git-repo-info: 2.1.1
+ glob: 9.3.5
+ npm-git-info: 1.0.3
+ semver: 7.8.1
+ silent-error: 1.1.1
+ transitivePeerDependencies:
+ - '@glint/template'
+ - supports-color
+
+ '@ember-data/request@4.12.8(@babel/core@7.29.7)':
+ dependencies:
+ '@ember-data/private-build-infra': 4.12.8
+ '@ember/test-waiters': 3.1.0
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+
+ '@ember-data/rfc395-data@0.0.4': {}
+
+ '@ember-data/serializer@4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)(@ember/string@3.1.1)(ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))':
+ dependencies:
+ '@ember-data/private-build-infra': 4.12.8
+ '@ember-data/store': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/model@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@ember/string': 3.1.1
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ ember-cli-babel: 7.26.11
+ ember-cli-test-info: 1.0.0
+ ember-inflector: 4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+
+ '@ember-data/store@4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/model@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))':
+ dependencies:
+ '@ember-data/private-build-infra': 4.12.8
+ '@ember-data/tracking': 4.12.8(@babel/core@7.29.7)
+ '@ember/string': 3.1.1
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ '@glimmer/tracking': 1.1.2
+ ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-cli-babel: 7.26.11
+ optionalDependencies:
+ '@ember-data/graph': 4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)
+ '@ember-data/json-api': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/store@4.12.8)
+ '@ember-data/legacy-compat': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember/string@3.1.1)
+ '@ember-data/model': 4.12.8(@babel/core@7.29.7)(@ember-data/debug@4.12.8)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/store@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - ember-source
+ - supports-color
+
+ '@ember-data/tracking@4.12.8(@babel/core@7.29.7)':
+ dependencies:
+ '@ember-data/private-build-infra': 4.12.8
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+
+ '@ember-decorators/component@6.1.1':
+ dependencies:
+ '@ember-decorators/utils': 6.1.1
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - supports-color
+
+ '@ember-decorators/object@6.1.1':
+ dependencies:
+ '@ember-decorators/utils': 6.1.1
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - supports-color
+
+ '@ember-decorators/utils@6.1.1':
+ dependencies:
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - supports-color
+
+ '@ember/edition-utils@1.2.0': {}
+
+ '@ember/optional-features@2.3.0':
+ dependencies:
+ chalk: 4.1.2
+ ember-cli-version-checker: 5.1.2
+ glob: 7.2.3
+ inquirer: 7.3.3
+ mkdirp: 1.0.4
+ silent-error: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@ember/render-modifiers@2.1.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))':
+ dependencies:
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ ember-cli-babel: 7.26.11
+ ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.29.7)
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+
+ '@ember/string@3.1.1':
+ dependencies:
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - supports-color
+
+ '@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))':
+ dependencies:
+ '@ember/test-waiters': 3.1.0
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ '@simple-dom/interface': 1.4.0
+ broccoli-debug: 0.6.5
+ broccoli-funnel: 3.0.8
+ dom-element-descriptors: 0.5.1
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
+ ember-cli-babel: 8.3.1(@babel/core@7.29.7)
+ ember-cli-htmlbars: 6.3.0
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+ - webpack
+
+ '@ember/test-waiters@3.1.0':
+ dependencies:
+ calculate-cache-key-for-tree: 2.0.0
+ ember-cli-babel: 7.26.11
+ ember-cli-version-checker: 5.1.2
+ semver: 7.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@embroider/addon-shim@1.10.2':
+ dependencies:
+ '@embroider/shared-internals': 3.1.0
+ broccoli-funnel: 3.0.8
+ common-ancestor-path: 1.0.1
+ semver: 7.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@embroider/addon@0.30.0':
+ dependencies:
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - supports-color
+
+ '@embroider/macros@1.20.3(@babel/core@7.29.7)':
+ dependencies:
+ '@embroider/shared-internals': 3.1.0
+ assert-never: 1.4.0
+ babel-import-util: 3.0.1
+ ember-cli-babel: 8.3.1(@babel/core@7.29.7)
+ find-up: 5.0.0
+ lodash: 4.18.1
+ resolve: 1.22.12
+ semver: 7.8.1
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+
+ '@embroider/reverse-exports@0.2.0':
+ dependencies:
+ mem: 8.1.1
+ resolve.exports: 2.0.3
+
+ '@embroider/shared-internals@1.8.3':
+ dependencies:
+ babel-import-util: 1.4.1
+ ember-rfc176-data: 0.3.18
+ fs-extra: 9.1.0
+ js-string-escape: 1.0.1
+ lodash: 4.18.1
+ resolve-package-path: 4.0.3
+ semver: 7.8.1
+ typescript-memoize: 1.1.1
+
+ '@embroider/shared-internals@2.9.2':
+ dependencies:
+ babel-import-util: 2.1.1
+ debug: 4.4.3
+ ember-rfc176-data: 0.3.18
+ fs-extra: 9.1.0
+ is-subdir: 1.2.0
+ js-string-escape: 1.0.1
+ lodash: 4.18.1
+ minimatch: 3.1.5
+ pkg-entry-points: 1.1.1
+ resolve-package-path: 4.0.3
+ semver: 7.8.1
+ typescript-memoize: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@embroider/shared-internals@3.1.0':
+ dependencies:
+ babel-import-util: 3.0.1
+ debug: 4.4.3
+ ember-rfc176-data: 0.3.18
+ fs-extra: 9.1.0
+ is-subdir: 1.2.0
+ js-string-escape: 1.0.1
+ lodash: 4.18.1
+ minimatch: 3.1.5
+ pkg-entry-points: 1.1.1
+ resolve-package-path: 4.0.3
+ resolve.exports: 2.0.3
+ semver: 7.8.1
+ typescript-memoize: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@embroider/test-setup@3.0.3':
+ dependencies:
+ lodash: 4.18.1
+ resolve: 1.22.12
+
+ '@embroider/util@1.13.5(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))':
+ dependencies:
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ broccoli-funnel: 3.0.8
+ ember-cli-babel: 7.26.11
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+
+ '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)':
+ dependencies:
+ eslint: 8.57.1
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.2': {}
+
+ '@eslint/eslintrc@2.1.4':
+ dependencies:
+ ajv: 6.15.0
+ debug: 4.4.3
+ espree: 9.6.1
+ globals: 13.24.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.2.0
+ minimatch: 3.1.5
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@8.57.1': {}
+
+ '@event-calendar/core@5.7.1':
+ dependencies:
+ svelte: 5.56.1
+ transitivePeerDependencies:
+ - '@typescript-eslint/types'
+
+ '@fleetbase/ember-accounting@0.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))':
+ dependencies:
+ '@babel/core': 7.29.7
+ ember-cli-babel: 8.3.1(@babel/core@7.29.7)
+ ember-cli-htmlbars: 6.3.0
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ transitivePeerDependencies:
+ - supports-color
+
+ '@fleetbase/ember-core@0.3.20(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(eslint@8.57.1)(webpack@5.107.2(postcss@8.5.15))':
+ dependencies:
+ '@babel/core': 7.29.7
+ compress-json: 3.4.0
+ date-fns: 2.30.0
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
+ ember-can: 6.0.0(@babel/core@7.29.7)(@ember/string@3.1.1)(ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-cli-babel: 8.3.1(@babel/core@7.29.7)
+ ember-cli-htmlbars: 6.3.0
+ ember-cli-notifications: 9.1.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-concurrency: 4.0.6(@babel/core@7.29.7)
+ ember-decorators: 6.1.1
+ ember-get-config: 2.1.1(@babel/core@7.29.7)
+ ember-inflector: 4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-intl: 6.3.2(@babel/core@7.29.7)(webpack@5.107.2(postcss@8.5.15))
+ ember-loading: 2.0.0(@babel/core@7.29.7)
+ ember-local-storage: 2.0.7(@babel/core@7.29.7)
+ ember-simple-auth: 6.1.0(@babel/core@7.29.7)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(eslint@8.57.1)
+ ember-wormhole: 0.6.1
+ socketcluster-client: 17.2.2
+ transitivePeerDependencies:
+ - '@ember/string'
+ - '@ember/test-helpers'
+ - '@glint/template'
+ - bufferutil
+ - ember-resolver
+ - ember-source
+ - eslint
+ - supports-color
+ - typescript
+ - utf-8-validate
+ - webpack
+
+ '@fleetbase/ember-ui@0.3.33(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(postcss@8.5.15)(rollup@2.80.0)(tracked-built-ins@3.4.0(@babel/core@7.29.7))(webpack@5.107.2(postcss@8.5.15))(yaml@2.9.0)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@ember/render-modifiers': 2.1.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@ember/string': 3.1.1
+ '@embroider/addon': 0.30.0
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ '@event-calendar/core': 5.7.1
+ '@fleetbase/ember-accounting': 0.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@floating-ui/dom': 1.7.6
+ '@fortawesome/ember-fontawesome': 2.0.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(rollup@2.80.0)(webpack@5.107.2(postcss@8.5.15))
'@fortawesome/fontawesome-svg-core': 6.4.0
- '@fortawesome/free-brands-svg-icons': 6.5.1
+ '@fortawesome/free-brands-svg-icons': 6.4.0
'@fortawesome/free-solid-svg-icons': 6.4.0
- '@fullcalendar/core': 6.1.10
- '@fullcalendar/daygrid': 6.1.10(@fullcalendar/core@6.1.10)
- '@fullcalendar/interaction': 6.1.10(@fullcalendar/core@6.1.10)
+ '@fullcalendar/core': 6.1.20
+ '@fullcalendar/daygrid': 6.1.20(@fullcalendar/core@6.1.20)
+ '@fullcalendar/interaction': 6.1.20(@fullcalendar/core@6.1.20)
'@makepanic/ember-power-calendar-date-fns': 0.4.2
- '@tailwindcss/forms': 0.5.7(tailwindcss@3.4.1)
- air-datepicker: 3.4.0
- autonumeric: 4.10.5
- autoprefixer: 10.4.17(postcss@8.4.35)
- broccoli-funnel: 3.0.8
- broccoli-merge-trees: 4.2.0
- chart.js: 4.4.1
- chartjs-adapter-date-fns: 3.0.0(chart.js@4.4.1)(date-fns@2.30.0)
+ '@tailwindcss/forms': 0.5.11(tailwindcss@3.4.19(yaml@2.9.0))
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/extension-color': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/extension-text-style@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)))
+ '@tiptap/extension-font-family': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/extension-text-style@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)))
+ '@tiptap/extension-highlight': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-image': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-placeholder': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)
+ '@tiptap/extension-subscript': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-superscript': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-table': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)
+ '@tiptap/extension-table-cell': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-table-header': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-table-row': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-text-align': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-text-style': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-underline': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-youtube': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/pm': 2.27.2
+ '@tiptap/starter-kit': 2.27.2
+ air-datepicker: 3.6.0
+ autonumeric: 4.10.10
+ autoprefixer: 10.5.0(postcss@8.5.15)
+ chart.js: 4.5.1
+ chartjs-adapter-date-fns: 3.0.0(chart.js@4.5.1)(date-fns@2.30.0)
date-fns: 2.30.0
- ember-animated: 1.1.4(@ember/test-helpers@3.2.0)(ember-source@5.4.0)
- ember-auto-import: 2.7.2(webpack@5.89.0)
- ember-basic-dropdown: 7.3.0(@babel/core@7.23.2)(@ember/string@3.1.1)(ember-source@5.4.0)(webpack@5.89.0)
- ember-cli-babel: 8.2.0(@babel/core@7.23.2)
+ ember-animated: 1.1.4(@babel/core@7.29.7)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
+ ember-basic-dropdown: 8.4.0(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-can: 6.0.0(@babel/core@7.29.7)(@ember/string@3.1.1)(ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-cli-babel: 8.3.1(@babel/core@7.29.7)
ember-cli-htmlbars: 6.3.0
ember-cli-postcss: 8.2.0
ember-cli-string-helpers: 6.1.0
ember-composable-helpers: 5.0.0
- ember-concurrency: 3.1.1(@babel/core@7.23.2)(ember-source@5.4.0)
- ember-concurrency-decorators: 2.0.3(@babel/core@7.23.2)
- ember-concurrency-test-waiter: 0.4.0(ember-concurrency@3.1.1)
- ember-file-upload: 8.4.0(@ember/test-helpers@3.2.0)(@glimmer/component@1.1.2)(@glimmer/tracking@1.1.2)(ember-modifier@4.1.0)(tracked-built-ins@3.3.0)(webpack@5.89.0)
- ember-focus-trap: 1.1.0(ember-source@5.4.0)
- ember-get-config: 2.1.1
- ember-inflector: 4.0.2
- ember-loading: 2.0.0(@babel/core@7.23.2)
- ember-math-helpers: 4.0.0(ember-source@5.4.0)
- ember-modifier: 4.1.0(ember-source@5.4.0)
+ ember-concurrency: 4.0.6(@babel/core@7.29.7)
+ ember-drag-sort: 4.2.0(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
+ ember-file-upload: 8.4.0(@babel/core@7.29.7)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-modifier@4.3.0(@babel/core@7.29.7))(tracked-built-ins@3.4.0(@babel/core@7.29.7))(webpack@5.107.2(postcss@8.5.15))
+ ember-focus-trap: 1.2.0(@babel/core@7.29.7)
+ ember-get-config: 2.1.1(@babel/core@7.29.7)
+ ember-gridstack: 4.0.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
+ ember-inflector: 4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-leaflet: 5.1.3(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(leaflet@1.9.4)(webpack@5.107.2(postcss@8.5.15))
+ ember-loading: 2.0.0(@babel/core@7.29.7)
+ ember-math-helpers: 4.2.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-modifier: 4.3.0(@babel/core@7.29.7)
ember-on-helper: 0.1.0
- ember-power-calendar: 0.18.0(@babel/core@7.23.2)(ember-source@5.4.0)
- ember-power-select: 7.2.0(@babel/core@7.23.2)(ember-source@5.4.0)(webpack@5.89.0)
- ember-ref-bucket: 4.1.0(@babel/core@7.23.2)
+ ember-power-calendar: 0.18.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-power-select: 8.6.2(@babel/core@7.29.7)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-basic-dropdown@8.4.0(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-concurrency@4.0.6(@babel/core@7.29.7))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-ref-bucket: 4.1.0(@babel/core@7.29.7)
ember-responsive: 5.0.0
- ember-style-modifier: 3.1.1(@ember/string@3.1.1)(ember-source@5.4.0)(webpack@5.89.0)
- ember-truth-helpers: 4.0.3(ember-source@5.4.0)
- ember-window-mock: 0.9.0(ember-source@5.4.0)
- ember-wormhole: 0.6.0
+ ember-style-modifier: 3.1.1(@babel/core@7.29.7)(@ember/string@3.1.1)(webpack@5.107.2(postcss@8.5.15))
+ ember-tag-input: 3.1.0
+ ember-truth-helpers: 4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-window-mock: 0.9.0(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-wormhole: 0.6.1
+ gridstack: 7.3.0
imask: 6.6.3
+ interactjs: 1.10.27
intl-tel-input: 22.0.2
- postcss-at-rules-variables: 0.3.0(postcss@8.4.35)
- postcss-conditionals-renewed: 1.0.0(postcss@8.4.35)
- postcss-each: 1.1.0(postcss@8.4.35)
- postcss-import: 15.1.0(postcss@8.4.35)
- postcss-mixins: 9.0.4(postcss@8.4.35)
- postcss-preset-env: 9.3.0(postcss@8.4.35)
- tailwindcss: 3.4.1
+ leaflet: 1.9.4
+ postcss-at-rules-variables: 0.3.0(postcss@8.5.15)
+ postcss-conditionals-renewed: 1.0.0(postcss@8.5.15)
+ postcss-each: 1.1.0(postcss@8.5.15)
+ postcss-import: 15.1.0(postcss@8.5.15)
+ postcss-mixins: 9.0.4(postcss@8.5.15)
+ postcss-preset-env: 9.6.0(postcss@8.5.15)
+ tailwindcss: 3.4.19(yaml@2.9.0)
transitivePeerDependencies:
- '@ember/test-helpers'
- '@glimmer/component'
- '@glimmer/tracking'
- '@glint/environment-ember-loose'
- '@glint/template'
+ - '@typescript-eslint/types'
- ember-cli-mirage
+ - ember-resolver
- ember-source
- miragejs
- postcss
- rollup
- supports-color
- tracked-built-ins
- - ts-node
+ - tsx
- webpack
- webpack-cli
- webpack-command
- dev: false
+ - yaml
- /@fleetbase/fleetops-data@0.1.7:
- resolution: {integrity: sha512-kV5if9Buhcu9zaYUlgeGuoVJzfsyWOWMdxxOsGQrDth02uWZ2j6LH1eSBIKeoALcBJ+J3rvsdgnE8/SlJZe+Pw==}
- engines: {node: '>= 18'}
+ '@fleetbase/fleetops-data@0.1.35(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(eslint@8.57.1)(webpack@5.107.2(postcss@8.5.15))':
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.29.7
+ '@fleetbase/ember-core': 0.3.20(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(eslint@8.57.1)(webpack@5.107.2(postcss@8.5.15))
date-fns: 2.30.0
- ember-cli-babel: 8.2.0(@babel/core@7.23.2)
+ ember-cli-babel: 8.3.1(@babel/core@7.29.7)
ember-cli-htmlbars: 6.3.0
transitivePeerDependencies:
+ - '@ember/string'
+ - '@ember/test-helpers'
+ - '@glint/template'
+ - bufferutil
+ - ember-resolver
+ - ember-source
+ - eslint
- supports-color
- dev: false
+ - typescript
+ - utf-8-validate
+ - webpack
- /@floating-ui/core@1.6.0:
- resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==}
+ '@fleetbase/leaflet-routing-machine@3.2.17':
dependencies:
- '@floating-ui/utils': 0.2.1
- dev: false
+ '@mapbox/corslite': 0.0.7
+ '@mapbox/polyline': 0.2.0
+ osrm-text-instructions: 0.13.4
- /@floating-ui/dom@1.6.3:
- resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==}
+ '@floating-ui/core@1.7.5':
dependencies:
- '@floating-ui/core': 1.6.0
- '@floating-ui/utils': 0.2.1
- dev: false
+ '@floating-ui/utils': 0.2.11
- /@floating-ui/utils@0.2.1:
- resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==}
- dev: false
+ '@floating-ui/dom@1.7.6':
+ dependencies:
+ '@floating-ui/core': 1.7.5
+ '@floating-ui/utils': 0.2.11
+
+ '@floating-ui/utils@0.2.11': {}
- /@formatjs/ecma402-abstract@1.18.2:
- resolution: {integrity: sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA==}
+ '@formatjs/ecma402-abstract@2.2.4':
dependencies:
- '@formatjs/intl-localematcher': 0.5.4
- tslib: 2.6.2
- dev: false
+ '@formatjs/fast-memoize': 2.2.3
+ '@formatjs/intl-localematcher': 0.5.8
+ tslib: 2.8.1
- /@formatjs/fast-memoize@2.2.0:
- resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==}
+ '@formatjs/ecma402-abstract@2.3.6':
dependencies:
- tslib: 2.6.2
- dev: false
+ '@formatjs/fast-memoize': 2.2.7
+ '@formatjs/intl-localematcher': 0.6.2
+ decimal.js: 10.6.0
+ tslib: 2.8.1
- /@formatjs/icu-messageformat-parser@2.7.6:
- resolution: {integrity: sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA==}
+ '@formatjs/fast-memoize@2.2.3':
dependencies:
- '@formatjs/ecma402-abstract': 1.18.2
- '@formatjs/icu-skeleton-parser': 1.8.0
- tslib: 2.6.2
- dev: false
+ tslib: 2.8.1
- /@formatjs/icu-skeleton-parser@1.8.0:
- resolution: {integrity: sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA==}
+ '@formatjs/fast-memoize@2.2.7':
dependencies:
- '@formatjs/ecma402-abstract': 1.18.2
- tslib: 2.6.2
- dev: false
+ tslib: 2.8.1
- /@formatjs/intl-displaynames@6.6.6:
- resolution: {integrity: sha512-Dg5URSjx0uzF8VZXtHb6KYZ6LFEEhCbAbKoYChYHEOnMFTw/ZU3jIo/NrujzQD2EfKPgQzIq73LOUvW6Z/LpFA==}
+ '@formatjs/icu-messageformat-parser@2.11.4':
dependencies:
- '@formatjs/ecma402-abstract': 1.18.2
- '@formatjs/intl-localematcher': 0.5.4
- tslib: 2.6.2
- dev: false
+ '@formatjs/ecma402-abstract': 2.3.6
+ '@formatjs/icu-skeleton-parser': 1.8.16
+ tslib: 2.8.1
- /@formatjs/intl-listformat@7.5.5:
- resolution: {integrity: sha512-XoI52qrU6aBGJC9KJddqnacuBbPlb/bXFN+lIFVFhQ1RnFHpzuFrlFdjD9am2O7ZSYsyqzYRpkVcXeT1GHkwDQ==}
+ '@formatjs/icu-messageformat-parser@2.9.4':
dependencies:
- '@formatjs/ecma402-abstract': 1.18.2
- '@formatjs/intl-localematcher': 0.5.4
- tslib: 2.6.2
- dev: false
+ '@formatjs/ecma402-abstract': 2.2.4
+ '@formatjs/icu-skeleton-parser': 1.8.8
+ tslib: 2.8.1
- /@formatjs/intl-localematcher@0.5.4:
- resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==}
+ '@formatjs/icu-skeleton-parser@1.8.16':
dependencies:
- tslib: 2.6.2
- dev: false
+ '@formatjs/ecma402-abstract': 2.3.6
+ tslib: 2.8.1
- /@formatjs/intl@2.10.0:
- resolution: {integrity: sha512-X3xT9guVkKDS86EKV80lS0KxoazUglkJTGZO66sKY7otgl0VeStPA8B3u8UkKT47PexVV98fUzjpkchYmbe9nw==}
- peerDependencies:
- typescript: ^4.7 || 5
- peerDependenciesMeta:
- typescript:
- optional: true
+ '@formatjs/icu-skeleton-parser@1.8.8':
dependencies:
- '@formatjs/ecma402-abstract': 1.18.2
- '@formatjs/fast-memoize': 2.2.0
- '@formatjs/icu-messageformat-parser': 2.7.6
- '@formatjs/intl-displaynames': 6.6.6
- '@formatjs/intl-listformat': 7.5.5
- intl-messageformat: 10.5.11
- tslib: 2.6.2
- dev: false
-
- /@fortawesome/ember-fontawesome@0.4.1(rollup@4.12.0):
- resolution: {integrity: sha512-drBupV++kJP2rmyfxg55e4NeaezGEk1Ng9QMTFvEURIkFQfd3QPAxBdC9CLuAWKtzgF6zACGyv/9D2AzF45juQ==}
- engines: {node: 12.* || 14.* || >= 16}
+ '@formatjs/ecma402-abstract': 2.2.4
+ tslib: 2.8.1
+
+ '@formatjs/intl-displaynames@6.8.5':
dependencies:
- '@fortawesome/fontawesome-svg-core': 6.4.0
- broccoli-file-creator: 2.1.1
- broccoli-merge-trees: 4.2.0
- broccoli-plugin: 4.0.7
- broccoli-rollup: 4.1.1
- broccoli-source: 3.0.1
- camel-case: 4.1.2
- ember-ast-helpers: 0.3.5
- ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 5.7.2
- ember-get-config: 2.1.1
- find-yarn-workspace-root: 2.0.0
- glob: 7.2.3
- rollup-plugin-node-resolve: 5.2.0(rollup@4.12.0)
- transitivePeerDependencies:
- - '@glint/template'
- - rollup
- - supports-color
- dev: false
+ '@formatjs/ecma402-abstract': 2.2.4
+ '@formatjs/intl-localematcher': 0.5.8
+ tslib: 2.8.1
- /@fortawesome/ember-fontawesome@1.0.3(rollup@4.12.0)(webpack@5.89.0):
- resolution: {integrity: sha512-KGw4a4moLo9wcGwFU05Y7yV2/va2R/lN7rO3cw6ZBrnMigyAReYH9XcK4zkiAXGaLAbzc/mOyP19ofr2rc7HBg==}
- engines: {node: 12.* || 14.* || >= 16}
+ '@formatjs/intl-listformat@7.7.5':
+ dependencies:
+ '@formatjs/ecma402-abstract': 2.2.4
+ '@formatjs/intl-localematcher': 0.5.8
+ tslib: 2.8.1
+
+ '@formatjs/intl-localematcher@0.5.8':
+ dependencies:
+ tslib: 2.8.1
+
+ '@formatjs/intl-localematcher@0.6.2':
+ dependencies:
+ tslib: 2.8.1
+
+ '@formatjs/intl@2.10.15':
+ dependencies:
+ '@formatjs/ecma402-abstract': 2.2.4
+ '@formatjs/fast-memoize': 2.2.3
+ '@formatjs/icu-messageformat-parser': 2.9.4
+ '@formatjs/intl-displaynames': 6.8.5
+ '@formatjs/intl-listformat': 7.7.5
+ intl-messageformat: 10.7.7
+ tslib: 2.8.1
+
+ '@fortawesome/ember-fontawesome@2.0.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(rollup@2.80.0)(webpack@5.107.2(postcss@8.5.15))':
dependencies:
'@fortawesome/fontawesome-svg-core': 6.4.0
- '@rollup/plugin-node-resolve': 15.2.3(rollup@4.12.0)
+ '@rollup/plugin-node-resolve': 15.3.1(rollup@2.80.0)
+ array-unique: 0.3.2
broccoli-file-creator: 2.1.1
broccoli-merge-trees: 4.2.0
broccoli-plugin: 4.0.7
broccoli-rollup: 5.0.0
broccoli-source: 3.0.1
camel-case: 4.1.2
- ember-ast-helpers: 0.3.5
- ember-auto-import: 2.7.2(webpack@5.89.0)
+ ember-ast-helpers: 0.4.0
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 5.7.2
- ember-get-config: 2.1.1
+ ember-cli-htmlbars: 6.3.0
+ ember-get-config: 2.1.1(@babel/core@7.29.7)
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
find-yarn-workspace-root: 2.0.0
- glob: 7.2.3
+ glob: 10.5.0
transitivePeerDependencies:
+ - '@babel/core'
- '@glint/template'
- rollup
- supports-color
- webpack
- dev: false
-
- /@fortawesome/fontawesome-common-types@6.4.0:
- resolution: {integrity: sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==}
- engines: {node: '>=6'}
- requiresBuild: true
- dev: false
- /@fortawesome/fontawesome-common-types@6.5.1:
- resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
- engines: {node: '>=6'}
- requiresBuild: true
- dev: false
+ '@fortawesome/fontawesome-common-types@6.4.0': {}
- /@fortawesome/fontawesome-svg-core@6.4.0:
- resolution: {integrity: sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==}
- engines: {node: '>=6'}
- requiresBuild: true
+ '@fortawesome/fontawesome-svg-core@6.4.0':
dependencies:
'@fortawesome/fontawesome-common-types': 6.4.0
- dev: false
- /@fortawesome/free-brands-svg-icons@6.5.1:
- resolution: {integrity: sha512-093l7DAkx0aEtBq66Sf19MgoZewv1zeY9/4C7vSKPO4qMwEsW/2VYTUTpBtLwfb9T2R73tXaRDPmE4UqLCYHfg==}
- engines: {node: '>=6'}
- requiresBuild: true
+ '@fortawesome/free-brands-svg-icons@6.4.0':
dependencies:
- '@fortawesome/fontawesome-common-types': 6.5.1
- dev: false
+ '@fortawesome/fontawesome-common-types': 6.4.0
- /@fortawesome/free-solid-svg-icons@6.4.0:
- resolution: {integrity: sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ==}
- engines: {node: '>=6'}
- requiresBuild: true
+ '@fortawesome/free-solid-svg-icons@6.4.0':
dependencies:
'@fortawesome/fontawesome-common-types': 6.4.0
- dev: false
- /@fullcalendar/core@6.1.10:
- resolution: {integrity: sha512-oTXGJSAGpCf1oY+CKp5qYjMHkJCPBkJ3SHitl63n8Q6xKeiwQ4EF6Au451euUovREwJpLmD1AyZrCnWmtB9AVg==}
+ '@fullcalendar/core@6.1.20':
dependencies:
preact: 10.12.1
- dev: false
-
- /@fullcalendar/daygrid@6.1.10(@fullcalendar/core@6.1.10):
- resolution: {integrity: sha512-Z4GRm1IyHKgxXFTWGcEI0nTsvYOIkpE0aMt3/o3ER2SZkF+hfwcDFhtj0c9+WhMjXFIWYeoTnA9rUOY7Zl/nxA==}
- peerDependencies:
- '@fullcalendar/core': ~6.1.10
- dependencies:
- '@fullcalendar/core': 6.1.10
- dev: false
- /@fullcalendar/interaction@6.1.10(@fullcalendar/core@6.1.10):
- resolution: {integrity: sha512-aZRlwCpmDasq2RNeWV0ub20Uevare9Cb6iMlxCacx0fhOC14H28G9d1FsduJIecInL84SPGwt5ItqAYMsWv7zw==}
- peerDependencies:
- '@fullcalendar/core': ~6.1.10
+ '@fullcalendar/daygrid@6.1.20(@fullcalendar/core@6.1.20)':
dependencies:
- '@fullcalendar/core': 6.1.10
- dev: false
+ '@fullcalendar/core': 6.1.20
- /@glimmer/compiler@0.27.0:
- resolution: {integrity: sha512-SJUUEpkFCL+GTpEK6c2EhZQJant67ahGLF6M1xRmIsq6E+AtbHgu+y8mWvFbtpb7lx4gqNKpXSEwlHUTTuxVGw==}
+ '@fullcalendar/interaction@6.1.20(@fullcalendar/core@6.1.20)':
dependencies:
- '@glimmer/interfaces': 0.27.0
- '@glimmer/syntax': 0.27.0
- '@glimmer/util': 0.27.0
- '@glimmer/wire-format': 0.27.0
- simple-html-tokenizer: 0.3.0
- dev: false
+ '@fullcalendar/core': 6.1.20
- /@glimmer/compiler@0.84.3:
- resolution: {integrity: sha512-cj9sGlnvExP9httxY6ZMivJRGulyaZ31DddCYB5h6LxupR4Nk2d1nAJCWPLsvuQJ8qR+eYw0y9aiY/VeT0krpQ==}
+ '@glimmer/compiler@0.84.3':
dependencies:
'@glimmer/interfaces': 0.84.3
'@glimmer/syntax': 0.84.3
@@ -2696,9 +10356,7 @@ packages:
'@glimmer/wire-format': 0.84.3
'@simple-dom/interface': 1.4.0
- /@glimmer/component@1.1.2(@babel/core@7.23.2):
- resolution: {integrity: sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ '@glimmer/component@1.1.2(@babel/core@7.29.7)':
dependencies:
'@glimmer/di': 0.1.11
'@glimmer/env': 0.1.7
@@ -2711,55 +10369,46 @@ packages:
ember-cli-normalize-entity-name: 1.0.0
ember-cli-path-utils: 1.0.0
ember-cli-string-utils: 1.1.0
- ember-cli-typescript: 3.0.0(@babel/core@7.23.2)
+ ember-cli-typescript: 3.0.0(@babel/core@7.29.7)
ember-cli-version-checker: 3.1.3
- ember-compatibility-helpers: 1.2.7(@babel/core@7.23.2)
+ ember-compatibility-helpers: 1.2.7(@babel/core@7.29.7)
transitivePeerDependencies:
- '@babel/core'
- supports-color
- /@glimmer/destroyable@0.84.3:
- resolution: {integrity: sha512-4tUw5UR4ntuySPvbcWyCMRjqxMJMV1GewjU3zGq22XvuBVFfq2K9WmuYV9H9FHg8X0MgDwcus+LjxrVSel39Sw==}
+ '@glimmer/destroyable@0.84.3':
dependencies:
'@glimmer/env': 0.1.7
'@glimmer/global-context': 0.84.3
'@glimmer/interfaces': 0.84.3
'@glimmer/util': 0.84.3
- /@glimmer/di@0.1.11:
- resolution: {integrity: sha512-moRwafNDwHTnTHzyyZC9D+mUSvYrs1Ak0tRPjjmCghdoHHIvMshVbEnwKb/1WmW5CUlKc2eL9rlAV32n3GiItg==}
+ '@glimmer/di@0.1.11': {}
- /@glimmer/encoder@0.84.3:
- resolution: {integrity: sha512-T99YQDhNC/1rOFgiz8k4uzgzQsQ+r1my+WVXRv26o0r+/yOnKYndrb6WH/E9d+XtBIZbm1yCSm2BMFYelR0Nrg==}
+ '@glimmer/encoder@0.84.3':
dependencies:
'@glimmer/env': 0.1.7
'@glimmer/interfaces': 0.84.3
'@glimmer/vm': 0.84.3
- /@glimmer/env@0.1.7:
- resolution: {integrity: sha512-JKF/a9I9jw6fGoz8kA7LEQslrwJ5jms5CXhu/aqkBWk+PmZ6pTl8mlb/eJ/5ujBGTiQzBhy5AIWF712iA+4/mw==}
+ '@glimmer/env@0.1.7': {}
- /@glimmer/global-context@0.84.3:
- resolution: {integrity: sha512-8Oy9Wg5IZxMEeAnVmzD2NkObf89BeHoFSzJgJROE/deutd3rxg83mvlOez4zBBGYwnTb+VGU2LYRpet92egJjA==}
+ '@glimmer/global-context@0.84.3':
dependencies:
'@glimmer/env': 0.1.7
- /@glimmer/interfaces@0.27.0:
- resolution: {integrity: sha512-Uz9txXB0Agnac6vUOAk6uZIB7SeS/fFrdjyNsNJnge5XeojvOQs1YyIFqOhky3G7NHO/mcx3Tdt8PXggFakVtQ==}
+ '@glimmer/interfaces@0.84.3':
dependencies:
- '@glimmer/wire-format': 0.27.0
- dev: false
+ '@simple-dom/interface': 1.4.0
- /@glimmer/interfaces@0.84.3:
- resolution: {integrity: sha512-dk32ykoNojt0mvEaIW6Vli5MGTbQo58uy3Epj7ahCgTHmWOKuw/0G83f2UmFprRwFx689YTXG38I/vbpltEjzg==}
+ '@glimmer/interfaces@0.94.6':
dependencies:
'@simple-dom/interface': 1.4.0
+ type-fest: 4.41.0
- /@glimmer/low-level@0.78.2:
- resolution: {integrity: sha512-0S6TWOOd0fzLLysw1pWZN0TgasaHmYs1Sjz9Til1mTByIXU1S+1rhdyr2veSQPO/aRjPuEQyKXZQHvx23Zax6w==}
+ '@glimmer/low-level@0.78.2': {}
- /@glimmer/manager@0.84.3:
- resolution: {integrity: sha512-FtcwvrQ3HWlGRGChwlXiisMeKf9+XcCkMwVrrO0cxQavT01tIHx40OFtPOhXKGbgXGtRKcJI8XR41aK9t2kvyg==}
+ '@glimmer/manager@0.84.3':
dependencies:
'@glimmer/destroyable': 0.84.3
'@glimmer/env': 0.1.7
@@ -2769,8 +10418,7 @@ packages:
'@glimmer/util': 0.84.3
'@glimmer/validator': 0.84.3
- /@glimmer/node@0.84.3:
- resolution: {integrity: sha512-QXlZjr7X6DDTJ3wiYQIHv2Pq/5sdGeTTW15+U+IosjZuQgvwCPJaeXC2CU8yqgA33yHgMgJpkdvLnPUCPrrhwg==}
+ '@glimmer/node@0.84.3':
dependencies:
'@glimmer/interfaces': 0.84.3
'@glimmer/runtime': 0.84.3
@@ -2778,8 +10426,7 @@ packages:
'@simple-dom/document': 1.4.0
'@simple-dom/interface': 1.4.0
- /@glimmer/opcode-compiler@0.84.3:
- resolution: {integrity: sha512-flUuikKLFL9cekJUA10gJxMRCDjUPb61R3UCl1u69TGN0Nm7FTsMhOsVDtJLeeiAROtPx+NvasPw/6UB1rrdyg==}
+ '@glimmer/opcode-compiler@0.84.3':
dependencies:
'@glimmer/encoder': 0.84.3
'@glimmer/env': 0.1.7
@@ -2789,13 +10436,11 @@ packages:
'@glimmer/vm': 0.84.3
'@glimmer/wire-format': 0.84.3
- /@glimmer/owner@0.84.3:
- resolution: {integrity: sha512-ZwA0rU4V8m0z4ncXtWD2QEU6eh61wkKKQUThahPYhfB+JYceVM6Grx7uWeiAxc2v3ncpvbYqIGdnICXDMloxAA==}
+ '@glimmer/owner@0.84.3':
dependencies:
'@glimmer/util': 0.84.3
- /@glimmer/program@0.84.3:
- resolution: {integrity: sha512-D8z1lP8NEMyzT8gByFsZpmbRThZvGLS0Tl5AngaDbI2FqlcpEV0ujvLTzzgecd9QQ1k3Cd60dTgy/2N2CI82SA==}
+ '@glimmer/program@0.84.3':
dependencies:
'@glimmer/encoder': 0.84.3
'@glimmer/env': 0.1.7
@@ -2804,8 +10449,7 @@ packages:
'@glimmer/opcode-compiler': 0.84.3
'@glimmer/util': 0.84.3
- /@glimmer/reference@0.84.3:
- resolution: {integrity: sha512-lV+p/aWPVC8vUjmlvYVU7WQJsLh319SdXuAWoX/SE3pq340BJlAJiEcAc6q52y9JNhT57gMwtjMX96W5Xcx/qw==}
+ '@glimmer/reference@0.84.3':
dependencies:
'@glimmer/env': 0.1.7
'@glimmer/global-context': 0.84.3
@@ -2813,8 +10457,7 @@ packages:
'@glimmer/util': 0.84.3
'@glimmer/validator': 0.84.3
- /@glimmer/runtime@0.84.3:
- resolution: {integrity: sha512-LzlJbPDCUH/wjsgJ5kRImvOkqAImSyVRW37t34n/1Qd3v7ZoI8xVQg92lS+2kHZe030sT49ZwKkEIeVZiBreBw==}
+ '@glimmer/runtime@0.84.3':
dependencies:
'@glimmer/destroyable': 0.84.3
'@glimmer/env': 0.1.7
@@ -2830,170 +10473,138 @@ packages:
'@glimmer/wire-format': 0.84.3
'@simple-dom/interface': 1.4.0
- /@glimmer/syntax@0.27.0:
- resolution: {integrity: sha512-IC+JaGkfF+J3e5jUXrW4SkVAAgI6WyN4kzfJKqWEnjMAa6pB8XGEDkaaMhoMrxjfK+R0Us2PO45CWhGB3FqsKg==}
- dependencies:
- '@glimmer/interfaces': 0.27.0
- '@glimmer/util': 0.27.0
- handlebars: 4.7.8
- simple-html-tokenizer: 0.3.0
- dev: false
-
- /@glimmer/syntax@0.84.3:
- resolution: {integrity: sha512-ioVbTic6ZisLxqTgRBL2PCjYZTFIwobifCustrozRU2xGDiYvVIL0vt25h2c1ioDsX59UgVlDkIK4YTAQQSd2A==}
+ '@glimmer/syntax@0.84.3':
dependencies:
'@glimmer/interfaces': 0.84.3
'@glimmer/util': 0.84.3
'@handlebars/parser': 2.0.0
simple-html-tokenizer: 0.5.11
- /@glimmer/tracking@1.1.2:
- resolution: {integrity: sha512-cyV32zsHh+CnftuRX84ALZpd2rpbDrhLhJnTXn9W//QpqdRZ5rdMsxSY9fOsj0CKEc706tmEU299oNnDc0d7tA==}
+ '@glimmer/syntax@0.95.0':
+ dependencies:
+ '@glimmer/interfaces': 0.94.6
+ '@glimmer/util': 0.94.8
+ '@glimmer/wire-format': 0.94.8
+ '@handlebars/parser': 2.2.2
+ simple-html-tokenizer: 0.5.11
+
+ '@glimmer/tracking@1.1.2':
dependencies:
'@glimmer/env': 0.1.7
'@glimmer/validator': 0.44.0
- /@glimmer/util@0.27.0:
- resolution: {integrity: sha512-GxER83ZuyEyZ5Phn86VkHcjjN/3MagK0MMr91S5t62IVSW/zyFevpaVV26YKmisDqOe4918nvwGqn543O5gGXw==}
- dev: false
+ '@glimmer/util@0.44.0': {}
- /@glimmer/util@0.44.0:
- resolution: {integrity: sha512-duAsm30uVK9jSysElCbLyU6QQYO2X9iLDLBIBUcCqck9qN1o3tK2qWiHbGK5d6g8E2AJ4H88UrfElkyaJlGrwg==}
-
- /@glimmer/util@0.84.3:
- resolution: {integrity: sha512-qFkh6s16ZSRuu2rfz3T4Wp0fylFj3HBsONGXQcrAdZjdUaIS6v3pNj6mecJ71qRgcym9Hbaq/7/fefIwECUiKw==}
+ '@glimmer/util@0.84.3':
dependencies:
'@glimmer/env': 0.1.7
'@glimmer/interfaces': 0.84.3
'@simple-dom/interface': 1.4.0
- /@glimmer/validator@0.44.0:
- resolution: {integrity: sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw==}
+ '@glimmer/util@0.94.8':
+ dependencies:
+ '@glimmer/interfaces': 0.94.6
- /@glimmer/validator@0.84.3:
- resolution: {integrity: sha512-RTBV4TokUB0vI31UC7ikpV7lOYpWUlyqaKV//pRC4pexYMlmqnVhkFrdiimB/R1XyNdUOQUmnIAcdic39NkbhQ==}
+ '@glimmer/validator@0.44.0': {}
+
+ '@glimmer/validator@0.84.3':
dependencies:
'@glimmer/env': 0.1.7
'@glimmer/global-context': 0.84.3
- /@glimmer/vm-babel-plugins@0.84.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-fucWuuN7Q9QFB0ODd+PCltcTkmH4fLqYyXGArrfLt/TYN8gLv0yo00mPwFOSY7MWti/MUx88xd20/PycvYtg8w==}
+ '@glimmer/vm-babel-plugins@0.84.3(@babel/core@7.29.7)':
dependencies:
- babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.2)
+ babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.7)
transitivePeerDependencies:
- '@babel/core'
- /@glimmer/vm@0.84.3:
- resolution: {integrity: sha512-3mBWvQLEbB8We2EwdmuALMT3zQEcE13ItfLJ0wxlSO2uj1uegeHat++mli8RMxeYNqex27DC+VuhHeWVve6Ngg==}
+ '@glimmer/vm@0.84.3':
dependencies:
'@glimmer/interfaces': 0.84.3
'@glimmer/util': 0.84.3
- /@glimmer/wire-format@0.27.0:
- resolution: {integrity: sha512-gNhityUr9HODYH9GydHVk7C6NZ57MqSbdGzC5TM8VdPibtd72N3+3Zggrm12Faw4E4zTvTM1692Sz/bNwMxLNw==}
- dependencies:
- '@glimmer/util': 0.27.0
- dev: false
-
- /@glimmer/wire-format@0.84.3:
- resolution: {integrity: sha512-aZVfQhqv4k7tTo2vwjy+b4mAxKt7cHH75JR3zAeCilimApa+yYTYUyY73NDNSUVbelgAlQ5s6vTiMSQ55WwVow==}
+ '@glimmer/wire-format@0.84.3':
dependencies:
'@glimmer/interfaces': 0.84.3
'@glimmer/util': 0.84.3
- /@handlebars/parser@2.0.0:
- resolution: {integrity: sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA==}
+ '@glimmer/wire-format@0.94.8':
+ dependencies:
+ '@glimmer/interfaces': 0.94.6
- /@humanwhocodes/config-array@0.11.14:
- resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
- engines: {node: '>=10.10.0'}
+ '@handlebars/parser@2.0.0': {}
+
+ '@handlebars/parser@2.2.2': {}
+
+ '@humanwhocodes/config-array@0.13.0':
dependencies:
- '@humanwhocodes/object-schema': 2.0.2
- debug: 4.3.4
- minimatch: 3.1.2
+ '@humanwhocodes/object-schema': 2.0.3
+ debug: 4.4.3
+ minimatch: 3.1.5
transitivePeerDependencies:
- supports-color
- dev: true
- /@humanwhocodes/module-importer@1.0.1:
- resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
- engines: {node: '>=12.22'}
- dev: true
+ '@humanwhocodes/module-importer@1.0.1': {}
- /@humanwhocodes/object-schema@2.0.2:
- resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
- dev: true
+ '@humanwhocodes/object-schema@2.0.3': {}
- /@isaacs/cliui@8.0.2:
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
+ '@inquirer/external-editor@1.0.3(@types/node@25.9.1)':
+ dependencies:
+ chardet: 2.1.1
+ iconv-lite: 0.7.2
+ optionalDependencies:
+ '@types/node': 25.9.1
+
+ '@inquirer/figures@1.0.15': {}
+
+ '@interactjs/types@1.10.27': {}
+
+ '@isaacs/cliui@8.0.2':
dependencies:
string-width: 5.1.2
- string-width-cjs: /string-width@4.2.3
- strip-ansi: 7.1.0
- strip-ansi-cjs: /strip-ansi@6.0.1
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 7.2.0
+ strip-ansi-cjs: strip-ansi@6.0.1
wrap-ansi: 8.1.0
- wrap-ansi-cjs: /wrap-ansi@7.0.0
- dev: false
+ wrap-ansi-cjs: wrap-ansi@7.0.0
- /@jridgewell/gen-mapping@0.3.3:
- resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
- engines: {node: '>=6.0.0'}
+ '@jridgewell/gen-mapping@0.3.13':
dependencies:
- '@jridgewell/set-array': 1.1.2
- '@jridgewell/sourcemap-codec': 1.4.15
- '@jridgewell/trace-mapping': 0.3.22
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
- /@jridgewell/resolve-uri@3.1.2:
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
- /@jridgewell/set-array@1.1.2:
- resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
- engines: {node: '>=6.0.0'}
+ '@jridgewell/resolve-uri@3.1.2': {}
- /@jridgewell/source-map@0.3.5:
- resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
+ '@jridgewell/source-map@0.3.11':
dependencies:
- '@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.22
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
- /@jridgewell/sourcemap-codec@1.4.15:
- resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+ '@jridgewell/sourcemap-codec@1.5.5': {}
- /@jridgewell/trace-mapping@0.3.22:
- resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==}
+ '@jridgewell/trace-mapping@0.3.31':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/sourcemap-codec': 1.5.5
- /@kurkle/color@0.3.2:
- resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==}
- dev: false
+ '@kurkle/color@0.3.4': {}
- /@lint-todo/utils@13.1.1:
- resolution: {integrity: sha512-F5z53uvRIF4dYfFfJP3a2Cqg+4P1dgJchJsFnsZE0eZp0LK8X7g2J0CsJHRgns+skpXOlM7n5vFGwkWCWj8qJg==}
- engines: {node: 12.* || >= 14}
+ '@lint-todo/utils@13.1.1':
dependencies:
- '@types/eslint': 8.56.2
+ '@types/eslint': 8.56.12
find-up: 5.0.0
fs-extra: 9.1.0
proper-lockfile: 4.1.2
slash: 3.0.0
- tslib: 2.6.2
+ tslib: 2.8.1
upath: 2.0.1
- dev: true
-
- /@ljharb/through@2.3.12:
- resolution: {integrity: sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.7
- dev: true
- /@makepanic/ember-power-calendar-date-fns@0.4.2:
- resolution: {integrity: sha512-CaNTtpaypA69fCqFlz69SMSuuLY1TLcDxjXaPmBNj+SsZpqQXcFgkPVRQEna7IICdgDbJIoLQnB/AB7/J6AD9g==}
- engines: {node: '>= 10.*'}
+ '@makepanic/ember-power-calendar-date-fns@0.4.2':
dependencies:
broccoli-funnel: 2.0.2
broccoli-string-replace: 0.1.2
@@ -3005,566 +10616,512 @@ packages:
- supports-color
- webpack-cli
- webpack-command
- dev: false
- /@mrmlnc/readdir-enhanced@2.2.1:
- resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==}
- engines: {node: '>=4'}
+ '@mapbox/corslite@0.0.7': {}
+
+ '@mapbox/polyline@0.2.0': {}
+
+ '@mrmlnc/readdir-enhanced@2.2.1':
dependencies:
call-me-maybe: 1.0.2
glob-to-regexp: 0.3.0
- dev: false
- /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1:
- resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
+ '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1':
dependencies:
eslint-scope: 5.1.1
- dev: true
- /@nodelib/fs.scandir@2.1.5:
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
- engines: {node: '>= 8'}
+ '@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
run-parallel: 1.2.0
- /@nodelib/fs.stat@1.1.3:
- resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==}
- engines: {node: '>= 6'}
- dev: false
+ '@nodelib/fs.stat@1.1.3': {}
- /@nodelib/fs.stat@2.0.5:
- resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
- engines: {node: '>= 8'}
+ '@nodelib/fs.stat@2.0.5': {}
- /@nodelib/fs.walk@1.2.8:
- resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
- engines: {node: '>= 8'}
+ '@nodelib/fs.walk@1.2.8':
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.17.1
+ fastq: 1.20.1
- /@pkgjs/parseargs@0.11.0:
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
- engines: {node: '>=14'}
- requiresBuild: true
- dev: false
+ '@pkgjs/parseargs@0.11.0':
optional: true
- /@pkgr/core@0.1.1:
- resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- dev: true
+ '@pkgr/core@0.3.6': {}
- /@pnpm/constants@7.1.1:
- resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==}
- engines: {node: '>=16.14'}
- dev: true
+ '@pnpm/constants@7.1.1': {}
- /@pnpm/error@5.0.2:
- resolution: {integrity: sha512-0TEm+tWNYm+9uh6DSKyRbv8pv/6b4NL0PastLvMxIoqZbBZ5Zj1cYi332R9xsSUi31ZOsu2wpgn/bC7DA9hrjg==}
- engines: {node: '>=16.14'}
+ '@pnpm/error@5.0.3':
dependencies:
'@pnpm/constants': 7.1.1
- dev: true
- /@pnpm/find-workspace-dir@6.0.2:
- resolution: {integrity: sha512-JSrpQUFCs4vY1D5tOmj7qBb+oE2j/lO6341giEdUpvYf3FijY8CY13l8rPjfHV2y3m//utzl0An+q+qx14S6Nw==}
- engines: {node: '>=16.14'}
+ '@pnpm/find-workspace-dir@6.0.3':
dependencies:
- '@pnpm/error': 5.0.2
+ '@pnpm/error': 5.0.3
find-up: 5.0.0
- dev: true
- /@rollup/plugin-node-resolve@15.2.3(rollup@4.12.0):
- resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^2.78.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
+ '@remirror/core-constants@3.0.0': {}
+
+ '@rollup/plugin-node-resolve@15.3.1(rollup@2.80.0)':
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.12.0)
+ '@rollup/pluginutils': 5.4.0(rollup@2.80.0)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
- is-builtin-module: 3.2.1
is-module: 1.0.0
- resolve: 1.22.8
- rollup: 4.12.0
- dev: false
+ resolve: 1.22.12
+ optionalDependencies:
+ rollup: 2.80.0
- /@rollup/pluginutils@5.1.0(rollup@4.12.0):
- resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
+ '@rollup/pluginutils@5.4.0(rollup@2.80.0)':
dependencies:
- '@types/estree': 1.0.5
+ '@types/estree': 1.0.9
estree-walker: 2.0.2
- picomatch: 2.3.1
- rollup: 4.12.0
- dev: false
-
- /@rollup/rollup-android-arm-eabi@4.12.0:
- resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: false
- optional: true
+ picomatch: 4.0.4
+ optionalDependencies:
+ rollup: 2.80.0
- /@rollup/rollup-android-arm64@4.12.0:
- resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: false
- optional: true
+ '@sec-ant/readable-stream@0.4.1': {}
- /@rollup/rollup-darwin-arm64@4.12.0:
- resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
+ '@simple-dom/document@1.4.0':
+ dependencies:
+ '@simple-dom/interface': 1.4.0
- /@rollup/rollup-darwin-x64@4.12.0:
- resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
+ '@simple-dom/interface@1.4.0': {}
- /@rollup/rollup-linux-arm-gnueabihf@4.12.0:
- resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
+ '@sindresorhus/is@0.14.0': {}
- /@rollup/rollup-linux-arm64-gnu@4.12.0:
- resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
+ '@sindresorhus/merge-streams@4.0.0': {}
- /@rollup/rollup-linux-arm64-musl@4.12.0:
- resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
+ '@socket.io/component-emitter@3.1.2': {}
- /@rollup/rollup-linux-riscv64-gnu@4.12.0:
- resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
+ '@sveltejs/acorn-typescript@1.0.10(acorn@8.16.0)':
+ dependencies:
+ acorn: 8.16.0
- /@rollup/rollup-linux-x64-gnu@4.12.0:
- resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
+ '@szmarczak/http-timer@1.1.2':
+ dependencies:
+ defer-to-connect: 1.1.3
+
+ '@tailwindcss/forms@0.5.11(tailwindcss@3.4.19(yaml@2.9.0))':
+ dependencies:
+ mini-svg-data-uri: 1.4.4
+ tailwindcss: 3.4.19(yaml@2.9.0)
+
+ '@tiptap/core@2.27.2(@tiptap/pm@2.27.2)':
+ dependencies:
+ '@tiptap/pm': 2.27.2
+
+ '@tiptap/extension-blockquote@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-bold@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-bullet-list@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-code-block@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/pm': 2.27.2
+
+ '@tiptap/extension-code@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-color@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/extension-text-style@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/extension-text-style': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+
+ '@tiptap/extension-document@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-dropcursor@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/pm': 2.27.2
+
+ '@tiptap/extension-font-family@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/extension-text-style@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/extension-text-style': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+
+ '@tiptap/extension-gapcursor@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/pm': 2.27.2
+
+ '@tiptap/extension-hard-break@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-heading@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-highlight@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-history@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/pm': 2.27.2
+
+ '@tiptap/extension-horizontal-rule@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/pm': 2.27.2
+
+ '@tiptap/extension-image@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-italic@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-list-item@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-ordered-list@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-paragraph@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-placeholder@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/pm': 2.27.2
+
+ '@tiptap/extension-strike@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-subscript@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-superscript@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+
+ '@tiptap/extension-table-cell@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
- /@rollup/rollup-linux-x64-musl@4.12.0:
- resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
+ '@tiptap/extension-table-header@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
- /@rollup/rollup-win32-arm64-msvc@4.12.0:
- resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: false
- optional: true
+ '@tiptap/extension-table-row@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
- /@rollup/rollup-win32-ia32-msvc@4.12.0:
- resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: false
- optional: true
+ '@tiptap/extension-table@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/pm': 2.27.2
- /@rollup/rollup-win32-x64-msvc@4.12.0:
- resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: false
- optional: true
+ '@tiptap/extension-text-align@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
- /@simple-dom/document@1.4.0:
- resolution: {integrity: sha512-/RUeVH4kuD3rzo5/91+h4Z1meLSLP66eXqpVAw/4aZmYozkeqUkMprq0znL4psX/adEed5cBgiNJcfMz/eKZLg==}
+ '@tiptap/extension-text-style@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
dependencies:
- '@simple-dom/interface': 1.4.0
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
- /@simple-dom/interface@1.4.0:
- resolution: {integrity: sha512-l5qumKFWU0S+4ZzMaLXFU8tQZsicHEMEyAxI5kDFGhJsRqDwe0a7/iPA/GdxlGyDKseQQAgIz5kzU7eXTrlSpA==}
+ '@tiptap/extension-text@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
- /@sindresorhus/is@0.14.0:
- resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==}
- engines: {node: '>=6'}
- dev: true
+ '@tiptap/extension-underline@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
- /@socket.io/component-emitter@3.1.0:
- resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==}
- dev: true
+ '@tiptap/extension-youtube@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))':
+ dependencies:
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
- /@szmarczak/http-timer@1.1.2:
- resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==}
- engines: {node: '>=6'}
+ '@tiptap/pm@2.27.2':
dependencies:
- defer-to-connect: 1.1.3
- dev: true
+ prosemirror-changeset: 2.4.1
+ prosemirror-collab: 1.3.1
+ prosemirror-commands: 1.7.1
+ prosemirror-dropcursor: 1.8.2
+ prosemirror-gapcursor: 1.4.1
+ prosemirror-history: 1.5.0
+ prosemirror-inputrules: 1.5.1
+ prosemirror-keymap: 1.2.3
+ prosemirror-markdown: 1.13.4
+ prosemirror-menu: 1.3.2
+ prosemirror-model: 1.25.7
+ prosemirror-schema-basic: 1.2.4
+ prosemirror-schema-list: 1.5.1
+ prosemirror-state: 1.4.4
+ prosemirror-tables: 1.8.5
+ prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.7)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)
+ prosemirror-transform: 1.12.0
+ prosemirror-view: 1.41.8
- /@tailwindcss/forms@0.5.7(tailwindcss@3.4.1):
- resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==}
- peerDependencies:
- tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1'
+ '@tiptap/starter-kit@2.27.2':
dependencies:
- mini-svg-data-uri: 1.4.4
- tailwindcss: 3.4.1
- dev: false
+ '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
+ '@tiptap/extension-blockquote': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-bold': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-bullet-list': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-code': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-code-block': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)
+ '@tiptap/extension-document': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-dropcursor': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)
+ '@tiptap/extension-gapcursor': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)
+ '@tiptap/extension-hard-break': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-heading': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-history': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)
+ '@tiptap/extension-horizontal-rule': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)
+ '@tiptap/extension-italic': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-list-item': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-ordered-list': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-paragraph': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-strike': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-text': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/extension-text-style': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))
+ '@tiptap/pm': 2.27.2
- /@types/body-parser@1.19.5:
- resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
+ '@types/body-parser@1.19.6':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 20.11.19
- dev: true
-
- /@types/broccoli-plugin@1.3.0:
- resolution: {integrity: sha512-SLk4/hFc2kGvgwNFrpn2O1juxFOllcHAywvlo7VwxfExLzoz1GGJ0oIZCwj5fwSpvHw4AWpZjJ1fUvb62PDayQ==}
- dev: false
+ '@types/node': 25.9.1
- /@types/broccoli-plugin@3.0.0:
- resolution: {integrity: sha512-f+TcsARR2PovfFRKFdCX0kfH/QoM3ZVD2h1rl2mNvrKO0fq2uBNCBsTU3JanfU4COCt5cXpTfARyUsERlC8vIw==}
- deprecated: This is a stub types definition. broccoli-plugin provides its own type definitions, so you do not need this installed.
+ '@types/broccoli-plugin@3.0.4':
dependencies:
broccoli-plugin: 4.0.7
transitivePeerDependencies:
- supports-color
- /@types/chai-as-promised@7.1.8:
- resolution: {integrity: sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==}
- dependencies:
- '@types/chai': 4.3.11
- dev: true
-
- /@types/chai@4.3.11:
- resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==}
- dev: true
-
- /@types/connect@3.4.38:
- resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+ '@types/chai-as-promised@7.1.8':
dependencies:
- '@types/node': 20.11.19
- dev: true
+ '@types/chai': 4.3.20
- /@types/cookie@0.4.1:
- resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
- dev: true
+ '@types/chai@4.3.20': {}
- /@types/cors@2.8.17:
- resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==}
+ '@types/connect@3.4.38':
dependencies:
- '@types/node': 20.11.19
- dev: true
+ '@types/node': 25.9.1
- /@types/eslint-scope@3.7.7:
- resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
+ '@types/cors@2.8.19':
dependencies:
- '@types/eslint': 8.56.2
- '@types/estree': 1.0.5
+ '@types/node': 25.9.1
- /@types/eslint@8.56.2:
- resolution: {integrity: sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==}
+ '@types/eslint@8.56.12':
dependencies:
- '@types/estree': 1.0.5
+ '@types/estree': 1.0.9
'@types/json-schema': 7.0.15
- /@types/estree@1.0.5:
- resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+ '@types/estree@1.0.9': {}
- /@types/express-serve-static-core@4.17.43:
- resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
+ '@types/express-serve-static-core@4.19.8':
dependencies:
- '@types/node': 20.11.19
- '@types/qs': 6.9.11
+ '@types/node': 25.9.1
+ '@types/qs': 6.15.1
'@types/range-parser': 1.2.7
- '@types/send': 0.17.4
- dev: true
+ '@types/send': 1.2.1
- /@types/express@4.17.21:
- resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
+ '@types/express@4.17.25':
dependencies:
- '@types/body-parser': 1.19.5
- '@types/express-serve-static-core': 4.17.43
- '@types/qs': 6.9.11
- '@types/serve-static': 1.15.5
- dev: true
+ '@types/body-parser': 1.19.6
+ '@types/express-serve-static-core': 4.19.8
+ '@types/qs': 6.15.1
+ '@types/serve-static': 1.15.10
- /@types/fs-extra@5.1.0:
- resolution: {integrity: sha512-AInn5+UBFIK9FK5xc9yP5e3TQSPNNgjHByqYcj9g5elVBnDQcQL7PlO1CIRy2gWlbwK7UPYqi7vRvFA44dCmYQ==}
+ '@types/fs-extra@5.1.0':
dependencies:
- '@types/node': 20.11.19
+ '@types/node': 25.9.1
- /@types/fs-extra@8.1.5:
- resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==}
+ '@types/fs-extra@8.1.5':
dependencies:
- '@types/node': 20.11.19
- dev: true
+ '@types/node': 25.9.1
- /@types/glob@7.2.0:
- resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
+ '@types/glob@7.2.0':
dependencies:
- '@types/minimatch': 5.1.2
- '@types/node': 20.11.19
- dev: true
+ '@types/minimatch': 6.0.0
+ '@types/node': 25.9.1
- /@types/glob@8.1.0:
- resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
+ '@types/glob@9.0.0':
dependencies:
- '@types/minimatch': 5.1.2
- '@types/node': 20.11.19
+ glob: 8.1.0
- /@types/http-errors@2.0.4:
- resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
- dev: true
+ '@types/http-errors@2.0.5': {}
- /@types/json-schema@7.0.15:
- resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+ '@types/json-schema@7.0.15': {}
- /@types/keyv@3.1.4:
- resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
+ '@types/keyv@3.1.4':
dependencies:
- '@types/node': 20.11.19
- dev: true
+ '@types/node': 25.9.1
- /@types/mime@1.3.5:
- resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
- dev: true
+ '@types/linkify-it@5.0.0': {}
- /@types/mime@3.0.4:
- resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==}
- dev: true
+ '@types/markdown-it@14.1.2':
+ dependencies:
+ '@types/linkify-it': 5.0.0
+ '@types/mdurl': 2.0.0
- /@types/minimatch@3.0.5:
- resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
+ '@types/mdurl@2.0.0': {}
- /@types/minimatch@5.1.2:
- resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
+ '@types/mime@1.3.5': {}
- /@types/minimist@1.2.5:
- resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
- dev: true
+ '@types/minimatch@3.0.5': {}
- /@types/node@20.11.19:
- resolution: {integrity: sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==}
+ '@types/minimatch@6.0.0':
dependencies:
- undici-types: 5.26.5
+ minimatch: 7.4.9
- /@types/normalize-package-data@2.4.4:
- resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
- dev: true
+ '@types/minimist@1.2.5': {}
+
+ '@types/node@25.9.1':
+ dependencies:
+ undici-types: 7.24.6
- /@types/qs@6.9.11:
- resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==}
- dev: true
+ '@types/normalize-package-data@2.4.4': {}
- /@types/range-parser@1.2.7:
- resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
- dev: true
+ '@types/qs@6.15.1': {}
- /@types/resolve@0.0.8:
- resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==}
- dependencies:
- '@types/node': 20.11.19
- dev: false
+ '@types/range-parser@1.2.7': {}
- /@types/resolve@1.20.2:
- resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
- dev: false
+ '@types/resolve@1.20.2': {}
- /@types/responselike@1.0.3:
- resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
+ '@types/responselike@1.0.3':
dependencies:
- '@types/node': 20.11.19
- dev: true
+ '@types/node': 25.9.1
- /@types/rimraf@2.0.5:
- resolution: {integrity: sha512-YyP+VfeaqAyFmXoTh3HChxOQMyjByRMsHU7kc5KOJkSlXudhMhQIALbYV7rHh/l8d2lX3VUQzprrcAgWdRuU8g==}
+ '@types/rimraf@2.0.5':
dependencies:
- '@types/glob': 8.1.0
- '@types/node': 20.11.19
+ '@types/glob': 9.0.0
+ '@types/node': 25.9.1
- /@types/send@0.17.4:
- resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
+ '@types/send@0.17.6':
dependencies:
'@types/mime': 1.3.5
- '@types/node': 20.11.19
- dev: true
+ '@types/node': 25.9.1
- /@types/serve-static@1.15.5:
- resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==}
+ '@types/send@1.2.1':
dependencies:
- '@types/http-errors': 2.0.4
- '@types/mime': 3.0.4
- '@types/node': 20.11.19
- dev: true
+ '@types/node': 25.9.1
- /@types/symlink-or-copy@1.2.2:
- resolution: {integrity: sha512-MQ1AnmTLOncwEf9IVU+B2e4Hchrku5N67NkgcAHW0p3sdzPe0FNMANxEm6OJUzPniEQGkeT3OROLlCwZJLWFZA==}
+ '@types/serve-static@1.15.10':
+ dependencies:
+ '@types/http-errors': 2.0.5
+ '@types/node': 25.9.1
+ '@types/send': 0.17.6
- /@ungap/structured-clone@1.2.0:
- resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
- dev: true
+ '@types/symlink-or-copy@1.2.2': {}
- /@webassemblyjs/ast@1.11.6:
- resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==}
+ '@types/trusted-types@2.0.7': {}
+
+ '@types/ws@8.18.1':
dependencies:
- '@webassemblyjs/helper-numbers': 1.11.6
- '@webassemblyjs/helper-wasm-bytecode': 1.11.6
+ '@types/node': 25.9.1
- /@webassemblyjs/ast@1.9.0:
- resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==}
+ '@ungap/structured-clone@1.3.1': {}
+
+ '@webassemblyjs/ast@1.14.1':
+ dependencies:
+ '@webassemblyjs/helper-numbers': 1.13.2
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+
+ '@webassemblyjs/ast@1.9.0':
dependencies:
'@webassemblyjs/helper-module-context': 1.9.0
'@webassemblyjs/helper-wasm-bytecode': 1.9.0
'@webassemblyjs/wast-parser': 1.9.0
- dev: false
- /@webassemblyjs/floating-point-hex-parser@1.11.6:
- resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
+ '@webassemblyjs/floating-point-hex-parser@1.13.2': {}
- /@webassemblyjs/floating-point-hex-parser@1.9.0:
- resolution: {integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==}
- dev: false
+ '@webassemblyjs/floating-point-hex-parser@1.9.0': {}
- /@webassemblyjs/helper-api-error@1.11.6:
- resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
+ '@webassemblyjs/helper-api-error@1.13.2': {}
- /@webassemblyjs/helper-api-error@1.9.0:
- resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==}
- dev: false
+ '@webassemblyjs/helper-api-error@1.9.0': {}
- /@webassemblyjs/helper-buffer@1.11.6:
- resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==}
+ '@webassemblyjs/helper-buffer@1.14.1': {}
- /@webassemblyjs/helper-buffer@1.9.0:
- resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==}
- dev: false
+ '@webassemblyjs/helper-buffer@1.9.0': {}
- /@webassemblyjs/helper-code-frame@1.9.0:
- resolution: {integrity: sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==}
+ '@webassemblyjs/helper-code-frame@1.9.0':
dependencies:
'@webassemblyjs/wast-printer': 1.9.0
- dev: false
- /@webassemblyjs/helper-fsm@1.9.0:
- resolution: {integrity: sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==}
- dev: false
+ '@webassemblyjs/helper-fsm@1.9.0': {}
- /@webassemblyjs/helper-module-context@1.9.0:
- resolution: {integrity: sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==}
+ '@webassemblyjs/helper-module-context@1.9.0':
dependencies:
'@webassemblyjs/ast': 1.9.0
- dev: false
- /@webassemblyjs/helper-numbers@1.11.6:
- resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
+ '@webassemblyjs/helper-numbers@1.13.2':
dependencies:
- '@webassemblyjs/floating-point-hex-parser': 1.11.6
- '@webassemblyjs/helper-api-error': 1.11.6
+ '@webassemblyjs/floating-point-hex-parser': 1.13.2
+ '@webassemblyjs/helper-api-error': 1.13.2
'@xtuc/long': 4.2.2
- /@webassemblyjs/helper-wasm-bytecode@1.11.6:
- resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
+ '@webassemblyjs/helper-wasm-bytecode@1.13.2': {}
- /@webassemblyjs/helper-wasm-bytecode@1.9.0:
- resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==}
- dev: false
+ '@webassemblyjs/helper-wasm-bytecode@1.9.0': {}
- /@webassemblyjs/helper-wasm-section@1.11.6:
- resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==}
+ '@webassemblyjs/helper-wasm-section@1.14.1':
dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/helper-buffer': 1.11.6
- '@webassemblyjs/helper-wasm-bytecode': 1.11.6
- '@webassemblyjs/wasm-gen': 1.11.6
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/wasm-gen': 1.14.1
- /@webassemblyjs/helper-wasm-section@1.9.0:
- resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==}
+ '@webassemblyjs/helper-wasm-section@1.9.0':
dependencies:
'@webassemblyjs/ast': 1.9.0
'@webassemblyjs/helper-buffer': 1.9.0
'@webassemblyjs/helper-wasm-bytecode': 1.9.0
'@webassemblyjs/wasm-gen': 1.9.0
- dev: false
- /@webassemblyjs/ieee754@1.11.6:
- resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
+ '@webassemblyjs/ieee754@1.13.2':
dependencies:
'@xtuc/ieee754': 1.2.0
- /@webassemblyjs/ieee754@1.9.0:
- resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==}
+ '@webassemblyjs/ieee754@1.9.0':
dependencies:
'@xtuc/ieee754': 1.2.0
- dev: false
- /@webassemblyjs/leb128@1.11.6:
- resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
+ '@webassemblyjs/leb128@1.13.2':
dependencies:
'@xtuc/long': 4.2.2
- /@webassemblyjs/leb128@1.9.0:
- resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==}
+ '@webassemblyjs/leb128@1.9.0':
dependencies:
'@xtuc/long': 4.2.2
- dev: false
- /@webassemblyjs/utf8@1.11.6:
- resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
+ '@webassemblyjs/utf8@1.13.2': {}
- /@webassemblyjs/utf8@1.9.0:
- resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==}
- dev: false
+ '@webassemblyjs/utf8@1.9.0': {}
- /@webassemblyjs/wasm-edit@1.11.6:
- resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==}
+ '@webassemblyjs/wasm-edit@1.14.1':
dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/helper-buffer': 1.11.6
- '@webassemblyjs/helper-wasm-bytecode': 1.11.6
- '@webassemblyjs/helper-wasm-section': 1.11.6
- '@webassemblyjs/wasm-gen': 1.11.6
- '@webassemblyjs/wasm-opt': 1.11.6
- '@webassemblyjs/wasm-parser': 1.11.6
- '@webassemblyjs/wast-printer': 1.11.6
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/helper-wasm-section': 1.14.1
+ '@webassemblyjs/wasm-gen': 1.14.1
+ '@webassemblyjs/wasm-opt': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ '@webassemblyjs/wast-printer': 1.14.1
- /@webassemblyjs/wasm-edit@1.9.0:
- resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==}
+ '@webassemblyjs/wasm-edit@1.9.0':
dependencies:
'@webassemblyjs/ast': 1.9.0
'@webassemblyjs/helper-buffer': 1.9.0
@@ -3574,56 +11131,47 @@ packages:
'@webassemblyjs/wasm-opt': 1.9.0
'@webassemblyjs/wasm-parser': 1.9.0
'@webassemblyjs/wast-printer': 1.9.0
- dev: false
- /@webassemblyjs/wasm-gen@1.11.6:
- resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==}
+ '@webassemblyjs/wasm-gen@1.14.1':
dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/helper-wasm-bytecode': 1.11.6
- '@webassemblyjs/ieee754': 1.11.6
- '@webassemblyjs/leb128': 1.11.6
- '@webassemblyjs/utf8': 1.11.6
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/ieee754': 1.13.2
+ '@webassemblyjs/leb128': 1.13.2
+ '@webassemblyjs/utf8': 1.13.2
- /@webassemblyjs/wasm-gen@1.9.0:
- resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==}
+ '@webassemblyjs/wasm-gen@1.9.0':
dependencies:
'@webassemblyjs/ast': 1.9.0
'@webassemblyjs/helper-wasm-bytecode': 1.9.0
'@webassemblyjs/ieee754': 1.9.0
'@webassemblyjs/leb128': 1.9.0
'@webassemblyjs/utf8': 1.9.0
- dev: false
- /@webassemblyjs/wasm-opt@1.11.6:
- resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==}
+ '@webassemblyjs/wasm-opt@1.14.1':
dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/helper-buffer': 1.11.6
- '@webassemblyjs/wasm-gen': 1.11.6
- '@webassemblyjs/wasm-parser': 1.11.6
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/wasm-gen': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
- /@webassemblyjs/wasm-opt@1.9.0:
- resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==}
+ '@webassemblyjs/wasm-opt@1.9.0':
dependencies:
'@webassemblyjs/ast': 1.9.0
'@webassemblyjs/helper-buffer': 1.9.0
'@webassemblyjs/wasm-gen': 1.9.0
'@webassemblyjs/wasm-parser': 1.9.0
- dev: false
- /@webassemblyjs/wasm-parser@1.11.6:
- resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==}
+ '@webassemblyjs/wasm-parser@1.14.1':
dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/helper-api-error': 1.11.6
- '@webassemblyjs/helper-wasm-bytecode': 1.11.6
- '@webassemblyjs/ieee754': 1.11.6
- '@webassemblyjs/leb128': 1.11.6
- '@webassemblyjs/utf8': 1.11.6
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-api-error': 1.13.2
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/ieee754': 1.13.2
+ '@webassemblyjs/leb128': 1.13.2
+ '@webassemblyjs/utf8': 1.13.2
- /@webassemblyjs/wasm-parser@1.9.0:
- resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==}
+ '@webassemblyjs/wasm-parser@1.9.0':
dependencies:
'@webassemblyjs/ast': 1.9.0
'@webassemblyjs/helper-api-error': 1.9.0
@@ -3631,10 +11179,8 @@ packages:
'@webassemblyjs/ieee754': 1.9.0
'@webassemblyjs/leb128': 1.9.0
'@webassemblyjs/utf8': 1.9.0
- dev: false
- /@webassemblyjs/wast-parser@1.9.0:
- resolution: {integrity: sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==}
+ '@webassemblyjs/wast-parser@1.9.0':
dependencies:
'@webassemblyjs/ast': 1.9.0
'@webassemblyjs/floating-point-hex-parser': 1.9.0
@@ -3642,389 +11188,221 @@ packages:
'@webassemblyjs/helper-code-frame': 1.9.0
'@webassemblyjs/helper-fsm': 1.9.0
'@xtuc/long': 4.2.2
- dev: false
- /@webassemblyjs/wast-printer@1.11.6:
- resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==}
+ '@webassemblyjs/wast-printer@1.14.1':
dependencies:
- '@webassemblyjs/ast': 1.11.6
+ '@webassemblyjs/ast': 1.14.1
'@xtuc/long': 4.2.2
- /@webassemblyjs/wast-printer@1.9.0:
- resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==}
+ '@webassemblyjs/wast-printer@1.9.0':
dependencies:
'@webassemblyjs/ast': 1.9.0
'@webassemblyjs/wast-parser': 1.9.0
'@xtuc/long': 4.2.2
- dev: false
- /@xmldom/xmldom@0.8.10:
- resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
- engines: {node: '>=10.0.0'}
- dev: true
+ '@xmldom/xmldom@0.9.10': {}
- /@xtuc/ieee754@1.2.0:
- resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
+ '@xtuc/ieee754@1.2.0': {}
- /@xtuc/long@4.2.2:
- resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+ '@xtuc/long@4.2.2': {}
- /abbrev@1.1.1:
- resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
- dev: true
+ abbrev@1.1.1: {}
- /accepts@1.3.8:
- resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
- engines: {node: '>= 0.6'}
+ accepts@1.3.8:
dependencies:
mime-types: 2.1.35
negotiator: 0.6.3
- dev: true
- /acorn-import-assertions@1.9.0(acorn@8.11.3):
- resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
- peerDependencies:
- acorn: ^8
+ accepts@2.0.0:
dependencies:
- acorn: 8.11.3
+ mime-types: 3.0.2
+ negotiator: 1.0.0
- /acorn-jsx@5.3.2(acorn@8.11.3):
- resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ acorn-import-phases@1.0.4(acorn@8.16.0):
dependencies:
- acorn: 8.11.3
- dev: true
+ acorn: 8.16.0
- /acorn@5.7.4:
- resolution: {integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==}
- engines: {node: '>=0.4.0'}
- hasBin: true
- dev: true
+ acorn-jsx@5.3.2(acorn@8.16.0):
+ dependencies:
+ acorn: 8.16.0
- /acorn@6.4.2:
- resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==}
- engines: {node: '>=0.4.0'}
- hasBin: true
- dev: false
+ acorn@5.7.4: {}
- /acorn@7.4.1:
- resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
- engines: {node: '>=0.4.0'}
- hasBin: true
- dev: false
+ acorn@6.4.2: {}
- /acorn@8.11.3:
- resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
- engines: {node: '>=0.4.0'}
- hasBin: true
+ acorn@8.16.0: {}
- /ag-channel@5.0.0:
- resolution: {integrity: sha512-bArHkdqQxynim981t8FLZM5TfA0v7p081OlFdOxs6clB79GSGcGlOQMDa31DT9F5VMjzqNiJmhfGwinvfU/3Zg==}
+ ag-channel@5.0.0:
dependencies:
consumable-stream: 2.0.0
- dev: false
- /ag-request@1.0.1:
- resolution: {integrity: sha512-3F4pDpLy9mxOXop7LoWE78J5g2jmiEJ0gJfzcECOsf/NaCfyeNmOdNLDVM5dS4Hvbi9T+HENL4DmXq5XSotPaA==}
+ ag-request@1.1.0:
dependencies:
- sc-errors: 2.0.3
- dev: false
+ sc-errors: 3.0.0
- /air-datepicker@3.4.0:
- resolution: {integrity: sha512-MFr+2QYdHgrbd6Ah32hxoSCsmNJdrhYSkhr6hhefLpJBtsvX7zdYSvizsCJg15B2000NrEXep8UCYOsWy39iiw==}
- dev: false
+ air-datepicker@3.6.0: {}
- /ajv-errors@1.0.1(ajv@6.12.6):
- resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==}
- peerDependencies:
- ajv: '>=5.0.0'
+ ajv-errors@1.0.1(ajv@6.15.0):
dependencies:
- ajv: 6.12.6
- dev: false
+ ajv: 6.15.0
- /ajv-formats@2.1.1(ajv@8.12.0):
- resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
- peerDependencies:
- ajv: ^8.0.0
- peerDependenciesMeta:
- ajv:
- optional: true
- dependencies:
- ajv: 8.12.0
+ ajv-formats@2.1.1(ajv@8.20.0):
+ optionalDependencies:
+ ajv: 8.20.0
- /ajv-keywords@3.5.2(ajv@6.12.6):
- resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
- peerDependencies:
- ajv: ^6.9.1
+ ajv-keywords@3.5.2(ajv@6.15.0):
dependencies:
- ajv: 6.12.6
+ ajv: 6.15.0
- /ajv-keywords@5.1.0(ajv@8.12.0):
- resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
- peerDependencies:
- ajv: ^8.8.2
+ ajv-keywords@5.1.0(ajv@8.20.0):
dependencies:
- ajv: 8.12.0
+ ajv: 8.20.0
fast-deep-equal: 3.1.3
- /ajv@6.12.6:
- resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@6.15.0:
dependencies:
fast-deep-equal: 3.1.3
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- /ajv@8.12.0:
- resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
+ ajv@8.20.0:
dependencies:
fast-deep-equal: 3.1.3
+ fast-uri: 3.1.2
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
- uri-js: 4.4.1
- /amd-name-resolver@0.0.6:
- resolution: {integrity: sha512-W2trar3LgeKV/yB6ZRD3Iw7MlhrKjLMVSNAatWNNYsn4w+iSfbmA66VB+jQjVIfvzHPZicnHObAvflMkoVtjAQ==}
+ amd-name-resolver@0.0.6:
dependencies:
ensure-posix-path: 1.1.1
- dev: true
- /amd-name-resolver@1.3.1:
- resolution: {integrity: sha512-26qTEWqZQ+cxSYygZ4Cf8tsjDBLceJahhtewxtKZA3SRa4PluuqYCuheemDQD+7Mf5B7sr+zhTDWAHDh02a1Dw==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ amd-name-resolver@1.3.1:
dependencies:
ensure-posix-path: 1.1.1
object-hash: 1.3.1
- /amdefine@1.0.1:
- resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==}
- engines: {node: '>=0.4.2'}
+ amdefine@1.0.1: {}
- /ansi-escapes@3.2.0:
- resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==}
- engines: {node: '>=4'}
- dev: true
+ ansi-escapes@3.2.0: {}
- /ansi-escapes@4.3.2:
- resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
- engines: {node: '>=8'}
+ ansi-escapes@4.3.2:
dependencies:
type-fest: 0.21.3
- dev: true
- /ansi-html@0.0.7:
- resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==}
- engines: {'0': node >= 0.8.0}
- hasBin: true
- dev: true
+ ansi-html@0.0.7: {}
- /ansi-regex@2.1.1:
- resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
- engines: {node: '>=0.10.0'}
+ ansi-html@0.0.9: {}
- /ansi-regex@3.0.1:
- resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
- engines: {node: '>=4'}
- dev: true
+ ansi-regex@2.1.1: {}
- /ansi-regex@4.1.1:
- resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==}
- engines: {node: '>=6'}
- dev: true
+ ansi-regex@3.0.1: {}
- /ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
+ ansi-regex@4.1.1: {}
- /ansi-regex@6.0.1:
- resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
- engines: {node: '>=12'}
- dev: false
+ ansi-regex@5.0.1: {}
- /ansi-styles@2.2.1:
- resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
- engines: {node: '>=0.10.0'}
+ ansi-regex@6.2.2: {}
- /ansi-styles@3.2.1:
- resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
- engines: {node: '>=4'}
+ ansi-styles@2.2.1: {}
+
+ ansi-styles@3.2.1:
dependencies:
color-convert: 1.9.3
- /ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
+ ansi-styles@4.3.0:
dependencies:
color-convert: 2.0.1
- /ansi-styles@6.2.1:
- resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
- engines: {node: '>=12'}
- dev: false
+ ansi-styles@6.2.3: {}
- /ansi-to-html@0.6.15:
- resolution: {integrity: sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==}
- engines: {node: '>=8.0.0'}
- hasBin: true
+ ansi-to-html@0.6.15:
dependencies:
entities: 2.2.0
- /ansicolors@0.2.1:
- resolution: {integrity: sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==}
- dev: true
+ ansicolors@0.2.1: {}
- /any-promise@1.3.0:
- resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
- dev: false
+ any-promise@1.3.0: {}
- /anymatch@2.0.0:
- resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==}
+ anymatch@2.0.0:
dependencies:
micromatch: 3.1.10
normalize-path: 2.1.1
transitivePeerDependencies:
- supports-color
- /anymatch@3.1.3:
- resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
- engines: {node: '>= 8'}
+ anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
- picomatch: 2.3.1
+ picomatch: 2.3.2
- /aproba@1.2.0:
- resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
- dev: false
-
- /aproba@2.0.0:
- resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
- dev: true
-
- /are-we-there-yet@3.0.1:
- resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- dependencies:
- delegates: 1.0.0
- readable-stream: 3.6.2
- dev: true
+ aproba@1.2.0: {}
- /arg@5.0.2:
- resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
- dev: false
+ arg@5.0.2: {}
- /argparse@1.0.10:
- resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
- dependencies:
- sprintf-js: 1.0.3
- dev: true
+ argparse@2.0.1: {}
- /argparse@2.0.1:
- resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ aria-query@5.3.1: {}
- /aria-query@5.3.0:
- resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
- dependencies:
- dequal: 2.0.3
- dev: true
+ aria-query@5.3.2: {}
- /arr-diff@4.0.0:
- resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
- engines: {node: '>=0.10.0'}
+ arr-diff@4.0.0: {}
- /arr-flatten@1.1.0:
- resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
- engines: {node: '>=0.10.0'}
+ arr-flatten@1.1.0: {}
- /arr-union@3.1.0:
- resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
- engines: {node: '>=0.10.0'}
+ arr-union@3.1.0: {}
- /array-buffer-byte-length@1.0.1:
- resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
- engines: {node: '>= 0.4'}
+ array-buffer-byte-length@1.0.2:
dependencies:
- call-bind: 1.0.7
- is-array-buffer: 3.0.4
+ call-bound: 1.0.4
+ is-array-buffer: 3.0.5
- /array-equal@1.0.2:
- resolution: {integrity: sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==}
+ array-equal@1.0.2: {}
- /array-flatten@1.1.1:
- resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
- dev: true
+ array-flatten@1.1.1: {}
- /array-to-error@1.1.1:
- resolution: {integrity: sha512-kqcQ8s7uQfg3UViYON3kCMcck3A9exxgq+riVuKy08Mx00VN4EJhK30L2VpjE58LQHKhcE/GRpvbVUhqTvqzGQ==}
+ array-to-error@1.1.1:
dependencies:
array-to-sentence: 1.1.0
- dev: true
- /array-to-sentence@1.1.0:
- resolution: {integrity: sha512-YkwkMmPA2+GSGvXj1s9NZ6cc2LBtR+uSeWTy2IGi5MR1Wag4DdrcjTxA/YV/Fw+qKlBeXomneZgThEbm/wvZbw==}
- dev: true
+ array-to-sentence@1.1.0: {}
- /array-union@2.1.0:
- resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
- engines: {node: '>=8'}
- dev: true
+ array-union@2.1.0: {}
- /array-unique@0.3.2:
- resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
- engines: {node: '>=0.10.0'}
+ array-unique@0.3.2: {}
- /arraybuffer.prototype.slice@1.0.3:
- resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
- engines: {node: '>= 0.4'}
+ arraybuffer.prototype.slice@1.0.4:
dependencies:
- array-buffer-byte-length: 1.0.1
- call-bind: 1.0.7
+ array-buffer-byte-length: 1.0.2
+ call-bind: 1.0.9
define-properties: 1.2.1
- es-abstract: 1.22.4
+ es-abstract: 1.24.2
es-errors: 1.3.0
- get-intrinsic: 1.2.4
- is-array-buffer: 3.0.4
- is-shared-array-buffer: 1.0.2
+ get-intrinsic: 1.3.0
+ is-array-buffer: 3.0.5
- /arrify@1.0.1:
- resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
- engines: {node: '>=0.10.0'}
- dev: true
+ arrify@1.0.1: {}
- /asn1.js@5.4.1:
- resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==}
+ asn1.js@4.10.1:
dependencies:
- bn.js: 4.12.0
+ bn.js: 4.12.3
inherits: 2.0.4
minimalistic-assert: 1.0.1
- safer-buffer: 2.1.2
- dev: false
- /assert-never@1.2.1:
- resolution: {integrity: sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==}
+ assert-never@1.4.0: {}
- /assert@1.5.1:
- resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==}
+ assert@1.5.1:
dependencies:
- object.assign: 4.1.5
+ object.assign: 4.1.7
util: 0.10.4
- dev: false
- /assign-symbols@1.0.0:
- resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
- engines: {node: '>=0.10.0'}
+ assign-symbols@1.0.0: {}
- /ast-types@0.13.3:
- resolution: {integrity: sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==}
- engines: {node: '>=4'}
+ ast-types@0.13.3: {}
- /astral-regex@2.0.0:
- resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
- engines: {node: '>=8'}
- dev: true
+ astral-regex@2.0.0: {}
- /async-disk-cache@1.3.5:
- resolution: {integrity: sha512-VZpqfR0R7CEOJZ/0FOTgWq70lCrZyS1rkI8PXugDUkTKyyAUgZ2zQ09gLhMkEn+wN8LYeUTPxZdXtlX/kmbXKQ==}
+ async-disk-cache@1.3.5:
dependencies:
debug: 2.6.9
heimdalljs: 0.2.6
@@ -4036,11 +11414,9 @@ packages:
transitivePeerDependencies:
- supports-color
- /async-disk-cache@2.1.0:
- resolution: {integrity: sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg==}
- engines: {node: 8.* || >= 10.*}
+ async-disk-cache@2.1.0:
dependencies:
- debug: 4.3.4
+ debug: 4.4.3
heimdalljs: 0.2.6
istextorbinary: 2.6.0
mkdirp: 0.5.6
@@ -4050,77 +11426,56 @@ packages:
transitivePeerDependencies:
- supports-color
- /async-each@1.0.6:
- resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==}
- dev: false
+ async-each@1.0.6:
optional: true
- /async-promise-queue@1.0.5:
- resolution: {integrity: sha512-xi0aQ1rrjPWYmqbwr18rrSKbSaXIeIwSd1J4KAgVfkq8utNbdZoht7GfvfY6swFUAMJ9obkc4WPJmtGwl+B8dw==}
+ async-function@1.0.0: {}
+
+ async-promise-queue@1.0.5:
dependencies:
async: 2.6.4
debug: 2.6.9
transitivePeerDependencies:
- supports-color
- /async-stream-emitter@4.1.0:
- resolution: {integrity: sha512-cfPZYjHkhCdHSR+eux71vOU8+8Xb23oLyxccAjwYHgOxDb3+qSDb2HV1Y0Hmu39vZlse2cm15CUShLiVYXHCmQ==}
+ async-stream-emitter@4.1.0:
dependencies:
stream-demux: 8.1.0
- dev: false
- /async@0.2.10:
- resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==}
- dev: true
-
- /async@2.6.4:
- resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
+ async@2.6.4:
dependencies:
- lodash: 4.17.21
+ lodash: 4.18.1
- /at-least-node@1.0.0:
- resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
- engines: {node: '>= 4.0.0'}
+ async@3.2.6: {}
- /atob@2.1.2:
- resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
- engines: {node: '>= 4.5.0'}
- hasBin: true
+ at-least-node@1.0.0: {}
- /autonumeric@4.10.5:
- resolution: {integrity: sha512-t7h1poYH37eVi/pDTdO0UBb8qk8A9gUHzABP/wUoqSw4w5aDFJr2gxfZPl+agta4ifb5OfBm4Bylv1G/dCC2zQ==}
- dev: false
+ atob@2.1.2: {}
- /autoprefixer@10.4.17(postcss@8.4.35):
- resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==}
- engines: {node: ^10 || ^12 || >=14}
- hasBin: true
- peerDependencies:
- postcss: ^8.1.0
+ autonumeric@4.10.10: {}
+
+ autoprefixer@10.5.0(postcss@8.5.15):
dependencies:
- browserslist: 4.23.0
- caniuse-lite: 1.0.30001588
- fraction.js: 4.3.7
- normalize-range: 0.1.2
- picocolors: 1.0.0
- postcss: 8.4.35
+ browserslist: 4.28.2
+ caniuse-lite: 1.0.30001793
+ fraction.js: 5.3.4
+ picocolors: 1.1.1
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
- dev: false
- /available-typed-arrays@1.0.6:
- resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==}
- engines: {node: '>= 0.4'}
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.1.0
- /babel-code-frame@6.26.0:
- resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==}
+ axobject-query@4.1.0: {}
+
+ babel-code-frame@6.26.0:
dependencies:
chalk: 1.1.3
esutils: 2.0.3
js-tokens: 3.0.2
- dev: false
- /babel-core@6.26.3:
- resolution: {integrity: sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==}
+ babel-core@6.26.3:
dependencies:
babel-code-frame: 6.26.0
babel-generator: 6.26.1
@@ -4135,240 +11490,181 @@ packages:
convert-source-map: 1.9.0
debug: 2.6.9
json5: 0.5.1
- lodash: 4.17.21
- minimatch: 3.1.2
+ lodash: 4.18.1
+ minimatch: 3.1.5
path-is-absolute: 1.0.1
private: 0.1.8
slash: 1.0.0
source-map: 0.5.7
transitivePeerDependencies:
- supports-color
- dev: false
- /babel-generator@6.26.1:
- resolution: {integrity: sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==}
+ babel-generator@6.26.1:
dependencies:
babel-messages: 6.23.0
babel-runtime: 6.26.0
babel-types: 6.26.0
detect-indent: 4.0.0
jsesc: 1.3.0
- lodash: 4.17.21
+ lodash: 4.18.1
source-map: 0.5.7
trim-right: 1.0.1
- dev: false
- /babel-helpers@6.24.1:
- resolution: {integrity: sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==}
+ babel-helpers@6.24.1:
dependencies:
babel-runtime: 6.26.0
babel-template: 6.26.0
transitivePeerDependencies:
- supports-color
- dev: false
- /babel-import-util@0.2.0:
- resolution: {integrity: sha512-CtWYYHU/MgK88rxMrLfkD356dApswtR/kWZ/c6JifG1m10e7tBBrs/366dFzWMAoqYmG5/JSh+94tUSpIwh+ag==}
- engines: {node: '>= 12.*'}
- dev: true
+ babel-import-util@0.2.0: {}
- /babel-import-util@1.4.1:
- resolution: {integrity: sha512-TNdiTQdPhXlx02pzG//UyVPSKE7SNWjY0n4So/ZnjQpWwaM5LvWBLkWa1JKll5u06HNscHD91XZPuwrMg1kadQ==}
- engines: {node: '>= 12.*'}
+ babel-import-util@1.4.1: {}
- /babel-import-util@2.0.1:
- resolution: {integrity: sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==}
- engines: {node: '>= 12.*'}
+ babel-import-util@2.1.1: {}
- /babel-loader@8.3.0(@babel/core@7.23.2)(webpack@4.47.0):
- resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==}
- engines: {node: '>= 8.9'}
- peerDependencies:
- '@babel/core': ^7.0.0
- webpack: '>=2'
+ babel-import-util@3.0.1: {}
+
+ babel-loader@8.4.1(@babel/core@7.29.7)(webpack@4.47.0):
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.29.7
find-cache-dir: 3.3.2
loader-utils: 2.0.4
make-dir: 3.1.0
schema-utils: 2.7.1
webpack: 4.47.0
- dev: false
- /babel-loader@8.3.0(@babel/core@7.23.2)(webpack@5.89.0):
- resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==}
- engines: {node: '>= 8.9'}
- peerDependencies:
- '@babel/core': ^7.0.0
- webpack: '>=2'
+ babel-loader@8.4.1(@babel/core@7.29.7)(webpack@5.107.2(postcss@8.5.15)):
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.29.7
find-cache-dir: 3.3.2
loader-utils: 2.0.4
make-dir: 3.1.0
schema-utils: 2.7.1
- webpack: 5.89.0
+ webpack: 5.107.2(postcss@8.5.15)
- /babel-messages@6.23.0:
- resolution: {integrity: sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==}
+ babel-messages@6.23.0:
dependencies:
babel-runtime: 6.26.0
- dev: false
- /babel-plugin-compact-reexports@1.1.0:
- resolution: {integrity: sha512-+KgjNJ5yMeZzJxYZdLEy9m82m92aL7FLvNJcK6dYJbW06t+UTpFJ2FVSs35zMfURcPnrQELYhLG4VC+kt/4gvw==}
- dev: true
+ babel-plugin-compact-reexports@1.1.0: {}
- /babel-plugin-debug-macros@0.2.0(@babel/core@7.23.2):
- resolution: {integrity: sha512-Wpmw4TbhR3Eq2t3W51eBAQSdKlr+uAyF0GI4GtPfMCD12Y4cIdpKC9l0RjNTH/P9isFypSqqewMPm7//fnZlNA==}
- engines: {node: '>=4'}
- peerDependencies:
- '@babel/core': ^7.0.0-beta.42
+ babel-plugin-debug-macros@0.2.0(@babel/core@7.29.7):
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.29.7
semver: 5.7.2
- /babel-plugin-debug-macros@0.3.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-wfel/vb3pXfwIDZUrkoDrn5FHmlWI96PCJ3UCDv2a86poJ3EQrnArNW5KfHSVJ9IOgxHbo748cQt7sDU+0KCEw==}
- engines: {node: '>=6'}
- peerDependencies:
- '@babel/core': ^7.0.0
+ babel-plugin-debug-macros@0.3.4(@babel/core@7.29.7):
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.29.7
semver: 5.7.2
- /babel-plugin-ember-data-packages-polyfill@0.1.2:
- resolution: {integrity: sha512-kTHnOwoOXfPXi00Z8yAgyD64+jdSXk3pknnS7NlqnCKAU6YDkXZ4Y7irl66kaZjZn0FBBt0P4YOZFZk85jYOww==}
- engines: {node: 6.* || 8.* || 10.* || >= 12.*}
+ babel-plugin-ember-data-packages-polyfill@0.1.2:
dependencies:
'@ember-data/rfc395-data': 0.0.4
- /babel-plugin-ember-modules-api-polyfill@3.5.0:
- resolution: {integrity: sha512-pJajN/DkQUnStw0Az8c6khVcMQHgzqWr61lLNtVeu0g61LRW0k9jyK7vaedrHDWGe/Qe8sxG5wpiyW9NsMqFzA==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ babel-plugin-ember-modules-api-polyfill@3.5.0:
dependencies:
ember-rfc176-data: 0.3.18
- /babel-plugin-ember-template-compilation@2.2.1:
- resolution: {integrity: sha512-alinprIQcLficqkuIyeKKfD4HQOpMOiHK6pt6Skj/yjoPoQYBuwAJ2BoPAlRe9k/URPeVkpMefbN3m6jEp7RsA==}
- engines: {node: '>= 12.*'}
+ babel-plugin-ember-template-compilation@2.4.1:
dependencies:
- '@glimmer/syntax': 0.84.3
- babel-import-util: 2.0.1
+ '@glimmer/syntax': 0.95.0
+ babel-import-util: 3.0.1
- /babel-plugin-filter-imports@4.0.0:
- resolution: {integrity: sha512-jDLlxI8QnfKd7PtieH6pl4tZJzymzfCDCPGdTq/grgbiYAikwDPp/oL0IlFJn0HQjLpcLkyYhPKkUVneRESw5w==}
- engines: {node: '>=8'}
+ babel-plugin-filter-imports@4.0.0:
dependencies:
- '@babel/types': 7.23.9
- lodash: 4.17.21
+ '@babel/types': 7.29.7
+ lodash: 4.18.1
- /babel-plugin-htmlbars-inline-precompile@3.2.0:
- resolution: {integrity: sha512-IUeZmgs9tMUGXYu1vfke5I18yYJFldFGdNFQOWslXTnDWXzpwPih7QFduUqvT+awDpDuNtXpdt5JAf43Q1Hhzg==}
- engines: {node: 8.* || 10.* || >= 12.*}
+ babel-plugin-htmlbars-inline-precompile@3.2.0: {}
- /babel-plugin-htmlbars-inline-precompile@5.3.1:
- resolution: {integrity: sha512-QWjjFgSKtSRIcsBhJmEwS2laIdrA6na8HAlc/pEAhjHgQsah/gMiBFRZvbQTy//hWxR4BMwV7/Mya7q5H8uHeA==}
- engines: {node: 10.* || >= 12.*}
+ babel-plugin-htmlbars-inline-precompile@5.3.1:
dependencies:
babel-plugin-ember-modules-api-polyfill: 3.5.0
line-column: 1.0.2
magic-string: 0.25.9
parse-static-imports: 1.1.0
- string.prototype.matchall: 4.0.10
+ string.prototype.matchall: 4.0.12
- /babel-plugin-module-resolver@3.2.0:
- resolution: {integrity: sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==}
- engines: {node: '>= 6.0.0'}
+ babel-plugin-module-resolver@3.2.0:
dependencies:
- find-babel-config: 1.2.0
+ find-babel-config: 1.2.2
glob: 7.2.3
pkg-up: 2.0.0
reselect: 3.0.1
- resolve: 1.22.8
+ resolve: 1.22.12
- /babel-plugin-module-resolver@5.0.0:
- resolution: {integrity: sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==}
- engines: {node: '>= 16'}
+ babel-plugin-module-resolver@5.0.3:
dependencies:
- find-babel-config: 2.0.0
- glob: 8.1.0
+ find-babel-config: 2.1.2
+ glob: 9.3.5
pkg-up: 3.1.0
reselect: 4.1.8
- resolve: 1.22.8
- dev: false
+ resolve: 1.22.12
- /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.2):
- resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==}
- peerDependencies:
- '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7):
dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/core': 7.23.2
- '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.2)
+ '@babel/compat-data': 7.29.7
+ '@babel/core': 7.29.7
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.2):
- resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==}
- peerDependencies:
- '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.7):
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7)
+ core-js-compat: 3.49.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.7):
dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.2)
- core-js-compat: 3.36.0
+ '@babel/core': 7.29.7
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7)
+ core-js-compat: 3.49.0
transitivePeerDependencies:
- supports-color
- /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.2):
- resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==}
- peerDependencies:
- '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7):
dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.2)
+ '@babel/core': 7.29.7
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7)
transitivePeerDependencies:
- supports-color
- /babel-plugin-syntax-dynamic-import@6.18.0:
- resolution: {integrity: sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA==}
+ babel-plugin-syntax-dynamic-import@6.18.0: {}
- /babel-register@6.26.0:
- resolution: {integrity: sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==}
+ babel-register@6.26.0:
dependencies:
babel-core: 6.26.3
babel-runtime: 6.26.0
core-js: 2.6.12
home-or-tmp: 2.0.0
- lodash: 4.17.21
+ lodash: 4.18.1
mkdirp: 0.5.6
source-map-support: 0.4.18
transitivePeerDependencies:
- supports-color
- dev: false
- /babel-runtime@6.26.0:
- resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==}
+ babel-runtime@6.26.0:
dependencies:
core-js: 2.6.12
regenerator-runtime: 0.11.1
- dev: false
- /babel-template@6.26.0:
- resolution: {integrity: sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==}
+ babel-template@6.26.0:
dependencies:
babel-runtime: 6.26.0
babel-traverse: 6.26.0
babel-types: 6.26.0
babylon: 6.18.0
- lodash: 4.17.21
+ lodash: 4.18.1
transitivePeerDependencies:
- supports-color
- dev: false
- /babel-traverse@6.26.0:
- resolution: {integrity: sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==}
+ babel-traverse@6.26.0:
dependencies:
babel-code-frame: 6.26.0
babel-messages: 6.23.0
@@ -4378,56 +11674,38 @@ packages:
debug: 2.6.9
globals: 9.18.0
invariant: 2.2.4
- lodash: 4.17.21
+ lodash: 4.18.1
transitivePeerDependencies:
- supports-color
- dev: false
- /babel-types@6.26.0:
- resolution: {integrity: sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==}
+ babel-types@6.26.0:
dependencies:
babel-runtime: 6.26.0
esutils: 2.0.3
- lodash: 4.17.21
+ lodash: 4.18.1
to-fast-properties: 1.0.3
- dev: false
- /babel6-plugin-strip-class-callcheck@6.0.0:
- resolution: {integrity: sha512-biNFJ7JAK4+9BwswDGL0dmYpvXHvswOFR/iKg3Q/f+pNxPEa5bWZkLHI1fW4spPytkHGMe7f/XtYyhzml9hiWg==}
- dev: true
+ babel6-plugin-strip-class-callcheck@6.0.0: {}
- /babylon@6.18.0:
- resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==}
- hasBin: true
- dev: false
+ babylon@6.18.0: {}
- /backbone@1.6.0:
- resolution: {integrity: sha512-13PUjmsgw/49EowNcQvfG4gmczz1ximTMhUktj0Jfrjth0MVaTxehpU+qYYX4MxnuIuhmvBLC6/ayxuAGnOhbA==}
+ backbone@1.6.1:
dependencies:
- underscore: 1.13.6
- dev: true
+ underscore: 1.13.8
- /backburner.js@2.8.0:
- resolution: {integrity: sha512-zYXY0KvpD7/CWeOLF576mV8S+bQsaIoj/GNLXXB+Eb8SJcQy5lqSjkRrZ0MZhdKUs9QoqmGNIEIe3NQfGiiscQ==}
+ backburner.js@2.8.0: {}
- /balanced-match@1.0.2:
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ balanced-match@1.0.2: {}
- /balanced-match@2.0.0:
- resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==}
- dev: true
+ balanced-match@2.0.0: {}
- /base64-js@1.5.1:
- resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ balanced-match@4.0.4: {}
- /base64id@2.0.0:
- resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==}
- engines: {node: ^4.5.0 || >= 5.9}
- dev: true
+ base64-js@1.5.1: {}
- /base@0.11.2:
- resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
- engines: {node: '>=0.10.0'}
+ base64id@2.0.0: {}
+
+ base@0.11.2:
dependencies:
cache-base: 1.0.1
class-utils: 0.3.6
@@ -4437,114 +11715,103 @@ packages:
mixin-deep: 1.3.2
pascalcase: 0.1.1
- /basic-auth@2.0.1:
- resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
- engines: {node: '>= 0.8'}
+ baseline-browser-mapping@2.10.33: {}
+
+ basic-auth@2.0.1:
dependencies:
safe-buffer: 5.1.2
- dev: true
- /big.js@5.2.2:
- resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+ better-path-resolve@1.0.0:
+ dependencies:
+ is-windows: 1.0.2
- /binary-extensions@1.13.1:
- resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==}
- engines: {node: '>=0.10.0'}
- dev: false
+ big.js@5.2.2: {}
+
+ binary-extensions@1.13.1:
optional: true
- /binary-extensions@2.2.0:
- resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
- engines: {node: '>=8'}
- dev: false
+ binary-extensions@2.3.0: {}
- /binaryextensions@2.3.0:
- resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==}
- engines: {node: '>=0.8'}
+ binaryextensions@2.3.0: {}
- /bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+ bindings@1.5.0:
dependencies:
file-uri-to-path: 1.0.0
- dev: false
optional: true
- /bl@1.2.3:
- resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==}
+ bl@1.2.3:
dependencies:
readable-stream: 2.3.8
safe-buffer: 5.2.1
- dev: false
- /bl@4.1.0:
- resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+ bl@4.1.0:
dependencies:
buffer: 5.7.1
inherits: 2.0.4
readable-stream: 3.6.2
- dev: true
- /blank-object@1.0.2:
- resolution: {integrity: sha512-kXQ19Xhoghiyw66CUiGypnuRpWlbHAzY/+NyvqTEdTfhfQGH1/dbEMYiXju7fYKIFePpzp/y9dsu5Cu/PkmawQ==}
+ blank-object@1.0.2: {}
- /blob-polyfill@7.0.20220408:
- resolution: {integrity: sha512-oD8Ydw+5lNoqq+en24iuPt1QixdPpe/nUF8azTHnviCZYu9zUC+TwdzIp5orpblJosNlgNbVmmAb//c6d6ImUQ==}
- dev: false
+ blob-polyfill@7.0.20220408: {}
- /bluebird@3.7.2:
- resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
+ bluebird@3.7.2: {}
- /bn.js@4.12.0:
- resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==}
- dev: false
+ bn.js@4.12.3: {}
- /bn.js@5.2.1:
- resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
- dev: false
+ bn.js@5.2.3: {}
- /body-parser@1.20.1:
- resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==}
- engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+ body-parser@1.20.5:
dependencies:
bytes: 3.1.2
content-type: 1.0.5
debug: 2.6.9
depd: 2.0.0
destroy: 1.2.0
- http-errors: 2.0.0
+ http-errors: 2.0.1
iconv-lite: 0.4.24
on-finished: 2.4.1
- qs: 6.11.0
- raw-body: 2.5.1
+ qs: 6.15.2
+ raw-body: 2.5.3
type-is: 1.6.18
unpipe: 1.0.0
transitivePeerDependencies:
- supports-color
- dev: true
- /body@5.1.0:
- resolution: {integrity: sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==}
+ body-parser@2.2.2:
+ dependencies:
+ bytes: 3.1.2
+ content-type: 1.0.5
+ debug: 4.4.3
+ http-errors: 2.0.1
+ iconv-lite: 0.7.2
+ on-finished: 2.4.1
+ qs: 6.15.2
+ raw-body: 3.0.2
+ type-is: 2.1.0
+ transitivePeerDependencies:
+ - supports-color
+
+ body@5.1.0:
dependencies:
continuable-cache: 0.3.1
error: 7.2.1
raw-body: 1.1.7
safe-json-parse: 1.0.1
- dev: true
- /brace-expansion@1.1.11:
- resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ brace-expansion@1.1.15:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
- /brace-expansion@2.0.1:
- resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ brace-expansion@2.1.1:
dependencies:
balanced-match: 1.0.2
- /braces@2.3.2:
- resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
- engines: {node: '>=0.10.0'}
+ brace-expansion@5.0.6:
+ dependencies:
+ balanced-match: 4.0.4
+
+ braces@2.3.2:
dependencies:
arr-flatten: 1.1.0
array-unique: 0.3.2
@@ -4559,88 +11826,71 @@ packages:
transitivePeerDependencies:
- supports-color
- /braces@3.0.2:
- resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
- engines: {node: '>=8'}
+ braces@3.0.3:
dependencies:
- fill-range: 7.0.1
+ fill-range: 7.1.1
- /broccoli-asset-rev@3.0.0:
- resolution: {integrity: sha512-gAHQZnwvtl74tGevUqGuWoyOdJUdMMv0TjGSMzbdyGImr9fZcnM6xmggDA8bUawrMto9NFi00ZtNUgA4dQiUBw==}
+ broccoli-asset-rev@3.0.0:
dependencies:
broccoli-asset-rewrite: 2.0.0
broccoli-filter: 1.3.0
broccoli-persistent-filter: 1.4.6
- json-stable-stringify: 1.1.1
- minimatch: 3.1.2
+ json-stable-stringify: 1.3.0
+ minimatch: 3.1.5
rsvp: 3.6.2
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli-asset-rewrite@2.0.0:
- resolution: {integrity: sha512-dqhxdQpooNi7LHe8J9Jdxp6o3YPFWl4vQmint6zrsn2sVbOo+wpyiX3erUSt0IBtjNkAxqJjuvS375o2cLBHTA==}
+ broccoli-asset-rewrite@2.0.0:
dependencies:
broccoli-filter: 1.3.0
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli-babel-transpiler@7.8.1:
- resolution: {integrity: sha512-6IXBgfRt7HZ61g67ssBc6lBb3Smw3DPZ9dEYirgtvXWpRZ2A9M22nxy6opEwJDgDJzlu/bB7ToppW33OFkA1gA==}
- engines: {node: '>= 6'}
+ broccoli-babel-transpiler@7.8.1:
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.29.7
'@babel/polyfill': 7.12.1
broccoli-funnel: 2.0.2
broccoli-merge-trees: 3.0.2
broccoli-persistent-filter: 2.3.1
clone: 2.1.2
- hash-for-dep: 1.5.1
+ hash-for-dep: 1.5.2
heimdalljs: 0.2.6
heimdalljs-logger: 0.1.10
- json-stable-stringify: 1.1.1
+ json-stable-stringify: 1.3.0
rsvp: 4.8.5
workerpool: 3.1.2
transitivePeerDependencies:
- supports-color
- /broccoli-babel-transpiler@8.0.0(@babel/core@7.23.2):
- resolution: {integrity: sha512-3HEp3flvasUKJGWERcrPgM1SWvHJ0O/fmbEtY9L4kDyMSnqjY6hTYvNvgWCIgbwXAYAUlZP0vjAQsmyLNGLwFw==}
- engines: {node: 16.* || >= 18}
- peerDependencies:
- '@babel/core': ^7.17.9
+ broccoli-babel-transpiler@8.0.2(@babel/core@7.29.7):
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.29.7
broccoli-persistent-filter: 3.1.3
clone: 2.1.2
- hash-for-dep: 1.5.1
+ hash-for-dep: 1.5.2
heimdalljs: 0.2.6
heimdalljs-logger: 0.1.10
- json-stable-stringify: 1.1.1
+ json-stable-stringify: 1.3.0
rsvp: 4.8.5
workerpool: 6.5.1
transitivePeerDependencies:
- supports-color
- dev: false
- /broccoli-builder@0.18.14:
- resolution: {integrity: sha512-YoUHeKnPi4xIGZ2XDVN9oHNA9k3xF5f5vlA+1wvrxIIDXqQU97gp2FxVAF503Zxdtt0C5CRB5n+47k2hlkaBzA==}
- engines: {node: '>= 0.10.0'}
+ broccoli-builder@0.18.14:
dependencies:
broccoli-node-info: 1.1.0
heimdalljs: 0.2.6
promise-map-series: 0.2.3
- quick-temp: 0.1.8
+ quick-temp: 0.1.9
rimraf: 2.7.1
rsvp: 3.6.2
silent-error: 1.1.1
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli-caching-writer@2.3.1:
- resolution: {integrity: sha512-lfoDx98VaU8tG4mUXCxKdKyw2Lr+iSIGUjCgV83KC2zRC07SzYTGuSsMqpXFiOQlOGuoJxG3NRoyniBa1BWOqA==}
+ broccoli-caching-writer@2.3.1:
dependencies:
broccoli-kitchen-sink-helpers: 0.2.9
broccoli-plugin: 1.1.0
@@ -4650,70 +11900,54 @@ packages:
walk-sync: 0.2.7
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli-caching-writer@3.0.3:
- resolution: {integrity: sha512-g644Kb5uBPsy+6e2DvO3sOc+/cXZQQNgQt64QQzjA9TSdP0dl5qvetpoNIx4sy/XIjrPYG1smEidq9Z9r61INw==}
+ broccoli-caching-writer@3.1.0:
dependencies:
- broccoli-kitchen-sink-helpers: 0.3.1
broccoli-plugin: 1.3.1
- debug: 2.6.9
+ debug: 3.2.7
rimraf: 2.7.1
rsvp: 3.6.2
walk-sync: 0.3.4
transitivePeerDependencies:
- supports-color
- /broccoli-clean-css@1.1.0:
- resolution: {integrity: sha512-S7/RWWX+lL42aGc5+fXVLnwDdMtS0QEWUFalDp03gJ9Na7zj1rWa351N2HZ687E2crM9g+eDWXKzD17cbcTepg==}
+ broccoli-clean-css@1.1.0:
dependencies:
broccoli-persistent-filter: 1.4.6
clean-css-promise: 0.1.1
inline-source-map-comment: 1.0.5
- json-stable-stringify: 1.1.1
+ json-stable-stringify: 1.3.0
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli-concat@4.2.5:
- resolution: {integrity: sha512-dFB5ATPwOyV8S2I7a07HxCoutoq23oY//LhM6Mou86cWUTB174rND5aQLR7Fu8FjFFLxoTbkk7y0VPITJ1IQrw==}
- engines: {node: 10.* || >= 12.*}
+ broccoli-concat@4.2.7:
dependencies:
broccoli-debug: 0.6.5
- broccoli-kitchen-sink-helpers: 0.3.1
broccoli-plugin: 4.0.7
ensure-posix-path: 1.1.1
fast-sourcemap-concat: 2.1.1
find-index: 1.1.1
fs-extra: 8.1.0
fs-tree-diff: 2.0.1
- lodash.merge: 4.6.2
- lodash.omit: 4.5.0
- lodash.uniq: 4.5.0
+ lodash: 4.18.1
transitivePeerDependencies:
- supports-color
- /broccoli-config-loader@1.0.1:
- resolution: {integrity: sha512-MDKYQ50rxhn+g17DYdfzfEM9DjTuSGu42Db37A8TQHQe8geYEcUZ4SQqZRgzdAI3aRQNlA1yBHJfOeGmOjhLIg==}
+ broccoli-config-loader@1.0.1:
dependencies:
- broccoli-caching-writer: 3.0.3
+ broccoli-caching-writer: 3.1.0
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli-config-replace@1.1.2:
- resolution: {integrity: sha512-qLlEY3V7p3ZWJNRPdPgwIM77iau1qR03S9BupMMFngjzBr7S6RSzcg96HbCYXmW9gfTbjRm9FC4CQT81SBusZg==}
+ broccoli-config-replace@1.1.3:
dependencies:
- broccoli-kitchen-sink-helpers: 0.3.1
broccoli-plugin: 1.3.1
debug: 2.6.9
fs-extra: 0.24.0
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli-debug@0.6.5:
- resolution: {integrity: sha512-RIVjHvNar9EMCLDW/FggxFRXqpjhncM/3qq87bn/y+/zR9tqEkHvTqbyOc4QnB97NO2m6342w4wGkemkaeOuWg==}
+ broccoli-debug@0.6.5:
dependencies:
broccoli-plugin: 1.3.1
fs-tree-diff: 0.5.9
@@ -4724,9 +11958,7 @@ packages:
transitivePeerDependencies:
- supports-color
- /broccoli-dependency-funnel@2.1.2:
- resolution: {integrity: sha512-k6b0OnNuRcUnJ9TXA0o6RvqXOkTQ6APKoLsZeMJHAe/YjLjE1uTlfw4Z88GfGmi8gwtLHdnkrhBoJ7YdIkcVZA==}
- engines: {node: '>= 6.0.0'}
+ broccoli-dependency-funnel@2.1.2:
dependencies:
broccoli-plugin: 1.3.1
fs-tree-diff: 0.5.9
@@ -4739,17 +11971,13 @@ packages:
symlink-or-copy: 1.3.1
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli-file-creator@2.1.1:
- resolution: {integrity: sha512-YpjOExWr92C5vhnK0kmD81kM7U09kdIRZk9w4ZDCDHuHXW+VE/x6AGEOQQW3loBQQ6Jk+k+TSm8dESy4uZsnjw==}
- engines: {node: ^4.5 || 6.* || >= 7.*}
+ broccoli-file-creator@2.1.1:
dependencies:
broccoli-plugin: 1.3.1
mkdirp: 0.5.6
- /broccoli-filter@1.3.0:
- resolution: {integrity: sha512-VXJXw7eBfG82CFxaBDjYmyN7V72D4In2zwLVQJd/h3mBfF3CMdRTsv2L20lmRTtCv1sAHcB+LgMso90e/KYiLw==}
+ broccoli-filter@1.3.0:
dependencies:
broccoli-kitchen-sink-helpers: 0.3.1
broccoli-plugin: 1.3.1
@@ -4762,15 +11990,10 @@ packages:
walk-sync: 0.3.4
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli-funnel-reducer@1.0.0:
- resolution: {integrity: sha512-SaOCEdh+wnt2jFUV2Qb32m7LXyElvFwW3NKNaEJyi5PGQNwxfqpkc0KI6AbQANKgdj/40U2UC0WuGThFwuEUaA==}
- dev: true
+ broccoli-funnel-reducer@1.0.0: {}
- /broccoli-funnel@2.0.1:
- resolution: {integrity: sha512-C8Lnp9TVsSSiZMGEF16C0dCiNg2oJqUKwuZ1K4kVC6qRPG/2Cj/rtB5kRCC9qEbwqhX71bDbfHROx0L3J7zXQg==}
- engines: {node: ^4.5 || 6.* || >= 7.*}
+ broccoli-funnel@2.0.1:
dependencies:
array-equal: 1.0.2
blank-object: 1.0.2
@@ -4779,7 +12002,7 @@ packages:
fast-ordered-set: 1.0.3
fs-tree-diff: 0.5.9
heimdalljs: 0.2.6
- minimatch: 3.1.2
+ minimatch: 3.1.5
mkdirp: 0.5.6
path-posix: 1.0.0
rimraf: 2.7.1
@@ -4788,9 +12011,7 @@ packages:
transitivePeerDependencies:
- supports-color
- /broccoli-funnel@2.0.2:
- resolution: {integrity: sha512-/vDTqtv7ipjEZQOVqO4vGDVAOZyuYzQ/EgGoyewfOgh1M7IQAToBKZI0oAQPgMBeFPPlIbfMuAngk+ohPBuaHQ==}
- engines: {node: ^4.5 || 6.* || >= 7.*}
+ broccoli-funnel@2.0.2:
dependencies:
array-equal: 1.0.2
blank-object: 1.0.2
@@ -4799,7 +12020,7 @@ packages:
fast-ordered-set: 1.0.3
fs-tree-diff: 0.5.9
heimdalljs: 0.2.6
- minimatch: 3.1.2
+ minimatch: 3.1.5
mkdirp: 0.5.6
path-posix: 1.0.0
rimraf: 2.7.1
@@ -4808,36 +12029,29 @@ packages:
transitivePeerDependencies:
- supports-color
- /broccoli-funnel@3.0.8:
- resolution: {integrity: sha512-ng4eIhPYiXqMw6SyGoxPHR3YAwEd2lr9FgBI1CyTbspl4txZovOsmzFkMkGAlu88xyvYXJqHiM2crfLa65T1BQ==}
- engines: {node: 10.* || >= 12.*}
+ broccoli-funnel@3.0.8:
dependencies:
array-equal: 1.0.2
broccoli-plugin: 4.0.7
- debug: 4.3.4
+ debug: 4.4.3
fs-tree-diff: 2.0.1
heimdalljs: 0.2.6
- minimatch: 3.1.2
+ minimatch: 3.1.5
walk-sync: 2.2.0
transitivePeerDependencies:
- supports-color
- /broccoli-kitchen-sink-helpers@0.2.9:
- resolution: {integrity: sha512-C+oEqivDofZv/h80rgN4WJkbZkbfwkrIeu8vFn4bb4m4jPd3ICNNplhkXGl3ps439pzc2yjZ1qIwz0yy8uHcQg==}
+ broccoli-kitchen-sink-helpers@0.2.9:
dependencies:
glob: 5.0.15
mkdirp: 0.5.6
- dev: true
- /broccoli-kitchen-sink-helpers@0.3.1:
- resolution: {integrity: sha512-gqYnKSJxBSjj/uJqeuRAzYVbmjWhG0mOZ8jrp6+fnUIOgLN6MvI7XxBECDHkYMIFPJ8Smf4xaI066Q2FqQDnXg==}
+ broccoli-kitchen-sink-helpers@0.3.1:
dependencies:
glob: 5.0.15
mkdirp: 0.5.6
- /broccoli-merge-files@0.8.0:
- resolution: {integrity: sha512-S6dXHECbDkr7YMuCitAAQT8EZeW/kXom0Y8+QmQfiSkWspkKDGrr4vXgEZJjWqfa/FSx/Y18NEEOuMmbIW+XNQ==}
- engines: {node: '>=8.0.0'}
+ broccoli-merge-files@0.8.0:
dependencies:
broccoli-plugin: 1.3.1
fast-glob: 2.2.7
@@ -4845,67 +12059,48 @@ packages:
p-event: 2.3.1
transitivePeerDependencies:
- supports-color
- dev: false
- /broccoli-merge-trees@2.0.1:
- resolution: {integrity: sha512-WjaexJ+I8BxP5V5RNn6um/qDRSmKoiBC/QkRi79FT9ClHfldxRyCDs9mcV7mmoaPlsshmmPaUz5jdtcKA6DClQ==}
+ broccoli-merge-trees@2.0.1:
dependencies:
broccoli-plugin: 1.3.1
merge-trees: 1.0.1
transitivePeerDependencies:
- supports-color
- dev: false
- /broccoli-merge-trees@3.0.2:
- resolution: {integrity: sha512-ZyPAwrOdlCddduFbsMyyFzJUrvW6b04pMvDiAQZrCwghlvgowJDY+EfoXn+eR1RRA5nmGHJ+B68T63VnpRiT1A==}
- engines: {node: '>=6.0.0'}
+ broccoli-merge-trees@3.0.2:
dependencies:
broccoli-plugin: 1.3.1
merge-trees: 2.0.0
transitivePeerDependencies:
- supports-color
- /broccoli-merge-trees@4.2.0:
- resolution: {integrity: sha512-nTrQe5AQtCrW4enLRvbD/vTLHqyW2tz+vsLXQe4IEaUhepuMGVKJJr+I8n34Vu6fPjmPLwTjzNC8izMIDMtHPw==}
- engines: {node: 10.* || >= 12.*}
+ broccoli-merge-trees@4.2.0:
dependencies:
broccoli-plugin: 4.0.7
merge-trees: 2.0.0
transitivePeerDependencies:
- supports-color
- /broccoli-middleware@2.1.1:
- resolution: {integrity: sha512-BK8aPhQpOLsHWiftrqXQr84XsvzUqeaN4PlCQOYg5yM0M+WKAHtX2WFXmicSQZOVgKDyh5aeoNTFkHjBAEBzwQ==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ broccoli-middleware@2.1.2:
dependencies:
- ansi-html: 0.0.7
- handlebars: 4.7.8
+ ansi-html: 0.0.9
+ handlebars: 4.7.9
has-ansi: 3.0.0
mime-types: 2.1.35
- dev: true
- /broccoli-node-api@1.7.0:
- resolution: {integrity: sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw==}
+ broccoli-node-api@1.7.0: {}
- /broccoli-node-info@1.1.0:
- resolution: {integrity: sha512-DUohSZCdfXli/3iN6SmxPbck1OVG8xCkrLx47R25his06xVc1ZmmrOsrThiM8BsCWirwyocODiYJqNP5W2Hg1A==}
- engines: {node: '>= 0.10.0'}
- dev: true
+ broccoli-node-info@1.1.0: {}
- /broccoli-node-info@2.2.0:
- resolution: {integrity: sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg==}
- engines: {node: 8.* || >= 10.*}
+ broccoli-node-info@2.2.0: {}
- /broccoli-output-wrapper@2.0.0:
- resolution: {integrity: sha512-V/ozejo+snzNf75i/a6iTmp71k+rlvqjE3+jYfimuMwR1tjNNRdtfno+NGNQB2An9bIAeqZnKhMDurAznHAdtA==}
+ broccoli-output-wrapper@2.0.0:
dependencies:
heimdalljs-logger: 0.1.10
transitivePeerDependencies:
- supports-color
- /broccoli-output-wrapper@3.2.5:
- resolution: {integrity: sha512-bQAtwjSrF4Nu0CK0JOy5OZqw9t5U0zzv2555EA/cF8/a8SLDTIetk9UgrtMVw7qKLKdSpOZ2liZNeZZDaKgayw==}
- engines: {node: 10.* || >= 12.*}
+ broccoli-output-wrapper@3.2.5:
dependencies:
fs-extra: 8.1.0
heimdalljs-logger: 0.1.10
@@ -4913,14 +12108,13 @@ packages:
transitivePeerDependencies:
- supports-color
- /broccoli-persistent-filter@1.4.6:
- resolution: {integrity: sha512-0RejLwoC95kv4kta8KAa+FmECJCK78Qgm8SRDEK7YyU0N9Cx6KpY3UCDy9WELl3mCXLN8TokNxc7/hp3lL4lfw==}
+ broccoli-persistent-filter@1.4.6:
dependencies:
async-disk-cache: 1.3.5
async-promise-queue: 1.0.5
broccoli-plugin: 1.3.1
fs-tree-diff: 0.5.9
- hash-for-dep: 1.5.1
+ hash-for-dep: 1.5.2
heimdalljs: 0.2.6
heimdalljs-logger: 0.1.10
mkdirp: 0.5.6
@@ -4932,15 +12126,13 @@ packages:
transitivePeerDependencies:
- supports-color
- /broccoli-persistent-filter@2.3.1:
- resolution: {integrity: sha512-hVsmIgCDrl2NFM+3Gs4Cr2TA6UPaIZip99hN8mtkaUPgM8UeVnCbxelCvBjUBHo0oaaqP5jzqqnRVvb568Yu5g==}
- engines: {node: 6.* || >= 8.*}
+ broccoli-persistent-filter@2.3.1:
dependencies:
async-disk-cache: 1.3.5
async-promise-queue: 1.0.5
broccoli-plugin: 1.3.1
fs-tree-diff: 2.0.1
- hash-for-dep: 1.5.1
+ hash-for-dep: 1.5.2
heimdalljs: 0.2.6
heimdalljs-logger: 0.1.10
mkdirp: 0.5.6
@@ -4953,15 +12145,13 @@ packages:
transitivePeerDependencies:
- supports-color
- /broccoli-persistent-filter@3.1.3:
- resolution: {integrity: sha512-Q+8iezprZzL9voaBsDY3rQVl7c7H5h+bvv8SpzCZXPZgfBFCbx7KFQ2c3rZR6lW5k4Kwoqt7jG+rZMUg67Gwxw==}
- engines: {node: 10.* || >= 12.*}
+ broccoli-persistent-filter@3.1.3:
dependencies:
async-disk-cache: 2.1.0
async-promise-queue: 1.0.5
broccoli-plugin: 4.0.7
fs-tree-diff: 2.0.1
- hash-for-dep: 1.5.1
+ hash-for-dep: 1.5.2
heimdalljs: 0.2.6
heimdalljs-logger: 0.1.10
promise-map-series: 0.2.3
@@ -4971,138 +12161,97 @@ packages:
transitivePeerDependencies:
- supports-color
- /broccoli-plugin@1.1.0:
- resolution: {integrity: sha512-dY1QsA20of9wWEto8yhN7JQjpfjySmgeIMsvnQ9aBAv1wEJJCe04B0ekdgq7Bduyx9yWXdoC5CngGy81swmp2w==}
+ broccoli-plugin@1.1.0:
dependencies:
promise-map-series: 0.2.3
- quick-temp: 0.1.8
+ quick-temp: 0.1.9
rimraf: 2.7.1
symlink-or-copy: 1.3.1
- dev: true
- /broccoli-plugin@1.3.1:
- resolution: {integrity: sha512-DW8XASZkmorp+q7J4EeDEZz+LoyKLAd2XZULXyD9l4m9/hAKV3vjHmB1kiUshcWAYMgTP1m2i4NnqCE/23h6AQ==}
+ broccoli-plugin@1.3.1:
dependencies:
promise-map-series: 0.2.3
- quick-temp: 0.1.8
+ quick-temp: 0.1.9
rimraf: 2.7.1
symlink-or-copy: 1.3.1
- /broccoli-plugin@2.1.0:
- resolution: {integrity: sha512-ElE4caljW4slapyEhSD9jU9Uayc8SoSABWdmY9SqbV8DHNxU6xg1jJsPcMm+cXOvggR3+G+OXAYQeFjWVnznaw==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ broccoli-plugin@2.1.0:
dependencies:
promise-map-series: 0.2.3
- quick-temp: 0.1.8
+ quick-temp: 0.1.9
rimraf: 2.7.1
symlink-or-copy: 1.3.1
- /broccoli-plugin@3.1.0:
- resolution: {integrity: sha512-7w7FP8WJYjLvb0eaw27LO678TGGaom++49O1VYIuzjhXjK5kn2+AMlDm7CaUFw4F7CLGoVQeZ84d8gICMJa4lA==}
- engines: {node: 8.* || 10.* || >= 12.*}
+ broccoli-plugin@3.1.0:
dependencies:
broccoli-node-api: 1.7.0
broccoli-output-wrapper: 2.0.0
fs-merger: 3.2.1
promise-map-series: 0.2.3
- quick-temp: 0.1.8
+ quick-temp: 0.1.9
rimraf: 2.7.1
symlink-or-copy: 1.3.1
transitivePeerDependencies:
- supports-color
- /broccoli-plugin@4.0.7:
- resolution: {integrity: sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==}
- engines: {node: 10.* || >= 12.*}
+ broccoli-plugin@4.0.7:
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
+ quick-temp: 0.1.9
rimraf: 3.0.2
symlink-or-copy: 1.3.1
transitivePeerDependencies:
- supports-color
- /broccoli-postcss-single@5.0.2:
- resolution: {integrity: sha512-r4eWtz/5uihtHwOszViWwV6weJr9VryvaqtVo1DOh4gL+TbTyU+NX+Y+t9TqUw99OtuivMz4uHLLH7zZECbZmw==}
- engines: {node: '>= 10'}
+ broccoli-postcss-single@5.0.2:
dependencies:
- broccoli-caching-writer: 3.0.3
+ broccoli-caching-writer: 3.1.0
include-path-searcher: 0.1.0
minimist: 1.2.8
mkdirp: 1.0.4
object-assign: 4.1.1
- postcss: 8.4.35
+ postcss: 8.5.15
transitivePeerDependencies:
- supports-color
- dev: false
- /broccoli-postcss@6.1.0:
- resolution: {integrity: sha512-I8+DHq5xcCBHU0PpCtDMayAmSUVx07CqAquUpdlNUHckXeD//cUFf4aFQllnZBhF8Z86YLhuA+j7qvCYYgBXRg==}
- engines: {node: '>= 10'}
+ broccoli-postcss@6.1.0:
dependencies:
broccoli-funnel: 3.0.8
broccoli-persistent-filter: 3.1.3
minimist: 1.2.8
object-assign: 4.1.1
- postcss: 8.4.35
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /broccoli-rollup@4.1.1:
- resolution: {integrity: sha512-hkp0dB5chiemi32t6hLe5bJvxuTOm1TU+SryFlZIs95KT9+94uj0C8w6k6CsZ2HuIdIZg6D252t4gwOlcTXrpA==}
- engines: {node: '>=8.0'}
- dependencies:
- '@types/broccoli-plugin': 1.3.0
- broccoli-plugin: 2.1.0
- fs-tree-diff: 2.0.1
- heimdalljs: 0.2.6
- node-modules-path: 1.0.2
- rollup: 1.32.1
- rollup-pluginutils: 2.8.2
- symlink-or-copy: 1.3.1
- walk-sync: 1.1.4
+ postcss: 8.5.15
transitivePeerDependencies:
- supports-color
- dev: false
- /broccoli-rollup@5.0.0:
- resolution: {integrity: sha512-QdMuXHwsdz/LOS8zu4HP91Sfi4ofimrOXoYP/lrPdRh7lJYD87Lfq4WzzUhGHsxMfzANIEvl/7qVHKD3cFJ4tA==}
- engines: {node: '>=12.0'}
+ broccoli-rollup@5.0.0:
dependencies:
- '@types/broccoli-plugin': 3.0.0
+ '@types/broccoli-plugin': 3.0.4
broccoli-plugin: 4.0.7
fs-tree-diff: 2.0.1
heimdalljs: 0.2.6
node-modules-path: 1.0.2
- rollup: 2.79.1
+ rollup: 2.80.0
rollup-pluginutils: 2.8.2
symlink-or-copy: 1.3.1
walk-sync: 2.2.0
transitivePeerDependencies:
- supports-color
- /broccoli-slow-trees@3.1.0:
- resolution: {integrity: sha512-FRI7mRTk2wjIDrdNJd6znS7Kmmne4VkAkl8Ix1R/VoePFMD0g0tEl671xswzFqaRjpT9Qu+CC4hdXDLDJBuzMw==}
+ broccoli-slow-trees@3.1.0:
dependencies:
heimdalljs: 0.2.6
- dev: true
- /broccoli-source@2.1.2:
- resolution: {integrity: sha512-1lLayO4wfS0c0Sj50VfHJXNWf94FYY0WUhxj0R77thbs6uWI7USiOWFqQV5dRmhAJnoKaGN4WyLGQbgjgiYFwQ==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ broccoli-source@2.1.2: {}
- /broccoli-source@3.0.1:
- resolution: {integrity: sha512-ZbGVQjivWi0k220fEeIUioN6Y68xjMy0xiLAc0LdieHI99gw+tafU8w0CggBDYVNsJMKUr006AZaM7gNEwCxEg==}
- engines: {node: 8.* || 10.* || >= 12.*}
+ broccoli-source@3.0.1:
dependencies:
broccoli-node-api: 1.7.0
- /broccoli-sri-hash@2.1.2:
- resolution: {integrity: sha512-toLD/v7ut2ajcH8JsdCMG2Bpq2qkwTcKM6CMzVMSAJjaz/KpK69fR+gSqe1dsjh+QTdxG0yVvkq3Sij/XMzV6A==}
+ broccoli-sri-hash@2.1.2:
dependencies:
broccoli-caching-writer: 2.3.1
mkdirp: 0.5.6
@@ -5111,11 +12260,8 @@ packages:
symlink-or-copy: 1.3.1
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli-stew@1.6.0:
- resolution: {integrity: sha512-sUwCJNnYH4Na690By5xcEMAZqKgquUQnMAEuIiL3Z2k63mSw9Xg+7Ew4wCrFrMmXMcLpWjZDOm6Yqnq268N+ZQ==}
- engines: {node: ^4.5 || 6.* || >= 7.*}
+ broccoli-stew@1.6.0:
dependencies:
broccoli-debug: 0.6.5
broccoli-funnel: 2.0.2
@@ -5126,18 +12272,15 @@ packages:
debug: 3.2.7
ensure-posix-path: 1.1.1
fs-extra: 5.0.0
- minimatch: 3.1.2
- resolve: 1.22.8
+ minimatch: 3.1.5
+ resolve: 1.22.12
rsvp: 4.8.5
symlink-or-copy: 1.3.1
walk-sync: 0.3.4
transitivePeerDependencies:
- supports-color
- dev: false
- /broccoli-stew@3.0.0:
- resolution: {integrity: sha512-NXfi+Vas24n3Ivo21GvENTI55qxKu7OwKRnCLWXld8MiLiQKQlWIq28eoARaFj0lTUFwUa4jKZeA7fW9PiWQeg==}
- engines: {node: 8.* || >= 10.*}
+ broccoli-stew@3.0.0:
dependencies:
broccoli-debug: 0.6.5
broccoli-funnel: 2.0.2
@@ -5145,51 +12288,44 @@ packages:
broccoli-persistent-filter: 2.3.1
broccoli-plugin: 2.1.0
chalk: 2.4.2
- debug: 4.3.4
+ debug: 4.4.3
ensure-posix-path: 1.1.1
fs-extra: 8.1.0
- minimatch: 3.1.2
- resolve: 1.22.8
+ minimatch: 3.1.5
+ resolve: 1.22.12
rsvp: 4.8.5
symlink-or-copy: 1.3.1
walk-sync: 1.1.4
transitivePeerDependencies:
- supports-color
- /broccoli-string-replace@0.1.2:
- resolution: {integrity: sha512-QHESTrrrPlKuXQNWsvXawSQbV2g34wCZ5oKgd6bntdOuN8VHxbg1BCBHqVY5HxXJhWelimgGxj3vI7ECkyij8g==}
+ broccoli-string-replace@0.1.2:
dependencies:
broccoli-persistent-filter: 1.4.6
- minimatch: 3.1.2
+ minimatch: 3.1.5
transitivePeerDependencies:
- supports-color
- dev: false
- /broccoli-terser-sourcemap@4.1.1:
- resolution: {integrity: sha512-8sbpRf0/+XeszBJQM7vph2UNj4Kal0lCI/yubcrBIzb2NvYj5gjTHJABXOdxx5mKNmlCMu2hx2kvOtMpQsxrfg==}
- engines: {node: ^10.12.0 || 12.* || >= 14}
+ broccoli-terser-sourcemap@4.1.1:
dependencies:
async-promise-queue: 1.0.5
broccoli-plugin: 4.0.7
convert-source-map: 2.0.0
- debug: 4.3.4
+ debug: 4.4.3
lodash.defaultsdeep: 4.6.1
matcher-collection: 2.0.1
symlink-or-copy: 1.3.1
- terser: 5.27.1
+ terser: 5.48.0
walk-sync: 2.2.0
workerpool: 6.5.1
transitivePeerDependencies:
- supports-color
- dev: true
- /broccoli@3.5.2:
- resolution: {integrity: sha512-sWi3b3fTUSVPDsz5KsQ5eCQNVAtLgkIE/HYFkEZXR/07clqmd4E/gFiuwSaqa9b+QTXc1Uemfb7TVWbEIURWDg==}
- engines: {node: 8.* || >= 10.*}
+ broccoli@3.5.2:
dependencies:
- '@types/chai': 4.3.11
+ '@types/chai': 4.3.20
'@types/chai-as-promised': 7.1.8
- '@types/express': 4.17.21
+ '@types/express': 4.17.25
ansi-html: 0.0.7
broccoli-node-info: 2.2.0
broccoli-slow-trees: 3.1.0
@@ -5199,7 +12335,7 @@ packages:
console-ui: 3.1.2
esm: 3.2.25
findup-sync: 4.0.0
- handlebars: 4.7.8
+ handlebars: 4.7.9
heimdalljs: 0.2.6
heimdalljs-logger: 0.1.10
https: 1.0.0
@@ -5213,136 +12349,93 @@ packages:
watch-detector: 1.0.2
transitivePeerDependencies:
- supports-color
- dev: true
- /brorand@1.1.0:
- resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==}
- dev: false
+ brorand@1.1.0: {}
- /browserify-aes@1.2.0:
- resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==}
+ browserify-aes@1.2.0:
dependencies:
buffer-xor: 1.0.3
- cipher-base: 1.0.4
+ cipher-base: 1.0.7
create-hash: 1.2.0
evp_bytestokey: 1.0.3
inherits: 2.0.4
safe-buffer: 5.2.1
- dev: false
- /browserify-cipher@1.0.1:
- resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==}
+ browserify-cipher@1.0.1:
dependencies:
browserify-aes: 1.2.0
browserify-des: 1.0.2
evp_bytestokey: 1.0.3
- dev: false
- /browserify-des@1.0.2:
- resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==}
+ browserify-des@1.0.2:
dependencies:
- cipher-base: 1.0.4
+ cipher-base: 1.0.7
des.js: 1.1.0
inherits: 2.0.4
safe-buffer: 5.2.1
- dev: false
- /browserify-rsa@4.1.0:
- resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==}
+ browserify-rsa@4.1.1:
dependencies:
- bn.js: 5.2.1
+ bn.js: 5.2.3
randombytes: 2.1.0
- dev: false
+ safe-buffer: 5.2.1
- /browserify-sign@4.2.2:
- resolution: {integrity: sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==}
- engines: {node: '>= 4'}
+ browserify-sign@4.2.6:
dependencies:
- bn.js: 5.2.1
- browserify-rsa: 4.1.0
+ bn.js: 5.2.3
+ browserify-rsa: 4.1.1
create-hash: 1.2.0
create-hmac: 1.1.7
- elliptic: 6.5.4
+ elliptic: 6.6.1
inherits: 2.0.4
- parse-asn1: 5.1.6
- readable-stream: 3.6.2
+ parse-asn1: 5.1.9
+ readable-stream: 2.3.8
safe-buffer: 5.2.1
- dev: false
- /browserify-zlib@0.2.0:
- resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==}
+ browserify-zlib@0.2.0:
dependencies:
pako: 1.0.11
- dev: false
- /browserslist@4.23.0:
- resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
+ browserslist@4.28.2:
dependencies:
- caniuse-lite: 1.0.30001588
- electron-to-chromium: 1.4.673
- node-releases: 2.0.14
- update-browserslist-db: 1.0.13(browserslist@4.23.0)
+ baseline-browser-mapping: 2.10.33
+ caniuse-lite: 1.0.30001793
+ electron-to-chromium: 1.5.366
+ node-releases: 2.0.47
+ update-browserslist-db: 1.2.3(browserslist@4.28.2)
- /bser@2.1.1:
- resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
+ bser@2.1.1:
dependencies:
node-int64: 0.4.0
- dev: true
- /buffer-from@1.1.2:
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+ buffer-from@1.1.2: {}
- /buffer-xor@1.0.3:
- resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==}
- dev: false
+ buffer-xor@1.0.3: {}
- /buffer@4.9.2:
- resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==}
+ buffer@4.9.2:
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
isarray: 1.0.0
- dev: false
- /buffer@5.7.1:
- resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+ buffer@5.7.1:
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
- /builtin-modules@3.3.0:
- resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
- engines: {node: '>=6'}
- dev: false
+ builtin-modules@3.3.0: {}
- /builtin-status-codes@3.0.0:
- resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==}
- dev: false
+ builtin-status-codes@3.0.0: {}
- /builtins@5.0.1:
- resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
+ builtins@5.1.0:
dependencies:
- semver: 7.6.0
- dev: true
-
- /bytes@1.0.0:
- resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==}
- dev: true
+ semver: 7.8.1
- /bytes@3.0.0:
- resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
- engines: {node: '>= 0.8'}
- dev: true
+ bytes@1.0.0: {}
- /bytes@3.1.2:
- resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
- engines: {node: '>= 0.8'}
- dev: true
+ bytes@3.1.2: {}
- /cacache@12.0.4:
- resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==}
+ cacache@12.0.4:
dependencies:
bluebird: 3.7.2
chownr: 1.1.4
@@ -5359,11 +12452,8 @@ packages:
ssri: 6.0.2
unique-filename: 1.1.1
y18n: 4.0.3
- dev: false
- /cache-base@1.0.1:
- resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
- engines: {node: '>=0.10.0'}
+ cache-base@1.0.1:
dependencies:
collection-visit: 1.0.0
component-emitter: 1.3.1
@@ -5375,107 +12465,80 @@ packages:
union-value: 1.0.1
unset-value: 1.0.0
- /cacheable-request@6.1.0:
- resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==}
- engines: {node: '>=8'}
+ cacheable-request@6.1.0:
dependencies:
clone-response: 1.0.3
get-stream: 5.2.0
- http-cache-semantics: 4.1.1
+ http-cache-semantics: 4.2.0
keyv: 3.1.0
lowercase-keys: 2.0.0
normalize-url: 4.5.1
responselike: 1.0.2
- dev: true
- /calculate-cache-key-for-tree@2.0.0:
- resolution: {integrity: sha512-Quw8a6y8CPmRd6eU+mwypktYCwUcf8yVFIRbNZ6tPQEckX9yd+EBVEPC/GSZZrMWH9e7Vz4pT7XhpmyApRByLQ==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ calculate-cache-key-for-tree@2.0.0:
dependencies:
- json-stable-stringify: 1.1.1
+ json-stable-stringify: 1.3.0
- /call-bind@1.0.7:
- resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
- engines: {node: '>= 0.4'}
+ call-bind-apply-helpers@1.0.2:
dependencies:
- es-define-property: 1.0.0
es-errors: 1.3.0
function-bind: 1.1.2
- get-intrinsic: 1.2.4
- set-function-length: 1.2.1
- /call-me-maybe@1.0.2:
- resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
- dev: false
+ call-bind@1.0.9:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
+ set-function-length: 1.2.2
- /callsites@3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
- dev: true
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
- /camel-case@4.1.2:
- resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
+ call-me-maybe@1.0.2: {}
+
+ callsites@3.1.0: {}
+
+ camel-case@4.1.2:
dependencies:
pascal-case: 3.1.2
- tslib: 2.6.2
- dev: false
+ tslib: 2.8.1
- /camelcase-css@2.0.1:
- resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
- engines: {node: '>= 6'}
- dev: false
+ camelcase-css@2.0.1: {}
- /camelcase-keys@7.0.2:
- resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
- engines: {node: '>=12'}
+ camelcase-keys@7.0.2:
dependencies:
camelcase: 6.3.0
map-obj: 4.3.0
quick-lru: 5.1.1
type-fest: 1.4.0
- dev: true
- /camelcase@6.3.0:
- resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
- engines: {node: '>=10'}
- dev: true
+ camelcase@6.3.0: {}
- /can-symlink@1.0.0:
- resolution: {integrity: sha512-RbsNrFyhwkx+6psk/0fK/Q9orOUr9VMxohGd8vTa4djf4TGLfblBgUfqZChrZuW0Q+mz2eBPFLusw9Jfukzmhg==}
- hasBin: true
+ can-symlink@1.0.0:
dependencies:
tmp: 0.0.28
- /caniuse-api@3.0.0:
- resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
+ caniuse-api@3.0.0:
dependencies:
- browserslist: 4.23.0
- caniuse-lite: 1.0.30001588
+ browserslist: 4.28.2
+ caniuse-lite: 1.0.30001793
lodash.memoize: 4.1.2
lodash.uniq: 4.5.0
- dev: false
- /caniuse-lite@1.0.30001588:
- resolution: {integrity: sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==}
+ caniuse-lite@1.0.30001793: {}
- /capture-exit@2.0.0:
- resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ capture-exit@2.0.0:
dependencies:
rsvp: 4.8.5
- dev: true
- /cardinal@1.0.0:
- resolution: {integrity: sha512-INsuF4GyiFLk8C91FPokbKTc/rwHqV4JnfatVZ6GPhguP1qmkRWX2dp5tepYboYdPpGWisLVLI+KsXoXFPRSMg==}
- hasBin: true
+ cardinal@1.0.0:
dependencies:
ansicolors: 0.2.1
redeyed: 1.0.1
- dev: true
- /chalk@1.1.3:
- resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
- engines: {node: '>=0.10.0'}
+ chalk@1.1.3:
dependencies:
ansi-styles: 2.2.1
escape-string-regexp: 1.0.5
@@ -5483,56 +12546,37 @@ packages:
strip-ansi: 3.0.1
supports-color: 2.0.0
- /chalk@2.4.2:
- resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
- engines: {node: '>=4'}
+ chalk@2.4.2:
dependencies:
ansi-styles: 3.2.1
escape-string-regexp: 1.0.5
supports-color: 5.5.0
- /chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
+ chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
supports-color: 7.2.0
- /chalk@5.3.0:
- resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
- engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
- dev: true
+ chalk@5.6.2: {}
- /chardet@0.7.0:
- resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
- dev: true
+ chardet@0.7.0: {}
- /charm@1.0.2:
- resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==}
+ chardet@2.1.1: {}
+
+ charm@1.0.2:
dependencies:
inherits: 2.0.4
- dev: true
- /chart.js@4.4.1:
- resolution: {integrity: sha512-C74QN1bxwV1v2PEujhmKjOZ7iUM4w6BWs23Md/6aOZZSlwMzeCIDGuZay++rBgChYru7/+QFeoQW0fQoP534Dg==}
- engines: {pnpm: '>=7'}
+ chart.js@4.5.1:
dependencies:
- '@kurkle/color': 0.3.2
- dev: false
+ '@kurkle/color': 0.3.4
- /chartjs-adapter-date-fns@3.0.0(chart.js@4.4.1)(date-fns@2.30.0):
- resolution: {integrity: sha512-Rs3iEB3Q5pJ973J93OBTpnP7qoGwvq3nUnoMdtxO+9aoJof7UFcRbWcIDteXuYd1fgAvct/32T9qaLyLuZVwCg==}
- peerDependencies:
- chart.js: '>=2.8.0'
- date-fns: '>=2.0.0'
+ chartjs-adapter-date-fns@3.0.0(chart.js@4.5.1)(date-fns@2.30.0):
dependencies:
- chart.js: 4.4.1
+ chart.js: 4.5.1
date-fns: 2.30.0
- dev: false
- /chokidar@2.1.8:
- resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==}
- deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
+ chokidar@2.1.8:
dependencies:
anymatch: 2.0.0
async-each: 1.0.6
@@ -5549,15 +12593,12 @@ packages:
fsevents: 1.2.13
transitivePeerDependencies:
- supports-color
- dev: false
optional: true
- /chokidar@3.6.0:
- resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
- engines: {node: '>= 8.10.0'}
+ chokidar@3.6.0:
dependencies:
anymatch: 3.1.3
- braces: 3.0.2
+ braces: 3.0.3
glob-parent: 5.1.2
is-binary-path: 2.1.0
is-glob: 4.0.3
@@ -5565,298 +12606,188 @@ packages:
readdirp: 3.6.0
optionalDependencies:
fsevents: 2.3.3
- dev: false
- /chownr@1.1.4:
- resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
- dev: false
+ chokidar@5.0.0:
+ dependencies:
+ readdirp: 5.0.0
- /chrome-trace-event@1.0.3:
- resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
- engines: {node: '>=6.0'}
+ chownr@1.1.4: {}
- /ci-info@3.9.0:
- resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
- engines: {node: '>=8'}
- dev: true
+ chrome-trace-event@1.0.4: {}
- /cipher-base@1.0.4:
- resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==}
+ ci-info@3.9.0: {}
+
+ cipher-base@1.0.7:
dependencies:
inherits: 2.0.4
safe-buffer: 5.2.1
- dev: false
+ to-buffer: 1.2.2
- /class-utils@0.3.6:
- resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
- engines: {node: '>=0.10.0'}
+ class-utils@0.3.6:
dependencies:
arr-union: 3.1.0
define-property: 0.2.5
isobject: 3.0.1
static-extend: 0.1.2
- /cldr-core@44.1.0:
- resolution: {integrity: sha512-ssbJaXu3pCkc4YqNC6xHhgleZG7YqnOFZ9laMlJfHOfnspoA9waI4AH54gKB3Fe/+wI4i3cVxKFdCTVGTRw+UA==}
- dev: false
+ cldr-core@44.1.0: {}
- /clean-base-url@1.0.0:
- resolution: {integrity: sha512-9q6ZvUAhbKOSRFY7A/irCQ/rF0KIpa3uXpx6izm8+fp7b2H4hLeUJ+F1YYk9+gDQ/X8Q0MEyYs+tG3cht//HTg==}
- dev: true
+ clean-base-url@1.0.0: {}
- /clean-css-promise@0.1.1:
- resolution: {integrity: sha512-tzWkANXMD70ETa/wAu2TXAAxYWS0ZjVUFM2dVik8RQBoAbGMFJv4iVluz3RpcoEbo++fX4RV/BXfgGoOjp8o3Q==}
+ clean-css-promise@0.1.1:
dependencies:
array-to-error: 1.1.1
clean-css: 3.4.28
pinkie-promise: 2.0.1
- dev: true
- /clean-css@3.4.28:
- resolution: {integrity: sha512-aTWyttSdI2mYi07kWqHi24NUU9YlELFKGOAgFzZjDN1064DMAOy2FBuoyGmkKRlXkbpXd0EVHmiVkbKhKoirTw==}
- engines: {node: '>=0.10.0'}
- hasBin: true
+ clean-css@3.4.28:
dependencies:
commander: 2.8.1
source-map: 0.4.4
- dev: true
- /clean-css@5.3.3:
- resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
- engines: {node: '>= 10.0'}
+ clean-css@5.3.3:
dependencies:
source-map: 0.6.1
- dev: true
- /clean-stack@2.2.0:
- resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
- engines: {node: '>=6'}
- dev: true
+ clean-stack@2.2.0: {}
- /clean-up-path@1.0.0:
- resolution: {integrity: sha512-PHGlEF0Z6976qQyN6gM7kKH6EH0RdfZcc8V+QhFe36eRxV0SMH5OUBZG7Bxa9YcreNzyNbK63cGiZxdSZgosRw==}
+ clean-up-path@1.0.0: {}
- /cli-cursor@2.1.0:
- resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==}
- engines: {node: '>=4'}
+ cli-cursor@2.1.0:
dependencies:
restore-cursor: 2.0.0
- dev: true
- /cli-cursor@3.1.0:
- resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
- engines: {node: '>=8'}
+ cli-cursor@3.1.0:
dependencies:
restore-cursor: 3.1.0
- dev: true
- /cli-spinners@2.9.2:
- resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
- engines: {node: '>=6'}
- dev: true
+ cli-spinners@2.9.2: {}
- /cli-table3@0.6.3:
- resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==}
- engines: {node: 10.* || >= 12.*}
+ cli-table3@0.6.5:
dependencies:
string-width: 4.2.3
optionalDependencies:
'@colors/colors': 1.5.0
- dev: true
- /cli-table@0.3.11:
- resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
- engines: {node: '>= 0.2.0'}
+ cli-table@0.3.11:
dependencies:
colors: 1.0.3
- dev: true
- /cli-width@2.2.1:
- resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==}
- dev: true
+ cli-width@2.2.1: {}
- /cli-width@3.0.0:
- resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
- engines: {node: '>= 10'}
- dev: true
+ cli-width@3.0.0: {}
- /cli-width@4.1.0:
- resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
- engines: {node: '>= 12'}
- dev: true
+ cli-width@4.1.0: {}
- /cliui@8.0.1:
- resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
- engines: {node: '>=12'}
+ cliui@8.0.1:
dependencies:
string-width: 4.2.3
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
- dev: true
- /clone-deep@4.0.1:
- resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
- engines: {node: '>=6'}
+ clone-deep@4.0.1:
dependencies:
is-plain-object: 2.0.4
kind-of: 6.0.3
shallow-clone: 3.0.1
- dev: false
- /clone-response@1.0.3:
- resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
+ clone-response@1.0.3:
dependencies:
mimic-response: 1.0.1
- dev: true
- /clone@1.0.4:
- resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
- engines: {node: '>=0.8'}
- dev: true
+ clone@1.0.4: {}
- /clone@2.1.2:
- resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
- engines: {node: '>=0.8'}
+ clone@2.1.2: {}
- /collection-visit@1.0.0:
- resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
- engines: {node: '>=0.10.0'}
+ clsx@2.1.1: {}
+
+ collection-visit@1.0.0:
dependencies:
map-visit: 1.0.0
object-visit: 1.0.1
- /color-convert@0.5.3:
- resolution: {integrity: sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==}
- dev: false
+ color-convert@0.5.3: {}
- /color-convert@1.9.3:
- resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ color-convert@1.9.3:
dependencies:
color-name: 1.1.3
- /color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
+ color-convert@2.0.1:
dependencies:
color-name: 1.1.4
- /color-name@1.1.3:
- resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+ color-name@1.1.3: {}
- /color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ color-name@1.1.4: {}
- /color-support@1.1.3:
- resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
- hasBin: true
- dev: true
+ colord@2.9.3: {}
- /colord@2.9.3:
- resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
- dev: true
+ colors@1.0.3: {}
- /colors@1.0.3:
- resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
- engines: {node: '>=0.1.90'}
- dev: true
+ colors@1.4.0: {}
- /colors@1.4.0:
- resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==}
- engines: {node: '>=0.1.90'}
- dev: true
+ commander@14.0.3: {}
- /commander@2.20.3:
- resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ commander@2.20.3: {}
- /commander@2.8.1:
- resolution: {integrity: sha512-+pJLBFVk+9ZZdlAOB5WuIElVPPth47hILFkmGym57aq8kwxsowvByvB0DHs1vQAhyMZzdcpTtF0VDKGkSDR4ZQ==}
- engines: {node: '>= 0.6.x'}
+ commander@2.8.1:
dependencies:
graceful-readlink: 1.0.1
- dev: true
- /commander@4.1.1:
- resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
- engines: {node: '>= 6'}
+ commander@4.1.1: {}
- /commander@7.2.0:
- resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
- engines: {node: '>= 10'}
- dev: true
+ commander@7.2.0: {}
- /commander@8.3.0:
- resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
- engines: {node: '>= 12'}
- dev: true
+ commander@8.3.0: {}
- /common-tags@1.8.2:
- resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==}
- engines: {node: '>=4.0.0'}
+ common-ancestor-path@1.0.1: {}
- /commondir@1.0.1:
- resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
+ common-tags@1.8.2: {}
- /component-emitter@1.3.1:
- resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
+ commondir@1.0.1: {}
- /compress-json@3.1.0:
- resolution: {integrity: sha512-Zcq4jRC5ZpfaOY3mbBWOANtGuMHJ/hsTENcwN1/lEkrogcoAF7HBma1RLe/CICZO6IquK1U0EaPzmnlDIFRNjA==}
- dev: false
+ component-emitter@1.3.1: {}
- /compressible@2.0.18:
- resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
- engines: {node: '>= 0.6'}
+ compress-json@3.4.0: {}
+
+ compressible@2.0.18:
dependencies:
- mime-db: 1.52.0
- dev: true
+ mime-db: 1.54.0
- /compression@1.7.4:
- resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
- engines: {node: '>= 0.8.0'}
+ compression@1.8.1:
dependencies:
- accepts: 1.3.8
- bytes: 3.0.0
+ bytes: 3.1.2
compressible: 2.0.18
debug: 2.6.9
- on-headers: 1.0.2
- safe-buffer: 5.1.2
+ negotiator: 0.6.4
+ on-headers: 1.1.0
+ safe-buffer: 5.2.1
vary: 1.1.2
transitivePeerDependencies:
- supports-color
- dev: true
- /concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ concat-map@0.0.1: {}
- /concat-stream@1.6.2:
- resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
- engines: {'0': node >= 0.8}
+ concat-stream@1.6.2:
dependencies:
buffer-from: 1.1.2
inherits: 2.0.4
readable-stream: 2.3.8
typedarray: 0.0.6
- dev: false
- /concurrently@8.2.2:
- resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==}
- engines: {node: ^14.13.0 || >=16.0.0}
- hasBin: true
+ concurrently@8.2.2:
dependencies:
chalk: 4.1.2
date-fns: 2.30.0
- lodash: 4.17.21
- rxjs: 7.8.1
- shell-quote: 1.8.1
+ lodash: 4.18.1
+ rxjs: 7.8.2
+ shell-quote: 1.8.4
spawn-command: 0.0.2
supports-color: 8.1.1
tree-kill: 1.2.2
yargs: 17.7.2
- dev: true
- /configstore@5.0.1:
- resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==}
- engines: {node: '>=8'}
+ configstore@5.0.1:
dependencies:
dot-prop: 5.3.0
graceful-fs: 4.2.11
@@ -5864,11 +12795,8 @@ packages:
unique-string: 2.0.0
write-file-atomic: 3.0.3
xdg-basedir: 4.0.0
- dev: true
- /connect@3.7.0:
- resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==}
- engines: {node: '>= 0.10.0'}
+ connect@3.7.0:
dependencies:
debug: 2.6.9
finalhandler: 1.1.2
@@ -5876,245 +12804,54 @@ packages:
utils-merge: 1.0.1
transitivePeerDependencies:
- supports-color
- dev: true
-
- /console-browserify@1.2.0:
- resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==}
- dev: false
- /console-control-strings@1.1.0:
- resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
- dev: true
+ console-browserify@1.2.0: {}
- /console-ui@3.1.2:
- resolution: {integrity: sha512-+5j3R4wZJcEYZeXk30whc4ZU/+fWW9JMTNntVuMYpjZJ9n26Cxr0tUBXco1NRjVZRpRVvZ4DDKKKIHNYeUG9Dw==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ console-ui@3.1.2:
dependencies:
chalk: 2.4.2
inquirer: 6.5.2
- json-stable-stringify: 1.1.1
+ json-stable-stringify: 1.3.0
ora: 3.4.0
through2: 3.0.2
- dev: true
- /consolidate@0.16.0(mustache@4.2.0):
- resolution: {integrity: sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==}
- engines: {node: '>= 0.10.0'}
- deprecated: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog
- peerDependencies:
- arc-templates: ^0.5.3
- atpl: '>=0.7.6'
- babel-core: ^6.26.3
- bracket-template: ^1.1.5
- coffee-script: ^1.12.7
- dot: ^1.1.3
- dust: ^0.3.0
- dustjs-helpers: ^1.7.4
- dustjs-linkedin: ^2.7.5
- eco: ^1.1.0-rc-3
- ect: ^0.5.9
- ejs: ^3.1.5
- haml-coffee: ^1.14.1
- hamlet: ^0.3.3
- hamljs: ^0.6.2
- handlebars: ^4.7.6
- hogan.js: ^3.0.2
- htmling: ^0.0.8
- jade: ^1.11.0
- jazz: ^0.0.18
- jqtpl: ~1.1.0
- just: ^0.1.8
- liquid-node: ^3.0.1
- liquor: ^0.0.5
- lodash: ^4.17.20
- marko: ^3.14.4
- mote: ^0.2.0
- mustache: ^4.0.1
- nunjucks: ^3.2.2
- plates: ~0.4.11
- pug: ^3.0.0
- qejs: ^3.0.5
- ractive: ^1.3.12
- razor-tmpl: ^1.3.1
- react: ^16.13.1
- react-dom: ^16.13.1
- slm: ^2.0.0
- squirrelly: ^5.1.0
- swig: ^1.4.2
- swig-templates: ^2.0.3
- teacup: ^2.0.0
- templayed: '>=0.2.3'
- then-jade: '*'
- then-pug: '*'
- tinyliquid: ^0.2.34
- toffee: ^0.3.6
- twig: ^1.15.2
- twing: ^5.0.2
- underscore: ^1.11.0
- vash: ^0.13.0
- velocityjs: ^2.0.1
- walrus: ^0.10.1
- whiskers: ^0.4.0
- peerDependenciesMeta:
- arc-templates:
- optional: true
- atpl:
- optional: true
- babel-core:
- optional: true
- bracket-template:
- optional: true
- coffee-script:
- optional: true
- dot:
- optional: true
- dust:
- optional: true
- dustjs-helpers:
- optional: true
- dustjs-linkedin:
- optional: true
- eco:
- optional: true
- ect:
- optional: true
- ejs:
- optional: true
- haml-coffee:
- optional: true
- hamlet:
- optional: true
- hamljs:
- optional: true
- handlebars:
- optional: true
- hogan.js:
- optional: true
- htmling:
- optional: true
- jade:
- optional: true
- jazz:
- optional: true
- jqtpl:
- optional: true
- just:
- optional: true
- liquid-node:
- optional: true
- liquor:
- optional: true
- lodash:
- optional: true
- marko:
- optional: true
- mote:
- optional: true
- mustache:
- optional: true
- nunjucks:
- optional: true
- plates:
- optional: true
- pug:
- optional: true
- qejs:
- optional: true
- ractive:
- optional: true
- razor-tmpl:
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
- slm:
- optional: true
- squirrelly:
- optional: true
- swig:
- optional: true
- swig-templates:
- optional: true
- teacup:
- optional: true
- templayed:
- optional: true
- then-jade:
- optional: true
- then-pug:
- optional: true
- tinyliquid:
- optional: true
- toffee:
- optional: true
- twig:
- optional: true
- twing:
- optional: true
- underscore:
- optional: true
- vash:
- optional: true
- velocityjs:
- optional: true
- walrus:
- optional: true
- whiskers:
- optional: true
- dependencies:
- bluebird: 3.7.2
+ consolidate@1.0.4(@babel/core@7.29.7)(handlebars@4.7.9)(lodash@4.18.1)(mustache@4.2.0)(underscore@1.13.8):
+ optionalDependencies:
+ '@babel/core': 7.29.7
+ handlebars: 4.7.9
+ lodash: 4.18.1
mustache: 4.2.0
- dev: true
+ underscore: 1.13.8
- /constants-browserify@1.0.0:
- resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==}
- dev: false
+ constants-browserify@1.0.0: {}
- /consumable-stream@2.0.0:
- resolution: {integrity: sha512-I6WA2JVYXs/68rEvi1ie3rZjP6qusTVFEQkbzR+WC+fY56TpwiGTIDJETsrnlxv5CsnmK69ps6CkYvIbpEEqBA==}
- dev: false
+ consumable-stream@2.0.0: {}
- /content-disposition@0.5.4:
- resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
- engines: {node: '>= 0.6'}
+ content-disposition@0.5.4:
dependencies:
safe-buffer: 5.2.1
- dev: true
- /content-type@1.0.5:
- resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
- engines: {node: '>= 0.6'}
- dev: true
+ content-disposition@1.1.0: {}
- /continuable-cache@0.3.1:
- resolution: {integrity: sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==}
- dev: true
+ content-tag@4.2.0: {}
- /convert-source-map@1.9.0:
- resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
- dev: false
+ content-type@1.0.5: {}
- /convert-source-map@2.0.0:
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+ content-type@2.0.0: {}
- /cookie-signature@1.0.6:
- resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
- dev: true
+ continuable-cache@0.3.1: {}
- /cookie@0.4.2:
- resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
- engines: {node: '>= 0.6'}
- dev: true
+ convert-source-map@1.9.0: {}
- /cookie@0.5.0:
- resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
- engines: {node: '>= 0.6'}
- dev: true
+ convert-source-map@2.0.0: {}
- /copy-concurrently@1.0.5:
- resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==}
- deprecated: This package is no longer supported.
+ cookie-signature@1.0.7: {}
+
+ cookie-signature@1.2.2: {}
+
+ cookie@0.7.2: {}
+
+ copy-concurrently@1.0.5:
dependencies:
aproba: 1.2.0
fs-write-stream-atomic: 1.0.10
@@ -6122,528 +12859,362 @@ packages:
mkdirp: 0.5.6
rimraf: 2.7.1
run-queue: 1.0.3
- dev: false
- /copy-dereference@1.0.0:
- resolution: {integrity: sha512-40TSLuhhbiKeszZhK9LfNdazC67Ue4kq/gGwN5sdxEUWPXTIMmKmGmgD9mPfNKVAeecEW+NfEIpBaZoACCQLLw==}
- dev: true
+ copy-dereference@1.0.0: {}
- /copy-descriptor@0.1.1:
- resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
- engines: {node: '>=0.10.0'}
+ copy-descriptor@0.1.1: {}
- /core-js-compat@3.36.0:
- resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==}
+ core-js-compat@3.49.0:
dependencies:
- browserslist: 4.23.0
+ browserslist: 4.28.2
- /core-js@2.6.12:
- resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
- deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
- requiresBuild: true
+ core-js@2.6.12: {}
- /core-object@3.1.5:
- resolution: {integrity: sha512-sA2/4+/PZ/KV6CKgjrVrrUVBKCkdDO02CUlQ0YKTQoYUwPYNOtOAcWlbYhd5v/1JqYaA6oZ4sDlOU4ppVw6Wbg==}
- engines: {node: '>= 4'}
+ core-object@3.1.5:
dependencies:
chalk: 2.4.2
- dev: true
- /core-util-is@1.0.3:
- resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+ core-util-is@1.0.3: {}
- /cors@2.8.5:
- resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
- engines: {node: '>= 0.10'}
+ cors@2.8.6:
dependencies:
object-assign: 4.1.1
vary: 1.1.2
- dev: true
- /cosmiconfig@8.3.6:
- resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
- engines: {node: '>=14'}
- peerDependencies:
- typescript: '>=4.9.5'
- peerDependenciesMeta:
- typescript:
- optional: true
+ cosmiconfig@8.3.6:
dependencies:
- import-fresh: 3.3.0
- js-yaml: 4.1.0
+ import-fresh: 3.3.1
+ js-yaml: 4.2.0
parse-json: 5.2.0
path-type: 4.0.0
- dev: true
- /create-ecdh@4.0.4:
- resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==}
+ create-ecdh@4.0.4:
dependencies:
- bn.js: 4.12.0
- elliptic: 6.5.4
- dev: false
+ bn.js: 4.12.3
+ elliptic: 6.6.1
- /create-hash@1.2.0:
- resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==}
+ create-hash@1.2.0:
dependencies:
- cipher-base: 1.0.4
+ cipher-base: 1.0.7
inherits: 2.0.4
md5.js: 1.3.5
- ripemd160: 2.0.2
- sha.js: 2.4.11
- dev: false
+ ripemd160: 2.0.3
+ sha.js: 2.4.12
- /create-hmac@1.1.7:
- resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==}
+ create-hmac@1.1.7:
dependencies:
- cipher-base: 1.0.4
+ cipher-base: 1.0.7
create-hash: 1.2.0
inherits: 2.0.4
- ripemd160: 2.0.2
+ ripemd160: 2.0.3
safe-buffer: 5.2.1
- sha.js: 2.4.11
- dev: false
+ sha.js: 2.4.12
- /cross-spawn@6.0.5:
- resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
- engines: {node: '>=4.8'}
+ crelt@1.0.6: {}
+
+ cross-spawn@6.0.6:
dependencies:
nice-try: 1.0.5
path-key: 2.0.1
semver: 5.7.2
shebang-command: 1.2.0
which: 1.3.1
- dev: true
- /cross-spawn@7.0.3:
- resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
- engines: {node: '>= 8'}
+ cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
shebang-command: 2.0.0
which: 2.0.2
- /crypto-browserify@3.12.0:
- resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==}
+ crypto-browserify@3.12.1:
dependencies:
browserify-cipher: 1.0.1
- browserify-sign: 4.2.2
+ browserify-sign: 4.2.6
create-ecdh: 4.0.4
create-hash: 1.2.0
create-hmac: 1.1.7
diffie-hellman: 5.0.3
+ hash-base: 3.0.5
inherits: 2.0.4
- pbkdf2: 3.1.2
+ pbkdf2: 3.1.6
public-encrypt: 4.0.3
randombytes: 2.1.0
randomfill: 1.0.4
- dev: false
- /crypto-random-string@2.0.0:
- resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
- engines: {node: '>=8'}
- dev: true
+ crypto-random-string@2.0.0: {}
- /css-blank-pseudo@6.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-goSnEITByxTzU4Oh5oJZrEWudxTqk7L6IXj1UW69pO6Hv0UdX+Vsrt02FFu5DweRh2bLu6WpX/+zsQCu5O1gKw==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ css-blank-pseudo@6.0.2(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
- /css-color-converter@2.0.0:
- resolution: {integrity: sha512-oLIG2soZz3wcC3aAl/7Us5RS8Hvvc6I8G8LniF/qfMmrm7fIKQ8RIDDRZeKyGL2SrWfNqYspuLShbnjBMVWm8g==}
+ css-color-converter@2.0.0:
dependencies:
color-convert: 0.5.3
color-name: 1.1.4
css-unit-converter: 1.1.2
- dev: false
- /css-functions-list@3.2.1:
- resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==}
- engines: {node: '>=12 || >=16'}
- dev: true
+ css-functions-list@3.3.3: {}
- /css-has-pseudo@6.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-WwoVKqNxApfEI7dWFyaHoeFCcUPD+lPyjL6lNpRUNX7IyIUuVpawOTwwA5D0ZR6V2xQZonNPVj8kEcxzEaAQfQ==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ css-has-pseudo@6.0.5(postcss@8.5.15):
dependencies:
- '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15)
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
+ '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2)
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
postcss-value-parser: 4.2.0
- dev: false
- /css-loader@5.2.7(webpack@5.89.0):
- resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==}
- engines: {node: '>= 10.13.0'}
- peerDependencies:
- webpack: ^4.27.0 || ^5.0.0
+ css-loader@5.2.7(webpack@5.107.2(postcss@8.5.15)):
dependencies:
- icss-utils: 5.1.0(postcss@8.4.35)
+ icss-utils: 5.1.0(postcss@8.5.15)
loader-utils: 2.0.4
- postcss: 8.4.35
- postcss-modules-extract-imports: 3.0.0(postcss@8.4.35)
- postcss-modules-local-by-default: 4.0.4(postcss@8.4.35)
- postcss-modules-scope: 3.1.1(postcss@8.4.35)
- postcss-modules-values: 4.0.0(postcss@8.4.35)
+ postcss: 8.5.15
+ postcss-modules-extract-imports: 3.1.0(postcss@8.5.15)
+ postcss-modules-local-by-default: 4.2.0(postcss@8.5.15)
+ postcss-modules-scope: 3.2.1(postcss@8.5.15)
+ postcss-modules-values: 4.0.0(postcss@8.5.15)
postcss-value-parser: 4.2.0
schema-utils: 3.3.0
- semver: 7.6.0
- webpack: 5.89.0
+ semver: 7.8.1
+ webpack: 5.107.2(postcss@8.5.15)
- /css-prefers-color-scheme@9.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-iFit06ochwCKPRiWagbTa1OAWCvWWVdEnIFd8BaRrgO8YrrNh4RAWUQTFcYX5tdFZgFl1DJ3iiULchZyEbnF4g==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ css-prefers-color-scheme@9.0.1(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- dev: false
+ postcss: 8.5.15
- /css-tree@2.3.1:
- resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
- engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+ css-tree@2.3.1:
dependencies:
mdn-data: 2.0.30
- source-map-js: 1.0.2
- dev: true
+ source-map-js: 1.2.1
- /css-unit-converter@1.1.2:
- resolution: {integrity: sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==}
- dev: false
+ css-unit-converter@1.1.2: {}
- /cssdb@7.11.0:
- resolution: {integrity: sha512-YUVAJhjDcTZzVD5XE49l3PQtGE29vvhzaL1bM3BtkvSmIRJeYENdfn1dn5jauBI7BBF+IyyiBS+oSVx3Hz/Gaw==}
- dev: false
+ cssdb@8.9.0: {}
- /cssesc@3.0.0:
- resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
- engines: {node: '>=4'}
- hasBin: true
+ cssesc@3.0.0: {}
- /cyclist@1.0.2:
- resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==}
- dev: false
+ csstype@3.2.3: {}
- /dag-map@2.0.2:
- resolution: {integrity: sha512-xnsprIzYuDeiyu5zSKwilV/ajRHxnoMlAhEREfyfTgTSViMVY2fGP1ZcHJbtwup26oCkofySU/m6oKJ3HrkW7w==}
- dev: true
+ cyclist@1.0.2: {}
- /date-fns@2.30.0:
- resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
- engines: {node: '>=0.11'}
+ dag-map@2.0.2: {}
+
+ data-view-buffer@1.0.2:
dependencies:
- '@babel/runtime': 7.23.9
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
- /debug@2.6.9:
- resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
+ data-view-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-offset@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ date-fns@2.30.0:
+ dependencies:
+ '@babel/runtime': 7.29.7
+
+ debug@2.6.9:
dependencies:
ms: 2.0.0
- /debug@3.2.7:
- resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
+ debug@3.2.7:
dependencies:
ms: 2.1.3
- /debug@4.3.4:
- resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
+ debug@4.4.3:
dependencies:
- ms: 2.1.2
+ ms: 2.1.3
- /decamelize-keys@1.1.1:
- resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
- engines: {node: '>=0.10.0'}
+ decamelize-keys@1.1.1:
dependencies:
decamelize: 1.2.0
map-obj: 1.0.1
- dev: true
- /decamelize@1.2.0:
- resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
- engines: {node: '>=0.10.0'}
- dev: true
+ decamelize@1.2.0: {}
- /decamelize@5.0.1:
- resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
- engines: {node: '>=10'}
- dev: true
+ decamelize@5.0.1: {}
- /decode-uri-component@0.2.2:
- resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
- engines: {node: '>=0.10'}
+ decimal.js@10.6.0: {}
- /decompress-response@3.3.0:
- resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==}
- engines: {node: '>=4'}
+ decode-uri-component@0.2.2: {}
+
+ decompress-response@3.3.0:
dependencies:
mimic-response: 1.0.1
- dev: true
- /deep-extend@0.6.0:
- resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
- engines: {node: '>=4.0.0'}
- dev: true
+ decorator-transforms@1.2.1(@babel/core@7.29.7):
+ dependencies:
+ '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.7)
+ babel-import-util: 2.1.1
+ transitivePeerDependencies:
+ - '@babel/core'
- /deep-is@0.1.4:
- resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
- dev: true
+ decorator-transforms@2.3.2(@babel/core@7.29.7):
+ dependencies:
+ '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.7)
+ babel-import-util: 3.0.1
+ transitivePeerDependencies:
+ - '@babel/core'
- /deepmerge@4.3.1:
- resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
- engines: {node: '>=0.10.0'}
- dev: false
+ deep-extend@0.6.0: {}
- /defaults@1.0.4:
- resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+ deep-is@0.1.4: {}
+
+ deepmerge@4.3.1: {}
+
+ defaults@1.0.4:
dependencies:
clone: 1.0.4
- dev: true
- /defer-to-connect@1.1.3:
- resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==}
- dev: true
+ defer-to-connect@1.1.3: {}
- /define-data-property@1.1.4:
- resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
- engines: {node: '>= 0.4'}
+ define-data-property@1.1.4:
dependencies:
- es-define-property: 1.0.0
+ es-define-property: 1.0.1
es-errors: 1.3.0
- gopd: 1.0.1
+ gopd: 1.2.0
- /define-properties@1.2.1:
- resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
- engines: {node: '>= 0.4'}
+ define-properties@1.2.1:
dependencies:
define-data-property: 1.1.4
has-property-descriptors: 1.0.2
object-keys: 1.1.1
- /define-property@0.2.5:
- resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
- engines: {node: '>=0.10.0'}
+ define-property@0.2.5:
dependencies:
- is-descriptor: 0.1.7
+ is-descriptor: 0.1.8
- /define-property@1.0.0:
- resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
- engines: {node: '>=0.10.0'}
+ define-property@1.0.0:
dependencies:
- is-descriptor: 1.0.3
+ is-descriptor: 1.0.4
- /define-property@2.0.2:
- resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
- engines: {node: '>=0.10.0'}
+ define-property@2.0.2:
dependencies:
- is-descriptor: 1.0.3
+ is-descriptor: 1.0.4
isobject: 3.0.1
- /delegates@1.0.0:
- resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
- dev: true
-
- /depd@1.1.2:
- resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
- engines: {node: '>= 0.6'}
- dev: true
-
- /depd@2.0.0:
- resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
- engines: {node: '>= 0.8'}
- dev: true
+ depd@1.1.2: {}
- /dequal@2.0.3:
- resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
- engines: {node: '>=6'}
- dev: true
+ depd@2.0.0: {}
- /des.js@1.1.0:
- resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==}
+ des.js@1.1.0:
dependencies:
inherits: 2.0.4
minimalistic-assert: 1.0.1
- dev: false
- /destroy@1.2.0:
- resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
- engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
- dev: true
+ destroy@1.2.0: {}
- /detect-file@1.0.0:
- resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==}
- engines: {node: '>=0.10.0'}
- dev: true
+ detect-file@1.0.0: {}
- /detect-indent@4.0.0:
- resolution: {integrity: sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==}
- engines: {node: '>=0.10.0'}
+ detect-indent@4.0.0:
dependencies:
repeating: 2.0.1
- dev: false
- /detect-indent@6.1.0:
- resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
- engines: {node: '>=8'}
- dev: true
+ detect-indent@6.1.0: {}
- /detect-newline@3.1.0:
- resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
- engines: {node: '>=8'}
- dev: true
+ detect-newline@3.1.0: {}
- /didyoumean@1.2.2:
- resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
- dev: false
+ devalue@5.8.1: {}
- /diff@5.2.0:
- resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
- engines: {node: '>=0.3.1'}
- dev: true
+ didyoumean@1.2.2: {}
- /diffie-hellman@5.0.3:
- resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==}
+ diff@5.2.2: {}
+
+ diffie-hellman@5.0.3:
dependencies:
- bn.js: 4.12.0
+ bn.js: 4.12.3
miller-rabin: 4.0.1
randombytes: 2.1.0
- dev: false
- /dir-glob@3.0.1:
- resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
- engines: {node: '>=8'}
+ dir-glob@3.0.1:
dependencies:
path-type: 4.0.0
- dev: true
- /dlv@1.1.3:
- resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
- dev: false
+ dlv@1.1.3: {}
- /doctrine@3.0.0:
- resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
- engines: {node: '>=6.0.0'}
+ doctrine@3.0.0:
dependencies:
esutils: 2.0.3
- dev: true
- /domain-browser@1.2.0:
- resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==}
- engines: {node: '>=0.4', npm: '>=1.2'}
- dev: false
+ dom-element-descriptors@0.5.1: {}
- /dot-case@3.0.4:
- resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
+ domain-browser@1.2.0: {}
+
+ dot-case@3.0.4:
dependencies:
no-case: 3.0.4
- tslib: 2.6.2
- dev: true
+ tslib: 2.8.1
- /dot-prop@5.3.0:
- resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
- engines: {node: '>=8'}
+ dot-prop@5.3.0:
dependencies:
is-obj: 2.0.0
- dev: true
- /duplexer3@0.1.5:
- resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==}
- dev: true
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
- /duplexify@3.7.1:
- resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==}
+ duplexer3@0.1.5: {}
+
+ duplexify@3.7.1:
dependencies:
- end-of-stream: 1.4.4
+ end-of-stream: 1.4.5
inherits: 2.0.4
readable-stream: 2.3.8
stream-shift: 1.0.3
- dev: false
- /eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
- dev: false
+ eastasianwidth@0.2.0: {}
- /editions@1.3.4:
- resolution: {integrity: sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==}
- engines: {node: '>=0.8'}
+ editions@1.3.4: {}
- /editions@2.3.1:
- resolution: {integrity: sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==}
- engines: {node: '>=0.8'}
+ editions@2.3.1:
dependencies:
errlop: 2.2.0
semver: 6.3.1
- /ee-first@1.1.1:
- resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- dev: true
+ ee-first@1.1.1: {}
- /electron-to-chromium@1.4.673:
- resolution: {integrity: sha512-zjqzx4N7xGdl5468G+vcgzDhaHkaYgVcf9MqgexcTqsl2UHSCmOj/Bi3HAprg4BZCpC7HyD8a6nZl6QAZf72gw==}
+ electron-to-chromium@1.5.366: {}
- /element-closest@3.0.2:
- resolution: {integrity: sha512-JxKQiJKX0Zr5Q2/bCaTx8P+UbfyMET1OQd61qu5xQFeWr1km3fGaxelSJtnfT27XQ5Uoztn2yIyeamAc/VX13g==}
- engines: {node: '>=0.12.0'}
- dev: false
+ element-closest@3.0.2: {}
- /elliptic@6.5.4:
- resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==}
+ elliptic@6.6.1:
dependencies:
- bn.js: 4.12.0
+ bn.js: 4.12.3
brorand: 1.1.0
hash.js: 1.1.7
hmac-drbg: 1.0.1
inherits: 2.0.4
minimalistic-assert: 1.0.1
minimalistic-crypto-utils: 1.0.1
- dev: false
- /ember-animated@1.1.4(@ember/test-helpers@3.2.0)(ember-source@5.4.0):
- resolution: {integrity: sha512-30omG5vB8naagE7cFW7AfTH4i2r+JyvEPpN/pRoz6Z/I5pYcjhSTrONZs5BAdX8B+B0/hEfZqO7ge/Ui8riBHA==}
- peerDependencies:
- '@ember/test-helpers': ^2.6.0 || ^3.0.0
- peerDependenciesMeta:
- '@ember/test-helpers':
- optional: true
+ ember-animated@1.1.4(@babel/core@7.29.7)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- '@ember/test-helpers': 3.2.0(ember-source@5.4.0)(webpack@5.89.0)
- '@embroider/addon-shim': 1.8.7
- '@embroider/macros': 1.13.5
- '@embroider/util': 1.12.1(ember-source@5.4.0)
- assert-never: 1.2.1
- ember-element-helper: 0.8.5(ember-source@5.4.0)
+ '@embroider/addon-shim': 1.10.2
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ '@embroider/util': 1.13.5(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ assert-never: 1.4.0
+ ember-element-helper: 0.8.8
+ optionalDependencies:
+ '@ember/test-helpers': 3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
+ - '@babel/core'
- '@glint/environment-ember-loose'
- '@glint/template'
- ember-source
- supports-color
- dev: false
- /ember-asset-loader@1.0.0:
- resolution: {integrity: sha512-JXr9bEkkzXiamW2kMk36U2VugLzo4MeoTQGRxvpNFqU1oldUMzm/yFPVvtjsVOjishH4pVwQuOK9Sjrx9E2xZg==}
- engines: {node: 14.* || 16.* || >= 17}
+ ember-asset-loader@1.0.0:
dependencies:
- broccoli-caching-writer: 3.0.3
+ broccoli-caching-writer: 3.1.0
broccoli-funnel: 3.0.8
broccoli-merge-trees: 4.2.0
ember-cli-babel: 7.26.11
@@ -6651,37 +13222,31 @@ packages:
walk-sync: 3.0.0
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-assign-helper@0.4.0:
- resolution: {integrity: sha512-GKHhT4HD2fhtDnuBk6eCdCA8XGew9hY7TVs8zjrykegiI7weC0CGtpJscmIG3O0gEEb0d07UTkF2pjfNGLx4Nw==}
- engines: {node: '>= 12'}
+ ember-assign-helper@0.4.0:
dependencies:
ember-cli-babel: 7.26.11
ember-cli-htmlbars: 6.3.0
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-ast-helpers@0.3.5:
- resolution: {integrity: sha512-ZtaGAUDvRX13G9D4t4WbTMhcUzqsw6KqhcHreIiZi3ZhRFlSZ3BumgyJ6buDZj+tCBLiQsxRv7l5AY6imqNR6Q==}
- engines: {node: '>= 6'}
+ ember-assign-helper@0.5.1:
dependencies:
- '@glimmer/compiler': 0.27.0
- '@glimmer/syntax': 0.27.0
- dev: false
+ '@embroider/addon-shim': 1.10.2
+ transitivePeerDependencies:
+ - supports-color
- /ember-auto-import@1.12.2:
- resolution: {integrity: sha512-gLqML2k77AuUiXxWNon1FSzuG1DV7PEPpCLCU5aJvf6fdL6rmFfElsZRh+8ELEB/qP9dT+LHjNEunVzd2dYc8A==}
- engines: {node: '>= 10.*'}
+ ember-ast-helpers@0.4.0: {}
+
+ ember-auto-import@1.12.2:
dependencies:
- '@babel/core': 7.23.2
- '@babel/preset-env': 7.23.9(@babel/core@7.23.2)
- '@babel/traverse': 7.23.9
- '@babel/types': 7.23.9
+ '@babel/core': 7.29.7
+ '@babel/preset-env': 7.29.7(@babel/core@7.29.7)
+ '@babel/traverse': 7.29.7
+ '@babel/types': 7.29.7
'@embroider/shared-internals': 1.8.3
babel-core: 6.26.3
- babel-loader: 8.3.0(@babel/core@7.23.2)(webpack@4.47.0)
+ babel-loader: 8.4.1(@babel/core@7.29.7)(webpack@4.47.0)
babel-plugin-syntax-dynamic-import: 6.18.0
babylon: 6.18.0
broccoli-debug: 0.6.5
@@ -6693,13 +13258,13 @@ packages:
enhanced-resolve: 4.5.0
fs-extra: 6.0.1
fs-tree-diff: 2.0.1
- handlebars: 4.7.8
+ handlebars: 4.7.9
js-string-escape: 1.0.1
- lodash: 4.17.21
+ lodash: 4.18.1
mkdirp: 0.5.6
resolve-package-path: 3.1.0
rimraf: 2.7.1
- semver: 7.6.0
+ semver: 7.8.1
symlink-or-copy: 1.3.1
typescript-memoize: 1.1.1
walk-sync: 0.3.4
@@ -6708,63 +13273,21 @@ packages:
- supports-color
- webpack-cli
- webpack-command
- dev: false
-
- /ember-auto-import@2.6.3(webpack@5.89.0):
- resolution: {integrity: sha512-uLhrRDJYWCRvQ4JQ1e64XlSrqAKSd6PXaJ9ZsZI6Tlms9T4DtQFxNXasqji2ZRJBVrxEoLCRYX3RTldsQ0vNGQ==}
- engines: {node: 12.* || 14.* || >= 16}
- dependencies:
- '@babel/core': 7.23.2
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2)
- '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.23.2)
- '@babel/preset-env': 7.23.9(@babel/core@7.23.2)
- '@embroider/macros': 1.13.5
- '@embroider/shared-internals': 2.5.2
- babel-loader: 8.3.0(@babel/core@7.23.2)(webpack@5.89.0)
- babel-plugin-ember-modules-api-polyfill: 3.5.0
- babel-plugin-ember-template-compilation: 2.2.1
- babel-plugin-htmlbars-inline-precompile: 5.3.1
- babel-plugin-syntax-dynamic-import: 6.18.0
- broccoli-debug: 0.6.5
- broccoli-funnel: 3.0.8
- broccoli-merge-trees: 4.2.0
- broccoli-plugin: 4.0.7
- broccoli-source: 3.0.1
- css-loader: 5.2.7(webpack@5.89.0)
- debug: 4.3.4
- fs-extra: 10.1.0
- fs-tree-diff: 2.0.1
- handlebars: 4.7.8
- js-string-escape: 1.0.1
- lodash: 4.17.21
- mini-css-extract-plugin: 2.8.0(webpack@5.89.0)
- parse5: 6.0.1
- resolve: 1.22.8
- resolve-package-path: 4.0.3
- semver: 7.6.0
- style-loader: 2.0.0(webpack@5.89.0)
- typescript-memoize: 1.1.1
- walk-sync: 3.0.0
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- - webpack
- /ember-auto-import@2.7.2(webpack@5.89.0):
- resolution: {integrity: sha512-pkWIljmJClYL17YBk8FjO7NrZPQoY9v0b+FooJvaHf/xlDQIBYVP7OaDHbNuNbpj7+wAwSDAnnwxjCoLsmm4cw==}
- engines: {node: 12.* || 14.* || >= 16}
- dependencies:
- '@babel/core': 7.23.2
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2)
- '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.23.2)
- '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.2)
- '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.2)
- '@babel/preset-env': 7.23.9(@babel/core@7.23.2)
- '@embroider/macros': 1.13.5
- '@embroider/shared-internals': 2.5.2
- babel-loader: 8.3.0(@babel/core@7.23.2)(webpack@5.89.0)
+ ember-auto-import@2.13.1(webpack@5.107.2(postcss@8.5.15)):
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.7)
+ '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.7)
+ '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7)
+ '@babel/preset-env': 7.29.7(@babel/core@7.29.7)
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ '@embroider/reverse-exports': 0.2.0
+ '@embroider/shared-internals': 2.9.2
+ babel-loader: 8.4.1(@babel/core@7.29.7)(webpack@5.107.2(postcss@8.5.15))
babel-plugin-ember-modules-api-polyfill: 3.5.0
- babel-plugin-ember-template-compilation: 2.2.1
+ babel-plugin-ember-template-compilation: 2.4.1
babel-plugin-htmlbars-inline-precompile: 5.3.1
babel-plugin-syntax-dynamic-import: 6.18.0
broccoli-debug: 0.6.5
@@ -6772,112 +13295,104 @@ packages:
broccoli-merge-trees: 4.2.0
broccoli-plugin: 4.0.7
broccoli-source: 3.0.1
- css-loader: 5.2.7(webpack@5.89.0)
- debug: 4.3.4
+ css-loader: 5.2.7(webpack@5.107.2(postcss@8.5.15))
+ debug: 4.4.3
fs-extra: 10.1.0
fs-tree-diff: 2.0.1
- handlebars: 4.7.8
+ handlebars: 4.7.9
+ is-subdir: 1.2.0
js-string-escape: 1.0.1
- lodash: 4.17.21
- mini-css-extract-plugin: 2.8.0(webpack@5.89.0)
- minimatch: 3.1.2
+ lodash: 4.18.1
+ mini-css-extract-plugin: 2.10.2(webpack@5.107.2(postcss@8.5.15))
+ minimatch: 3.1.5
parse5: 6.0.1
- resolve: 1.22.8
+ pkg-entry-points: 1.1.1
+ resolve: 1.22.12
resolve-package-path: 4.0.3
- semver: 7.6.0
- style-loader: 2.0.0(webpack@5.89.0)
+ semver: 7.8.1
+ style-loader: 2.0.0(webpack@5.107.2(postcss@8.5.15))
typescript-memoize: 1.1.1
walk-sync: 3.0.0
transitivePeerDependencies:
- '@glint/template'
- supports-color
- webpack
- dev: false
- /ember-basic-dropdown@7.3.0(@babel/core@7.23.2)(@ember/string@3.1.1)(ember-source@5.4.0)(webpack@5.89.0):
- resolution: {integrity: sha512-XzLd1noCrHjG7O35HpZ+ljj7VwPPqon7svbvNJ2U7421e00eXBUVcCioGJFo1NnnPkjc14FTDc5UwktbGSbJdQ==}
- engines: {node: 16.* || >= 18}
- peerDependencies:
- ember-source: ^3.28.0 || ^4.0.0 || >=5.0.0
+ ember-basic-dropdown@8.4.0(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- '@embroider/macros': 1.13.5
- '@embroider/util': 1.12.1(ember-source@5.4.0)
- '@glimmer/component': 1.1.2(@babel/core@7.23.2)
+ '@babel/core': 7.29.7
+ '@ember/test-helpers': 3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
+ '@embroider/addon-shim': 1.10.2
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ '@embroider/util': 1.13.5(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@glimmer/component': 1.1.2(@babel/core@7.29.7)
'@glimmer/tracking': 1.1.2
- ember-auto-import: 2.7.2(webpack@5.89.0)
- ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 6.3.0
- ember-cli-typescript: 5.2.1
- ember-element-helper: 0.8.5(ember-source@5.4.0)
- ember-get-config: 2.1.1
- ember-maybe-in-element: 2.1.0
- ember-modifier: 4.1.0(ember-source@5.4.0)
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
- ember-style-modifier: 3.1.1(@ember/string@3.1.1)(ember-source@5.4.0)(webpack@5.89.0)
- ember-truth-helpers: 4.0.3(ember-source@5.4.0)
+ decorator-transforms: 2.3.2(@babel/core@7.29.7)
+ ember-element-helper: 0.8.8
+ ember-lifeline: 7.0.0(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))
+ ember-modifier: 4.3.0(@babel/core@7.29.7)
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ ember-style-modifier: 4.6.0(@babel/core@7.29.7)
+ ember-truth-helpers: 4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
transitivePeerDependencies:
- - '@babel/core'
- - '@ember/string'
- '@glint/environment-ember-loose'
- '@glint/template'
- supports-color
- - webpack
- dev: false
- /ember-cache-primitive-polyfill@1.0.1(@babel/core@7.23.2):
- resolution: {integrity: sha512-hSPcvIKarA8wad2/b6jDd/eU+OtKmi6uP+iYQbzi5TQpjsqV6b4QdRqrLk7ClSRRKBAtdTuutx+m+X+WlEd2lw==}
- engines: {node: 10.* || >= 12}
+ ember-cache-primitive-polyfill@1.0.1(@babel/core@7.29.7):
dependencies:
ember-cli-babel: 7.26.11
ember-cli-version-checker: 5.1.2
- ember-compatibility-helpers: 1.2.7(@babel/core@7.23.2)
+ ember-compatibility-helpers: 1.2.7(@babel/core@7.29.7)
silent-error: 1.1.1
transitivePeerDependencies:
- '@babel/core'
- supports-color
- dev: true
- /ember-cached-decorator-polyfill@1.0.2(@babel/core@7.23.2)(ember-source@5.4.0):
- resolution: {integrity: sha512-hUX6OYTKltAPAu8vsVZK02BfMTV0OUXrPqvRahYPhgS7D0I6joLjlskd7mhqJMcaXLywqceIy8/s+x8bxF8bpQ==}
- engines: {node: 14.* || >= 16}
- peerDependencies:
- ember-source: ^3.13.0 || ^4.0.0 || >= 5.0.0
+ ember-cached-decorator-polyfill@1.0.2(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- '@embroider/macros': 1.13.5
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
'@glimmer/tracking': 1.1.2
babel-import-util: 1.4.1
- ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.2)
+ ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.29.7)
ember-cli-babel: 7.26.11
ember-cli-babel-plugin-helpers: 1.1.1
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
- '@babel/core'
- '@glint/template'
- supports-color
- dev: true
- /ember-cli-babel-plugin-helpers@1.1.1:
- resolution: {integrity: sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ ember-can@6.0.0(@babel/core@7.29.7)(@ember/string@3.1.1)(ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
+ dependencies:
+ '@ember/string': 3.1.1
+ '@embroider/addon-shim': 1.10.2
+ decorator-transforms: 2.3.2(@babel/core@7.29.7)
+ ember-inflector: 4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-resolver: 11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
- /ember-cli-babel@7.26.11:
- resolution: {integrity: sha512-JJYeYjiz/JTn34q7F5DSOjkkZqy8qwFOOxXfE6pe9yEJqWGu4qErKxlz8I22JoVEQ/aBUO+OcKTpmctvykM9YA==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ ember-cli-babel-plugin-helpers@1.1.1: {}
+
+ ember-cli-babel@7.26.11:
dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2)
- '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.23.2)
- '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.2)
- '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.2)
- '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-runtime': 7.23.9(@babel/core@7.23.2)
- '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.2)
+ '@babel/core': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.7)
+ '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.7)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.29.7)
+ '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-runtime': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7)
'@babel/polyfill': 7.12.1
- '@babel/preset-env': 7.23.9(@babel/core@7.23.2)
+ '@babel/preset-env': 7.29.7(@babel/core@7.29.7)
'@babel/runtime': 7.12.18
amd-name-resolver: 1.3.1
- babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.2)
+ babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.7)
babel-plugin-ember-data-packages-polyfill: 0.1.2
babel-plugin-ember-modules-api-polyfill: 3.5.0
babel-plugin-module-resolver: 3.2.0
@@ -6897,30 +13412,26 @@ packages:
transitivePeerDependencies:
- supports-color
- /ember-cli-babel@8.2.0(@babel/core@7.23.2):
- resolution: {integrity: sha512-8H4+jQElCDo6tA7CamksE66NqBXWs7VNpS3a738L9pZCjg2kXIX4zoyHzkORUqCtr0Au7YsCnrlAMi1v2ALo7A==}
- engines: {node: 16.* || 18.* || >= 20}
- peerDependencies:
- '@babel/core': ^7.12.0
- dependencies:
- '@babel/core': 7.23.2
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2)
- '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.23.2)
- '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.2)
- '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.2)
- '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.2)
- '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-runtime': 7.23.9(@babel/core@7.23.2)
- '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.2)
- '@babel/preset-env': 7.23.9(@babel/core@7.23.2)
+ ember-cli-babel@8.3.1(@babel/core@7.29.7):
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-runtime': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7)
+ '@babel/preset-env': 7.29.7(@babel/core@7.29.7)
'@babel/runtime': 7.12.18
amd-name-resolver: 1.3.1
- babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.2)
+ babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.7)
babel-plugin-ember-data-packages-polyfill: 0.1.2
babel-plugin-ember-modules-api-polyfill: 3.5.0
- babel-plugin-module-resolver: 5.0.0
- broccoli-babel-transpiler: 8.0.0(@babel/core@7.23.2)
+ babel-plugin-module-resolver: 5.0.3
+ broccoli-babel-transpiler: 8.0.2(@babel/core@7.29.7)
broccoli-debug: 0.6.5
broccoli-funnel: 3.0.8
broccoli-source: 3.0.1
@@ -6930,41 +13441,28 @@ packages:
ember-cli-version-checker: 5.1.2
ensure-posix-path: 1.1.1
resolve-package-path: 4.0.3
- semver: 7.6.0
+ semver: 7.8.1
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-cli-clean-css@3.0.0:
- resolution: {integrity: sha512-BbveJCyRvzzkaTH1llLW+MpHe/yzA5zpHOpMIg2vp/3JD9mban9zUm7lphaB0TSpPuMuby9rAhTI8pgXq0ifIA==}
- engines: {node: 16.* || >= 18}
+ ember-cli-clean-css@3.0.0:
dependencies:
broccoli-persistent-filter: 3.1.3
clean-css: 5.3.3
- json-stable-stringify: 1.1.1
+ json-stable-stringify: 1.3.0
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-cli-dependency-checker@3.3.2(ember-cli@5.4.1):
- resolution: {integrity: sha512-PwkrW5oYsdPWwt+0Tojufmv/hxVETTjkrEdK7ANQB2VSnqpA5UcYubwpQM9ONuR2J8wyNDMwEHlqIrk/FYtBsQ==}
- engines: {node: '>= 6'}
- peerDependencies:
- ember-cli: ^3.2.0 || >=4.0.0
+ ember-cli-dependency-checker@3.3.3(ember-cli@5.4.2(@babel/core@7.29.7)(@types/node@25.9.1)(handlebars@4.7.9)(underscore@1.13.8)):
dependencies:
chalk: 2.4.2
- ember-cli: 5.4.1
- find-yarn-workspace-root: 1.2.1
+ ember-cli: 5.4.2(@babel/core@7.29.7)(@types/node@25.9.1)(handlebars@4.7.9)(underscore@1.13.8)
+ find-yarn-workspace-root: 2.0.0
is-git-url: 1.0.0
- resolve: 1.22.8
+ resolve: 1.22.12
semver: 5.7.2
- transitivePeerDependencies:
- - supports-color
- dev: true
- /ember-cli-element-closest-polyfill@0.0.2:
- resolution: {integrity: sha512-e9w1KCRUKorxZUyi50MhkHvf+7YihSk1zmu0eWeeTvtMfrKmrf9n8NQG57dxxgWBz+en1qAnEmsxIJcJs6bFRQ==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ ember-cli-element-closest-polyfill@0.0.2:
dependencies:
broccoli-funnel: 2.0.2
caniuse-api: 3.0.0
@@ -6973,14 +13471,10 @@ packages:
fastboot-transform: 0.1.3
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-cli-get-component-path-option@1.0.0:
- resolution: {integrity: sha512-k47TDwcJ2zPideBCZE8sCiShSxQSpebY2BHcX2DdipMmBox5gsfyVrbKJWIHeSTTKyEUgmBIvQkqTOozEziCZA==}
+ ember-cli-get-component-path-option@1.0.0: {}
- /ember-cli-htmlbars@4.5.0:
- resolution: {integrity: sha512-bYJpK1pqFu9AadDAGTw05g2LMNzY8xTCIqQm7dMJmKEoUpLRFbPf4SfHXrktzDh7Q5iggl6Skzf1M0bPlIxARw==}
- engines: {node: 8.* || 10.* || >= 12.*}
+ ember-cli-htmlbars@4.5.0:
dependencies:
'@ember/edition-utils': 1.2.0
babel-plugin-htmlbars-inline-precompile: 3.2.0
@@ -6990,18 +13484,16 @@ packages:
common-tags: 1.8.2
ember-cli-babel-plugin-helpers: 1.1.1
fs-tree-diff: 2.0.1
- hash-for-dep: 1.5.1
+ hash-for-dep: 1.5.2
heimdalljs-logger: 0.1.10
- json-stable-stringify: 1.1.1
+ json-stable-stringify: 1.3.0
semver: 6.3.1
strip-bom: 4.0.0
walk-sync: 2.2.0
transitivePeerDependencies:
- supports-color
- /ember-cli-htmlbars@5.7.2:
- resolution: {integrity: sha512-Uj6R+3TtBV5RZoJY14oZn/sNPnc+UgmC8nb5rI4P3fR/gYoyTFIZSXiIM7zl++IpMoIrocxOrgt+mhonKphgGg==}
- engines: {node: 10.* || >= 12.*}
+ ember-cli-htmlbars@5.7.2:
dependencies:
'@ember/edition-utils': 1.2.0
babel-plugin-htmlbars-inline-precompile: 5.3.1
@@ -7012,75 +13504,62 @@ packages:
ember-cli-babel-plugin-helpers: 1.1.1
ember-cli-version-checker: 5.1.2
fs-tree-diff: 2.0.1
- hash-for-dep: 1.5.1
+ hash-for-dep: 1.5.2
heimdalljs-logger: 0.1.10
- json-stable-stringify: 1.1.1
- semver: 7.6.0
+ json-stable-stringify: 1.3.0
+ semver: 7.8.1
silent-error: 1.1.1
strip-bom: 4.0.0
walk-sync: 2.2.0
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-cli-htmlbars@6.3.0:
- resolution: {integrity: sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==}
- engines: {node: 12.* || 14.* || >= 16}
+ ember-cli-htmlbars@6.3.0:
dependencies:
'@ember/edition-utils': 1.2.0
- babel-plugin-ember-template-compilation: 2.2.1
+ babel-plugin-ember-template-compilation: 2.4.1
babel-plugin-htmlbars-inline-precompile: 5.3.1
broccoli-debug: 0.6.5
broccoli-persistent-filter: 3.1.3
broccoli-plugin: 4.0.7
ember-cli-version-checker: 5.1.2
fs-tree-diff: 2.0.1
- hash-for-dep: 1.5.1
+ hash-for-dep: 1.5.2
heimdalljs-logger: 0.1.10
js-string-escape: 1.0.1
- semver: 7.6.0
+ semver: 7.8.1
silent-error: 1.1.1
walk-sync: 2.2.0
transitivePeerDependencies:
- supports-color
- /ember-cli-inject-live-reload@2.1.0:
- resolution: {integrity: sha512-YV5wYRD5PJHmxaxaJt18u6LE6Y+wo455BnmcpN+hGNlChy2piM9/GMvYgTAz/8Vin8RJ5KekqP/w/NEaRndc/A==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ ember-cli-inject-live-reload@2.1.0:
dependencies:
clean-base-url: 1.0.0
ember-cli-version-checker: 3.1.3
- dev: true
- /ember-cli-is-package-missing@1.0.0:
- resolution: {integrity: sha512-9hEoZj6Au5onlSDdcoBqYEPT8ehlYntZPxH8pBKV0GO7LNel88otSAQsCfXvbi2eKE+MaSeLG/gNaCI5UdWm9g==}
+ ember-cli-is-package-missing@1.0.0: {}
- /ember-cli-lodash-subset@2.0.1:
- resolution: {integrity: sha512-QkLGcYv1WRK35g4MWu/uIeJ5Suk2eJXKtZ+8s+qE7C9INmpCPyPxzaqZABquYzcWNzIdw6kYwz3NWAFdKYFxwg==}
- engines: {node: ^4.5 || 6.* || >= 7.*}
- dev: true
+ ember-cli-lodash-subset@2.0.1: {}
- /ember-cli-normalize-entity-name@1.0.0:
- resolution: {integrity: sha512-rF4P1rW2P1gVX1ynZYPmuIf7TnAFDiJmIUFI1Xz16VYykUAyiOCme0Y22LeZq8rTzwBMiwBwoE3RO4GYWehXZA==}
+ ember-cli-normalize-entity-name@1.0.0:
dependencies:
silent-error: 1.1.1
transitivePeerDependencies:
- supports-color
- /ember-cli-notifications@9.0.0:
- resolution: {integrity: sha512-ytGHRLmIsr/WkKDGtPHwqtV27T4PAuikW2NP8IdreaOsnvoEY6v2vZJEJEU79z2kQ1XgrNRXWVg4R4KrdR3m8Q==}
+ ember-cli-notifications@9.1.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- '@embroider/addon-shim': 1.8.7
+ '@embroider/addon-shim': 1.10.2
+ decorator-transforms: 2.3.2(@babel/core@7.29.7)
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
+ - '@babel/core'
- supports-color
- dev: false
- /ember-cli-path-utils@1.0.0:
- resolution: {integrity: sha512-Qq0vvquzf4cFHoDZavzkOy3Izc893r/5spspWgyzLCPTaG78fM3HsrjZm7UWEltbXUqwHHYrqZd/R0jS08NqSA==}
+ ember-cli-path-utils@1.0.0: {}
- /ember-cli-postcss@8.2.0:
- resolution: {integrity: sha512-S2HQqmNtcezmLSt/OPZKCXg+aRV7yFoZp+tn1HCLSbR/eU95xl7MWxTjbj/wOIGMfhggy/hBT2+STDh8mGuVpw==}
- engines: {node: '>= 14'}
+ ember-cli-postcss@8.2.0:
dependencies:
broccoli-merge-trees: 4.2.0
broccoli-postcss: 6.1.0
@@ -7089,10 +13568,8 @@ packages:
merge: 2.1.1
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-cli-preprocess-registry@3.3.0:
- resolution: {integrity: sha512-60GYpw7VPeB7TvzTLZTuLTlHdOXvayxjAQ+IxM2T04Xkfyu75O2ItbWlftQW7NZVGkaCsXSRAmn22PG03VpLMA==}
+ ember-cli-preprocess-registry@3.3.0:
dependencies:
broccoli-clean-css: 1.1.0
broccoli-funnel: 2.0.2
@@ -7100,86 +13577,64 @@ packages:
process-relative-require: 1.0.0
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-cli-preprocess-registry@5.0.1:
- resolution: {integrity: sha512-Jb2zbE5Kfe56Nf4IpdaQ10zZ72p/RyLdgE5j5/lKG3I94QHlq+7AkAd18nPpb5OUeRUT13yQTAYpU+MbjpKTtg==}
- engines: {node: 16.* || >= 18}
+ ember-cli-preprocess-registry@5.0.1:
dependencies:
broccoli-funnel: 3.0.8
- debug: 4.3.4
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-cli-sri@2.1.1:
- resolution: {integrity: sha512-YG/lojDxkur9Bnskt7xB6gUOtJ6aPl/+JyGYm9HNDk3GECVHB3SMN3rlGhDKHa1ndS5NK2W2TSLb9bzRbGlMdg==}
- engines: {node: '>= 0.10.0'}
+ ember-cli-sri@2.1.1:
dependencies:
broccoli-sri-hash: 2.1.2
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-cli-string-helpers@6.1.0:
- resolution: {integrity: sha512-Lw8B6MJx2n8CNF2TSIKs+hWLw0FqSYjr2/NRPyquyYA05qsl137WJSYW3ZqTsLgoinHat0DGF2qaCXocLhLmyA==}
- engines: {node: 10.* || >=12.*}
+ ember-cli-string-helpers@6.1.0:
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.29.7
broccoli-funnel: 3.0.8
ember-cli-babel: 7.26.11
- resolve: 1.22.8
+ resolve: 1.22.12
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-cli-string-utils@1.1.0:
- resolution: {integrity: sha512-PlJt4fUDyBrC/0X+4cOpaGCiMawaaB//qD85AXmDRikxhxVzfVdpuoec02HSiTGTTB85qCIzWBIh8lDOiMyyFg==}
+ ember-cli-string-utils@1.1.0: {}
- /ember-cli-terser@4.0.2:
- resolution: {integrity: sha512-Ej77K+YhCZImotoi/CU2cfsoZaswoPlGaM5TB3LvjvPDlVPRhxUHO2RsaUVC5lsGeRLRiHCOxVtoJ6GyqexzFA==}
- engines: {node: 10.* || 12.* || >= 14}
+ ember-cli-terser@4.0.2:
dependencies:
broccoli-terser-sourcemap: 4.1.1
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-cli-test-info@1.0.0:
- resolution: {integrity: sha512-dEVTIpmUfCzweC97NGf6p7L6XKBwV2GmSM4elmzKvkttEp5P7AvGA9uGyN4GqFq+RwhW+2b0I2qlX00w+skm+A==}
+ ember-cli-test-info@1.0.0:
dependencies:
ember-cli-string-utils: 1.1.0
- dev: true
- /ember-cli-test-loader@3.1.0:
- resolution: {integrity: sha512-0aocZV9SIoOHiU3hrH3IuLR6busWhTX6UVXgd490hmJkIymmOXNH2+jJoC7Ebkeo3PiOfAdjqhb765QDlHSJOw==}
- engines: {node: 10.* || >= 12}
+ ember-cli-test-loader@3.1.0:
dependencies:
ember-cli-babel: 7.26.11
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-cli-typescript-blueprint-polyfill@0.1.0:
- resolution: {integrity: sha512-g0weUTOnHmPGqVZzkQTl3Nbk9fzEdFkEXydCs5mT1qBjXh8eQ6VlmjjGD5/998UXKuA0pLSCVVMbSp/linLzGA==}
+ ember-cli-typescript-blueprint-polyfill@0.1.0:
dependencies:
chalk: 4.1.2
remove-types: 1.0.0
transitivePeerDependencies:
- supports-color
- /ember-cli-typescript@2.0.2(@babel/core@7.23.2):
- resolution: {integrity: sha512-7I5azCTxOgRDN8aSSnJZIKSqr+MGnT+jLTUbBYqF8wu6ojs2DUnTePxUcQMcvNh3Q3B1ySv7Q/uZFSjdU9gSjA==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ ember-cli-typescript@2.0.2(@babel/core@7.29.7):
dependencies:
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2)
- '@babel/plugin-transform-typescript': 7.4.5(@babel/core@7.23.2)
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.7)
+ '@babel/plugin-transform-typescript': 7.4.5(@babel/core@7.29.7)
ansi-to-html: 0.6.15
- debug: 4.3.4
+ debug: 4.4.3
ember-cli-babel-plugin-helpers: 1.1.1
execa: 1.0.0
fs-extra: 7.0.1
- resolve: 1.22.8
+ resolve: 1.22.12
rsvp: 4.8.5
semver: 6.3.1
stagehand: 1.0.1
@@ -7187,19 +13642,16 @@ packages:
transitivePeerDependencies:
- '@babel/core'
- supports-color
- dev: true
- /ember-cli-typescript@3.0.0(@babel/core@7.23.2):
- resolution: {integrity: sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA==}
- engines: {node: 8.* || >= 10.*}
+ ember-cli-typescript@3.0.0(@babel/core@7.29.7):
dependencies:
- '@babel/plugin-transform-typescript': 7.5.5(@babel/core@7.23.2)
+ '@babel/plugin-transform-typescript': 7.5.5(@babel/core@7.29.7)
ansi-to-html: 0.6.15
- debug: 4.3.4
+ debug: 4.4.3
ember-cli-babel-plugin-helpers: 1.1.1
execa: 2.1.0
fs-extra: 8.1.0
- resolve: 1.22.8
+ resolve: 1.22.12
rsvp: 4.8.5
semver: 6.3.1
stagehand: 1.0.1
@@ -7208,20 +13660,18 @@ packages:
- '@babel/core'
- supports-color
- /ember-cli-typescript@3.1.4(@babel/core@7.23.2):
- resolution: {integrity: sha512-HJ73kL45OGRmIkPhBNFt31I1SGUvdZND+LCH21+qpq3pPlFpJG8GORyXpP+2ze8PbnITNLzwe5AwUrpyuRswdQ==}
- engines: {node: 8.* || >= 10.*}
+ ember-cli-typescript@3.1.4(@babel/core@7.29.7):
dependencies:
- '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.2)
- '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.2)
- '@babel/plugin-transform-typescript': 7.8.7(@babel/core@7.23.2)
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.29.7)
+ '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.29.7)
+ '@babel/plugin-transform-typescript': 7.8.7(@babel/core@7.29.7)
ansi-to-html: 0.6.15
broccoli-stew: 3.0.0
- debug: 4.3.4
+ debug: 4.4.3
ember-cli-babel-plugin-helpers: 1.1.1
execa: 3.4.0
fs-extra: 8.1.0
- resolve: 1.22.8
+ resolve: 1.22.12
rsvp: 4.8.5
semver: 6.3.1
stagehand: 1.0.1
@@ -7230,60 +13680,47 @@ packages:
- '@babel/core'
- supports-color
- /ember-cli-typescript@4.2.1:
- resolution: {integrity: sha512-0iKTZ+/wH6UB/VTWKvGuXlmwiE8HSIGcxHamwNhEC5x1mN3z8RfvsFZdQWYUzIWFN2Tek0gmepGRPTwWdBYl/A==}
- engines: {node: 10.* || >= 12.*}
+ ember-cli-typescript@4.2.1:
dependencies:
ansi-to-html: 0.6.15
broccoli-stew: 3.0.0
- debug: 4.3.4
+ debug: 4.4.3
execa: 4.1.0
fs-extra: 9.1.0
- resolve: 1.22.8
+ resolve: 1.22.12
rsvp: 4.8.5
- semver: 7.6.0
+ semver: 7.8.1
stagehand: 1.0.1
walk-sync: 2.2.0
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-cli-typescript@5.2.1:
- resolution: {integrity: sha512-qqp5TAIuPHxHiGXJKL+78Euyhy0zSKQMovPh8sJpN/ZBYx0H90pONufHR3anaMcp1snVfx4B+mb9+7ijOik8ZA==}
- engines: {node: '>= 12.*'}
+ ember-cli-typescript@5.3.0:
dependencies:
ansi-to-html: 0.6.15
broccoli-stew: 3.0.0
- debug: 4.3.4
+ debug: 4.4.3
execa: 4.1.0
fs-extra: 9.1.0
- resolve: 1.22.8
+ resolve: 1.22.12
rsvp: 4.8.5
- semver: 7.6.0
+ semver: 7.8.1
stagehand: 1.0.1
walk-sync: 2.2.0
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-cli-version-checker@2.2.0:
- resolution: {integrity: sha512-G+KtYIVlSOWGcNaTFHk76xR4GdzDLzAS4uxZUKdASuFX0KJE43C6DaqL+y3VTpUFLI2FIkAS6HZ4I1YBi+S3hg==}
- engines: {node: '>= 4'}
+ ember-cli-version-checker@2.2.0:
dependencies:
- resolve: 1.22.8
+ resolve: 1.22.12
semver: 5.7.2
- dev: false
- /ember-cli-version-checker@3.1.3:
- resolution: {integrity: sha512-PZNSvpzwWgv68hcXxyjREpj3WWb81A7rtYNQq1lLEgrWIchF8ApKJjWP3NBpHjaatwILkZAV8klair5WFlXAKg==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ ember-cli-version-checker@3.1.3:
dependencies:
resolve-package-path: 1.2.7
semver: 5.7.2
-
- /ember-cli-version-checker@4.1.1:
- resolution: {integrity: sha512-bzEWsTMXUGEJfxcAGWPe6kI7oHEGD3jaxUWDYPTqzqGhNkgPwXTBgoWs9zG1RaSMaOPFnloWuxRcoHi4TrYS3Q==}
- engines: {node: 8.* || 10.* || >= 12.*}
+
+ ember-cli-version-checker@4.1.1:
dependencies:
resolve-package-path: 2.0.0
semver: 6.3.1
@@ -7291,32 +13728,27 @@ packages:
transitivePeerDependencies:
- supports-color
- /ember-cli-version-checker@5.1.2:
- resolution: {integrity: sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q==}
- engines: {node: 10.* || >= 12.*}
+ ember-cli-version-checker@5.1.2:
dependencies:
resolve-package-path: 3.1.0
- semver: 7.6.0
+ semver: 7.8.1
silent-error: 1.1.1
transitivePeerDependencies:
- supports-color
- /ember-cli@5.4.1:
- resolution: {integrity: sha512-+jwp63OPT0zkUnXP563DkIwb1GiI6kGYHg6DyzJKY48BCdevqcgxsMFn8/RENXoF7krg18A5B9cSa8Y1v15tIw==}
- engines: {node: '>= 18'}
- hasBin: true
+ ember-cli@5.4.2(@babel/core@7.29.7)(@types/node@25.9.1)(handlebars@4.7.9)(underscore@1.13.8):
dependencies:
- '@pnpm/find-workspace-dir': 6.0.2
+ '@pnpm/find-workspace-dir': 6.0.3
broccoli: 3.5.2
broccoli-builder: 0.18.14
- broccoli-concat: 4.2.5
+ broccoli-concat: 4.2.7
broccoli-config-loader: 1.0.1
- broccoli-config-replace: 1.1.2
+ broccoli-config-replace: 1.1.3
broccoli-debug: 0.6.5
broccoli-funnel: 3.0.8
broccoli-funnel-reducer: 1.0.0
broccoli-merge-trees: 4.2.0
- broccoli-middleware: 2.1.1
+ broccoli-middleware: 2.1.2
broccoli-slow-trees: 3.1.0
broccoli-source: 3.0.1
broccoli-stew: 3.0.0
@@ -7325,12 +13757,12 @@ packages:
chalk: 4.1.2
ci-info: 3.9.0
clean-base-url: 1.0.0
- compression: 1.7.4
+ compression: 1.8.1
configstore: 5.0.1
console-ui: 3.1.2
core-object: 3.1.5
dag-map: 2.0.2
- diff: 5.2.0
+ diff: 5.2.2
ember-cli-is-package-missing: 1.0.0
ember-cli-lodash-subset: 2.0.1
ember-cli-normalize-entity-name: 1.0.0
@@ -7339,50 +13771,50 @@ packages:
ensure-posix-path: 1.1.1
execa: 5.1.1
exit: 0.1.2
- express: 4.18.2
- filesize: 10.1.0
+ express: 4.22.2
+ filesize: 10.1.6
find-up: 5.0.0
find-yarn-workspace-root: 2.0.0
fixturify-project: 2.1.1
- fs-extra: 11.2.0
+ fs-extra: 11.3.5
fs-tree-diff: 2.0.1
get-caller-file: 2.0.5
git-repo-info: 2.1.1
glob: 8.1.0
heimdalljs: 0.2.6
- heimdalljs-fs-monitor: 1.1.1
+ heimdalljs-fs-monitor: 1.1.2
heimdalljs-graph: 1.0.0
heimdalljs-logger: 0.1.10
http-proxy: 1.18.1
inflection: 2.0.1
- inquirer: 9.2.14
+ inquirer: 9.3.8(@types/node@25.9.1)
is-git-url: 1.0.0
is-language-code: 3.1.0
- isbinaryfile: 5.0.2
- lodash.template: 4.5.0
+ isbinaryfile: 5.0.7
+ lodash: 4.18.1
markdown-it: 13.0.2
markdown-it-terminal: 0.4.0(markdown-it@13.0.2)
- minimatch: 7.4.6
- morgan: 1.10.0
+ minimatch: 7.4.9
+ morgan: 1.11.0
nopt: 3.0.6
npm-package-arg: 10.1.0
os-locale: 5.0.0
p-defer: 3.0.0
- portfinder: 1.0.32
+ portfinder: 1.0.38
promise-map-series: 0.3.0
promise.hash.helper: 1.0.8
- quick-temp: 0.1.8
+ quick-temp: 0.1.9
remove-types: 1.0.0
- resolve: 1.22.8
+ resolve: 1.22.12
resolve-package-path: 4.0.3
- safe-stable-stringify: 2.4.3
+ safe-stable-stringify: 2.5.0
sane: 5.0.1
- semver: 7.6.0
+ semver: 7.8.1
silent-error: 1.1.1
sort-package-json: 1.57.0
symlink-or-copy: 1.3.1
temp: 0.9.4
- testem: 3.11.0
+ testem: 3.20.1(@babel/core@7.29.7)(handlebars@4.7.9)(underscore@1.13.8)
tiny-lr: 2.0.0
tree-sync: 2.1.0
walk-sync: 3.0.0
@@ -7390,9 +13822,10 @@ packages:
workerpool: 6.5.1
yam: 1.0.0
transitivePeerDependencies:
+ - '@babel/core'
+ - '@types/node'
- arc-templates
- atpl
- - babel-core
- bracket-template
- bufferutil
- coffee-script
@@ -7410,31 +13843,25 @@ packages:
- handlebars
- hogan.js
- htmling
- - jade
- jazz
- jqtpl
- just
- liquid-node
- liquor
- - lodash
- - marko
- mote
- nunjucks
- plates
- pug
- qejs
- ractive
- - razor-tmpl
- react
- react-dom
- slm
- - squirrelly
- supports-color
- swig
- swig-templates
- teacup
- templayed
- - then-jade
- then-pug
- tinyliquid
- toffee
@@ -7446,13 +13873,10 @@ packages:
- velocityjs
- walrus
- whiskers
- dev: true
- /ember-compatibility-helpers@1.2.7(@babel/core@7.23.2):
- resolution: {integrity: sha512-BtkjulweiXo9c3yVWrtexw2dTmBrvavD/xixNC6TKOBdrixUwU+6nuOO9dufDWsMxoid7MvtmDpzc9+mE8PdaA==}
- engines: {node: 10.* || >= 12.*}
+ ember-compatibility-helpers@1.2.7(@babel/core@7.29.7):
dependencies:
- babel-plugin-debug-macros: 0.2.0(@babel/core@7.23.2)
+ babel-plugin-debug-macros: 0.2.0(@babel/core@7.29.7)
ember-cli-version-checker: 5.1.2
find-up: 5.0.0
fs-extra: 9.1.0
@@ -7461,169 +13885,133 @@ packages:
- '@babel/core'
- supports-color
- /ember-composability-tools@1.2.0(ember-source@5.4.0)(webpack@5.89.0):
- resolution: {integrity: sha512-OJpBMG1tYkWwgh+yfa+QEv88U6vHhVSBmcWBwFhvwW7YabcWUMpqEWO+mpRjj2n/tmmnsjl6RCqzrHp+/Kiu/A==}
- engines: {node: 16.* || >= 18}
- peerDependencies:
- ember-source: ^3.8 || ^4.0.0 || >= 5.0.0
+ ember-composability-tools@1.3.0(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)):
dependencies:
- '@babel/core': 7.23.2
- '@ember/render-modifiers': 2.1.0(@babel/core@7.23.2)(ember-source@5.4.0)
- '@glimmer/component': 1.1.2(@babel/core@7.23.2)
- ember-auto-import: 2.7.2(webpack@5.89.0)
- ember-cli-babel: 8.2.0(@babel/core@7.23.2)
+ '@babel/core': 7.29.7
+ '@ember/render-modifiers': 2.1.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@glimmer/component': 1.1.2(@babel/core@7.29.7)
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
+ ember-cli-babel: 8.3.1(@babel/core@7.29.7)
ember-cli-htmlbars: 6.3.0
- ember-element-helper: 0.8.5(ember-source@5.4.0)
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ ember-element-helper: 0.8.8
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ remote-promises: 1.0.0
transitivePeerDependencies:
- - '@glint/environment-ember-loose'
- '@glint/template'
- supports-color
- webpack
- dev: false
- /ember-composable-helpers@5.0.0:
- resolution: {integrity: sha512-gyUrjiSju4QwNrsCLbBpP0FL6VDFZaELNW7Kbcp60xXhjvNjncYgzm4zzYXhT+i1lLA6WEgRZ3lOGgyBORYD0w==}
- engines: {node: 12.* || 14.* || >= 16}
+ ember-composable-helpers@5.0.0:
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.29.7
broccoli-funnel: 2.0.1
ember-cli-babel: 7.26.11
- resolve: 1.22.8
+ resolve: 1.22.12
transitivePeerDependencies:
- supports-color
- /ember-concurrency-async@1.0.0(ember-concurrency@2.3.7):
- resolution: {integrity: sha512-otE1UcF+VYva8qdkYayHVBrGDG+Lt9oYLLMt3heEo98Mv9abdjrdaLzvSMMspzI3ncgKtmZsEwn+aubvq+Zhhw==}
- engines: {node: ^10.17 || >= 12}
- peerDependencies:
- ember-concurrency: ^2.0.0-rc.1
+ ember-concurrency-async@1.0.0(ember-concurrency@2.3.7(@babel/core@7.29.7)):
dependencies:
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/types': 7.23.9
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/types': 7.29.7
ember-cli-babel: 7.26.11
ember-cli-babel-plugin-helpers: 1.1.1
ember-cli-htmlbars: 4.5.0
- ember-concurrency: 2.3.7(@babel/core@7.23.2)
+ ember-concurrency: 2.3.7(@babel/core@7.29.7)
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-concurrency-decorators@2.0.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-r6O34YKI/slyYapVsuOPnmaKC4AsmBSwvgcadbdy+jHNj+mnryXPkm+3hhhRnFdlsKUKdEuXvl43lhjhYRLhhA==}
- engines: {node: 10.* || >= 12}
+ ember-concurrency-decorators@2.0.3(@babel/core@7.29.7):
dependencies:
'@ember-decorators/utils': 6.1.1
ember-cli-babel: 7.26.11
ember-cli-htmlbars: 4.5.0
- ember-cli-typescript: 3.1.4(@babel/core@7.23.2)
+ ember-cli-typescript: 3.1.4(@babel/core@7.29.7)
transitivePeerDependencies:
- '@babel/core'
- supports-color
- /ember-concurrency-test-waiter@0.4.0(ember-concurrency@3.1.1):
- resolution: {integrity: sha512-Yx3rDu9C1oDzWOFk9C4G9VQvnALZXsNvTGgRhM4J4Uzk1/tlRfZ0eLEJHWJqO3P3nyHdGlNAWYLq6Ozi0iFhQA==}
- engines: {node: 10.* || >= 12}
- peerDependencies:
- ember-concurrency: '>=0.7.19'
- dependencies:
- ember-cli-babel: 7.26.11
- ember-concurrency: 3.1.1(@babel/core@7.23.2)(ember-source@5.4.0)
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /ember-concurrency-ts@0.3.1(ember-concurrency@2.3.7):
- resolution: {integrity: sha512-lE9uqPgK1Y9PN/0BJ5zE2a+h95izRCn6FCyt7qVV3012TlblTynsBaoUuAbN1T3KfzFsrJaXwsxzRbDjEde2Sw==}
- engines: {node: 10.* || >= 12}
- peerDependencies:
- ember-concurrency: ^1.2.1 || ^2.0.0-rc.1
+ ember-concurrency-ts@0.3.1(ember-concurrency@2.3.7(@babel/core@7.29.7)):
dependencies:
ember-cli-babel: 7.26.11
ember-cli-htmlbars: 4.5.0
- ember-concurrency: 2.3.7(@babel/core@7.23.2)
+ ember-concurrency: 2.3.7(@babel/core@7.29.7)
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-concurrency@2.3.7(@babel/core@7.23.2):
- resolution: {integrity: sha512-sz6sTIXN/CuLb5wdpauFa+rWXuvXXSnSHS4kuNzU5GSMDX1pLBWSuovoUk61FUe6CYRqBmT1/UushObwBGickQ==}
- engines: {node: 10.* || 12.* || 14.* || >= 16}
+ ember-concurrency@2.3.7(@babel/core@7.29.7):
dependencies:
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/types': 7.23.9
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/types': 7.29.7
'@glimmer/tracking': 1.1.2
ember-cli-babel: 7.26.11
ember-cli-babel-plugin-helpers: 1.1.1
ember-cli-htmlbars: 5.7.2
- ember-compatibility-helpers: 1.2.7(@babel/core@7.23.2)
- ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.2)
+ ember-compatibility-helpers: 1.2.7(@babel/core@7.29.7)
+ ember-destroyable-polyfill: 2.0.3(@babel/core@7.29.7)
transitivePeerDependencies:
- '@babel/core'
- supports-color
- dev: false
- /ember-concurrency@3.1.1(@babel/core@7.23.2)(ember-source@5.4.0):
- resolution: {integrity: sha512-doXFYYfy1C7jez+jDDlfahTp03QdjXeSY/W3Zbnx/q3UNJ9g10Shf2d7M/HvWo/TC22eU+6dPLIpqd/6q4pR+Q==}
- engines: {node: 16.* || >= 18}
- peerDependencies:
- ember-source: ^3.28.0 || ^4.0.0 || >=5.0.0
+ ember-concurrency@3.1.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/types': 7.23.9
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/types': 7.29.7
'@glimmer/tracking': 1.1.2
ember-cli-babel: 7.26.11
ember-cli-babel-plugin-helpers: 1.1.1
ember-cli-htmlbars: 6.3.0
- ember-compatibility-helpers: 1.2.7(@babel/core@7.23.2)
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ ember-compatibility-helpers: 1.2.7(@babel/core@7.29.7)
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
- '@babel/core'
- supports-color
- /ember-cookies@1.1.2:
- resolution: {integrity: sha512-6GaN0eEDZT9SEUSZBxWzZMlvxjcGKXFTJNjv30LVXTTOxozE5IBmIxiDAEq0udi0UpWUGHLYQBgnANn4jdll7w==}
- engines: {node: '>= 16.*'}
+ ember-concurrency@4.0.6(@babel/core@7.29.7):
dependencies:
- '@embroider/addon-shim': 1.8.7
+ '@babel/helper-module-imports': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ '@babel/types': 7.29.7
+ '@embroider/addon-shim': 1.10.2
+ decorator-transforms: 1.2.1(@babel/core@7.29.7)
transitivePeerDependencies:
+ - '@babel/core'
- supports-color
- dev: false
- /ember-copy@2.0.1:
- resolution: {integrity: sha512-N/XFvZszrzyyX4IcNoeK4mJvIItNuONumhPLqi64T8NDjJkxBj4Pq61rvMkJx/9eZ8alzE4I8vYKOLxT0FvRuQ==}
- engines: {node: 10.* || >= 12}
+ ember-cookies@1.3.0(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- ember-cli-babel: 7.26.11
+ '@embroider/addon-shim': 1.10.2
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-data@4.12.5(@babel/core@7.23.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)(webpack@5.89.0):
- resolution: {integrity: sha512-5q0m0qFdbur3eFk2/iT1GEGxBUOnwbDD0Gk6sWLiVGL2NLZw1wH6Spo36RqClx62ov2vlo9DytVmKbOu224WaQ==}
- engines: {node: 16.* || >= 18.*}
- peerDependencies:
- '@ember/string': ^3.0.1
+ ember-copy@2.0.1:
dependencies:
- '@ember-data/adapter': 4.12.5(@ember-data/store@4.12.5)(@ember/string@3.1.1)(ember-inflector@4.0.2)
- '@ember-data/debug': 4.12.5(@ember-data/store@4.12.5)(@ember/string@3.1.1)(webpack@5.89.0)
- '@ember-data/graph': 4.12.5(@ember-data/store@4.12.5)
- '@ember-data/json-api': 4.12.5(@ember-data/graph@4.12.5)(@ember-data/store@4.12.5)
- '@ember-data/legacy-compat': 4.12.5(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)
- '@ember-data/model': 4.12.5(@babel/core@7.23.2)(@ember-data/debug@4.12.5)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/store@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.4.0)
- '@ember-data/private-build-infra': 4.12.5
- '@ember-data/request': 4.12.5
- '@ember-data/serializer': 4.12.5(@ember-data/store@4.12.5)(@ember/string@3.1.1)(ember-inflector@4.0.2)
- '@ember-data/store': 4.12.5(@babel/core@7.23.2)(@ember-data/graph@4.12.5)(@ember-data/json-api@4.12.5)(@ember-data/legacy-compat@4.12.5)(@ember-data/model@4.12.5)(@ember-data/tracking@4.12.5)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.0)
- '@ember-data/tracking': 4.12.5
+ ember-cli-babel: 7.26.11
+ transitivePeerDependencies:
+ - supports-color
+
+ ember-data@4.12.8(@babel/core@7.29.7)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)):
+ dependencies:
+ '@ember-data/adapter': 4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)(@ember/string@3.1.1)(ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))
+ '@ember-data/debug': 4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)(@ember/string@3.1.1)(webpack@5.107.2(postcss@8.5.15))
+ '@ember-data/graph': 4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)
+ '@ember-data/json-api': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/store@4.12.8)
+ '@ember-data/legacy-compat': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember/string@3.1.1)
+ '@ember-data/model': 4.12.8(@babel/core@7.29.7)(@ember-data/debug@4.12.8)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/store@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@ember-data/private-build-infra': 4.12.8
+ '@ember-data/request': 4.12.8(@babel/core@7.29.7)
+ '@ember-data/serializer': 4.12.8(@babel/core@7.29.7)(@ember-data/store@4.12.8)(@ember/string@3.1.1)(ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))
+ '@ember-data/store': 4.12.8(@babel/core@7.29.7)(@ember-data/graph@4.12.8)(@ember-data/json-api@4.12.8)(@ember-data/legacy-compat@4.12.8)(@ember-data/model@4.12.8)(@ember-data/tracking@4.12.8(@babel/core@7.29.7))(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@ember-data/tracking': 4.12.8(@babel/core@7.29.7)
'@ember/edition-utils': 1.2.0
'@ember/string': 3.1.1
- '@embroider/macros': 1.13.5
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
'@glimmer/env': 0.1.7
broccoli-merge-trees: 4.2.0
- ember-auto-import: 2.6.3(webpack@5.89.0)
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
ember-cli-babel: 7.26.11
- ember-inflector: 4.0.2
+ ember-inflector: 4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
transitivePeerDependencies:
- '@babel/core'
- '@glimmer/tracking'
@@ -7631,77 +14019,63 @@ packages:
- ember-source
- supports-color
- webpack
- dev: true
- /ember-decorators@6.1.1:
- resolution: {integrity: sha512-63vZPntPn1aqMyeNRLoYjJD+8A8obd+c2iZkJflswpDRNVIsp2m7aQdSCtPt4G0U/TEq2251g+N10maHX3rnJQ==}
- engines: {node: '>= 8.*'}
+ ember-decorators@6.1.1:
dependencies:
'@ember-decorators/component': 6.1.1
'@ember-decorators/object': 6.1.1
ember-cli-babel: 7.26.11
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-destroyable-polyfill@2.0.3(@babel/core@7.23.2):
- resolution: {integrity: sha512-TovtNqCumzyAiW0/OisSkkVK93xnVF4NRU6+FN0ubpfwEOpRrmM2RqDwXI6YAChCgSHON1cz0DfQStpA1Gjuuw==}
- engines: {node: 10.* || >= 12}
+ ember-destroyable-polyfill@2.0.3(@babel/core@7.29.7):
dependencies:
ember-cli-babel: 7.26.11
ember-cli-version-checker: 5.1.2
- ember-compatibility-helpers: 1.2.7(@babel/core@7.23.2)
+ ember-compatibility-helpers: 1.2.7(@babel/core@7.29.7)
transitivePeerDependencies:
- '@babel/core'
- supports-color
- dev: false
- /ember-element-helper@0.6.1(ember-source@5.4.0):
- resolution: {integrity: sha512-YiOdAMlzYul4ulkIoNp8z7iHDfbT1fbut/9xGFRfxDwU/FmF8HtAUB2f1veu/w50HTeZNopa1OV2PCloZ76XlQ==}
- engines: {node: 12.* || 14.* || >= 16}
- peerDependencies:
- ember-source: ^3.8 || 4
+ ember-drag-sort@4.2.0(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)):
dependencies:
- '@embroider/util': 1.12.1(ember-source@5.4.0)
- ember-cli-babel: 7.26.11
+ '@babel/core': 7.29.7
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
+ ember-cli-babel: 8.3.1(@babel/core@7.29.7)
ember-cli-htmlbars: 6.3.0
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ ember-element-helper: 0.8.8
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ ember-template-imports: 4.4.0
transitivePeerDependencies:
- - '@glint/environment-ember-loose'
- '@glint/template'
- supports-color
- dev: false
+ - webpack
- /ember-element-helper@0.8.5(ember-source@5.4.0):
- resolution: {integrity: sha512-yZYzuasn6ZC8Nwv0MpaLYGtm68ZxIBSNSe/CYxNWkDdgcuAb2lAG1gx37XkwBIiwPQET0W2agwq7++/HwdMF8g==}
- engines: {node: 14.* || 16.* || >= 18}
- peerDependencies:
- ember-source: ^3.8 || ^4.0.0 || >= 5.0.0
+ ember-element-helper@0.6.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- '@embroider/addon-shim': 1.8.3
- '@embroider/util': 1.12.1(ember-source@5.4.0)
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ '@embroider/util': 1.13.5(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-cli-babel: 7.26.11
+ ember-cli-htmlbars: 6.3.0
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
+ - '@babel/core'
- '@glint/environment-ember-loose'
- '@glint/template'
- supports-color
- dev: false
- /ember-engines@0.9.0(ember-source@5.4.0):
- resolution: {integrity: sha512-LVb1GrLGU2DXLXL2ynYXPHg0JJ6P3LRciOdDfjP0aRPLZ1evOr0h7IPIDq4SsT2nG0yhX5qBMJNB4NCyFZvcyA==}
- engines: {node: 14.* || 16.* || >= 18}
- peerDependencies:
- '@ember/legacy-built-in-components': '*'
- ember-source: ^3.24.1 || 4
- peerDependenciesMeta:
- '@ember/legacy-built-in-components':
- optional: true
+ ember-element-helper@0.8.8:
+ dependencies:
+ '@embroider/addon-shim': 1.10.2
+ transitivePeerDependencies:
+ - supports-color
+
+ ember-engines@0.9.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- '@embroider/macros': 1.13.5
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
amd-name-resolver: 1.3.1
babel-plugin-compact-reexports: 1.1.0
broccoli-babel-transpiler: 7.8.1
- broccoli-concat: 4.2.5
+ broccoli-concat: 4.2.7
broccoli-debug: 0.6.5
broccoli-dependency-funnel: 2.1.2
broccoli-file-creator: 2.1.1
@@ -7713,115 +14087,93 @@ packages:
ember-cli-preprocess-registry: 3.3.0
ember-cli-string-utils: 1.1.0
ember-cli-version-checker: 5.1.2
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
- lodash: 4.17.21
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ lodash: 4.18.1
transitivePeerDependencies:
+ - '@babel/core'
- '@glint/template'
- supports-color
- dev: true
- /ember-file-upload@8.4.0(@ember/test-helpers@3.2.0)(@glimmer/component@1.1.2)(@glimmer/tracking@1.1.2)(ember-modifier@4.1.0)(tracked-built-ins@3.3.0)(webpack@5.89.0):
- resolution: {integrity: sha512-iiE3iE/7hncBiU5cvjitpc0whfeAMvdyW2ReiDCzKe9ByVZlgG7Hnp89EPE6c8aSvTLXCQ3X6SsF1U4LTgh75g==}
- engines: {node: 16.* || >= 18}
- peerDependencies:
- '@ember/test-helpers': ^2.9.3 || ^3.0.3
- '@glimmer/component': ^1.1.2
- '@glimmer/tracking': ^1.1.2
- ember-cli-mirage: '*'
- ember-modifier: ^3.2.7 || ^4.1.0
- miragejs: '*'
- tracked-built-ins: ^3.1.1
- peerDependenciesMeta:
- ember-cli-mirage:
- optional: true
- miragejs:
- optional: true
+ ember-file-upload@8.4.0(@babel/core@7.29.7)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-modifier@4.3.0(@babel/core@7.29.7))(tracked-built-ins@3.4.0(@babel/core@7.29.7))(webpack@5.107.2(postcss@8.5.15)):
dependencies:
- '@ember/test-helpers': 3.2.0(ember-source@5.4.0)(webpack@5.89.0)
+ '@ember/test-helpers': 3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
'@ember/test-waiters': 3.1.0
- '@embroider/addon-shim': 1.8.7
- '@embroider/macros': 1.13.5
- '@glimmer/component': 1.1.2(@babel/core@7.23.2)
+ '@embroider/addon-shim': 1.10.2
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
+ '@glimmer/component': 1.1.2(@babel/core@7.29.7)
'@glimmer/tracking': 1.1.2
- ember-auto-import: 2.7.2(webpack@5.89.0)
- ember-modifier: 4.1.0(ember-source@5.4.0)
- tracked-built-ins: 3.3.0
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
+ ember-modifier: 4.3.0(@babel/core@7.29.7)
+ tracked-built-ins: 3.4.0(@babel/core@7.29.7)
transitivePeerDependencies:
+ - '@babel/core'
- '@glint/template'
- supports-color
- webpack
- dev: false
- /ember-focus-trap@1.1.0(ember-source@5.4.0):
- resolution: {integrity: sha512-KxbCKpAJaBVZm+bW4tHPoBJAZThmxa6pI+WQusL+bj0RtAnGUNkWsVy6UBMZ5QqTQzf4EvGHkCVACVp5lbAWMQ==}
- engines: {node: 12.* || >= 14}
- peerDependencies:
- ember-source: ^4.0.0 || ^5.0.0
+ ember-focus-trap@1.2.0(@babel/core@7.29.7):
dependencies:
- '@embroider/addon-shim': 1.8.7
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
- focus-trap: 6.9.4
+ '@embroider/addon-shim': 1.10.2
+ decorator-transforms: 2.3.2(@babel/core@7.29.7)
+ focus-trap: 7.8.0
transitivePeerDependencies:
+ - '@babel/core'
- supports-color
- dev: false
- /ember-functions-as-helper-polyfill@2.1.2(ember-source@5.4.0):
- resolution: {integrity: sha512-yvW6xykvZEIYzzwlrC/g9yu6LtLkkj5F+ho6U+BDxN1uREMgoMOZnji7sSILn5ITVpaJ055DPcO+utEFD7IZOA==}
- engines: {node: '>= 14.0.0'}
- peerDependencies:
- ember-source: ^3.25.0 || >=4.0.0
+ ember-functions-as-helper-polyfill@2.1.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
ember-cli-babel: 7.26.11
- ember-cli-typescript: 5.2.1
+ ember-cli-typescript: 5.3.0
ember-cli-version-checker: 5.1.2
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-get-config@2.1.1:
- resolution: {integrity: sha512-uNmv1cPG/4qsac8oIf5txJ2FZ8p88LEpG4P3dNcjsJS98Y8hd0GPMFwVqpnzI78Lz7VYRGQWY4jnE4qm5R3j4g==}
- engines: {node: 12.* || 14.* || >= 16}
+ ember-get-config@2.1.1(@babel/core@7.29.7):
dependencies:
- '@embroider/macros': 1.13.5
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
ember-cli-babel: 7.26.11
transitivePeerDependencies:
+ - '@babel/core'
- '@glint/template'
- supports-color
- dev: false
- /ember-in-element-polyfill@1.0.1:
- resolution: {integrity: sha512-eHs+7D7PuQr8a1DPqsJTsEyo3FZ1XuH6WEZaEBPDa9s0xLlwByCNKl8hi1EbXOgvgEZNHHi9Rh0vjxyfakrlgg==}
- engines: {node: 10.* || >= 12}
+ ember-gridstack@4.0.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)):
+ dependencies:
+ '@ember/render-modifiers': 2.1.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
+ ember-cli-babel: 7.26.11
+ ember-cli-htmlbars: 6.3.0
+ ember-modifier: 4.3.0(@babel/core@7.29.7)
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ gridstack: 7.3.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+ - webpack
+
+ ember-in-element-polyfill@1.0.1:
dependencies:
- debug: 4.3.4
+ debug: 4.4.3
ember-cli-babel: 7.26.11
ember-cli-htmlbars: 5.7.2
ember-cli-version-checker: 5.1.2
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-inflector@4.0.2:
- resolution: {integrity: sha512-+oRstEa52mm0jAFzhr51/xtEWpCEykB3SEBr7vUg8YnXUZJ5hKNBppP938q8Zzr9XfJEbzrtDSGjhKwJCJv6FQ==}
- engines: {node: 10.* || 12.* || >= 14}
+ ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
ember-cli-babel: 7.26.11
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
- supports-color
- /ember-intl@6.3.2(@babel/core@7.23.2)(webpack@5.89.0):
- resolution: {integrity: sha512-UJ91JjlY3z6fjajoHhhJtKUbgqEr/l6Ie4Viqn0B3Lrbavxg5IgAIvyZZ9fOVtq05MDtCuc610zV6vLOc71G0w==}
- engines: {node: 16.* || >= 18}
- peerDependencies:
- typescript: ^4.8.0 || ^5.0.0
- peerDependenciesMeta:
- typescript:
- optional: true
+ ember-intl@6.3.2(@babel/core@7.29.7)(webpack@5.107.2(postcss@8.5.15)):
dependencies:
- '@formatjs/icu-messageformat-parser': 2.7.6
- '@formatjs/intl': 2.10.0
- broccoli-caching-writer: 3.0.3
+ '@formatjs/icu-messageformat-parser': 2.11.4
+ '@formatjs/intl': 2.10.15
+ broccoli-caching-writer: 3.1.0
broccoli-funnel: 3.0.8
broccoli-merge-files: 0.8.0
broccoli-merge-trees: 4.2.0
@@ -7829,80 +14181,72 @@ packages:
broccoli-stew: 3.0.0
calculate-cache-key-for-tree: 2.0.0
cldr-core: 44.1.0
- ember-auto-import: 2.7.2(webpack@5.89.0)
- ember-cli-babel: 8.2.0(@babel/core@7.23.2)
- ember-cli-typescript: 5.2.1
- eventemitter3: 5.0.1
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
+ ember-cli-babel: 8.3.1(@babel/core@7.29.7)
+ ember-cli-typescript: 5.3.0
+ eventemitter3: 5.0.4
extend: 3.0.2
fast-memoize: 2.5.2
- intl-messageformat: 10.5.11
- js-yaml: 4.1.0
- json-stable-stringify: 1.1.1
+ intl-messageformat: 10.7.18
+ js-yaml: 4.2.0
+ json-stable-stringify: 1.3.0
silent-error: 1.1.1
transitivePeerDependencies:
- '@babel/core'
- '@glint/template'
- supports-color
- webpack
- dev: false
- /ember-leaflet@5.1.1(@babel/core@7.23.2)(ember-source@5.4.0)(leaflet@1.9.4)(webpack@5.89.0):
- resolution: {integrity: sha512-tyFKhNoS2b0QG/NXpWUZ3ogSPp59Qc+37raFWJdb+GgUXWU2uxCGCrDtrOyCYtWUlP8nX/drIYSOvqnNSLBspQ==}
- engines: {node: 14.* || 16.* || >= 18}
- peerDependencies:
- ember-source: ^4.0.0
- leaflet: '>=0.7'
+ ember-leaflet@5.1.3(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(leaflet@1.9.4)(webpack@5.107.2(postcss@8.5.15)):
dependencies:
- '@glimmer/component': 1.1.2(@babel/core@7.23.2)
+ '@glimmer/component': 1.1.2(@babel/core@7.29.7)
'@glimmer/tracking': 1.1.2
broccoli-funnel: 3.0.8
broccoli-merge-trees: 4.2.0
ember-cli-babel: 7.26.11
ember-cli-htmlbars: 6.3.0
- ember-composability-tools: 1.2.0(ember-source@5.4.0)(webpack@5.89.0)
+ ember-composability-tools: 1.3.0(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
ember-in-element-polyfill: 1.0.1
- ember-render-helpers: 0.2.0
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ ember-render-helpers: 0.2.1
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
fastboot-transform: 0.1.3
leaflet: 1.9.4
- resolve: 1.22.8
+ resolve: 1.22.12
transitivePeerDependencies:
- '@babel/core'
- - '@glint/environment-ember-loose'
- '@glint/template'
- supports-color
- webpack
- dev: false
- /ember-load-initializers@2.1.2(@babel/core@7.23.2):
- resolution: {integrity: sha512-CYR+U/wRxLbrfYN3dh+0Tb6mFaxJKfdyz+wNql6cqTrA0BBi9k6J3AaKXj273TqvEpyyXegQFFkZEiuZdYtgJw==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ ember-lifeline@7.0.0(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))):
+ dependencies:
+ '@embroider/addon-shim': 1.10.2
+ optionalDependencies:
+ '@ember/test-helpers': 3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
+ transitivePeerDependencies:
+ - supports-color
+
+ ember-load-initializers@2.1.2(@babel/core@7.29.7):
dependencies:
ember-cli-babel: 7.26.11
- ember-cli-typescript: 2.0.2(@babel/core@7.23.2)
+ ember-cli-typescript: 2.0.2(@babel/core@7.29.7)
transitivePeerDependencies:
- '@babel/core'
- supports-color
- dev: true
- /ember-loading@2.0.0(@babel/core@7.23.2):
- resolution: {integrity: sha512-aGFZszIwmrIZ5XINv9TXQGWrfpKIiPwYiakEmRXx0Jvr5ZnUyKtCO84+FaKMyezrbDWsq0UjYqmdiqSAXhIkIA==}
- engines: {node: 12.* || 14.* || >= 16}
+ ember-loading@2.0.0(@babel/core@7.29.7):
dependencies:
ember-cli-babel: 7.26.11
ember-cli-htmlbars: 5.7.2
ember-cli-typescript: 4.2.1
- ember-concurrency: 2.3.7(@babel/core@7.23.2)
- ember-concurrency-async: 1.0.0(ember-concurrency@2.3.7)
- ember-concurrency-ts: 0.3.1(ember-concurrency@2.3.7)
+ ember-concurrency: 2.3.7(@babel/core@7.29.7)
+ ember-concurrency-async: 1.0.0(ember-concurrency@2.3.7(@babel/core@7.29.7))
+ ember-concurrency-ts: 0.3.1(ember-concurrency@2.3.7(@babel/core@7.29.7))
transitivePeerDependencies:
- '@babel/core'
- supports-color
- dev: false
- /ember-local-storage@2.0.7(@babel/core@7.23.2):
- resolution: {integrity: sha512-EPvxH/27mIzrX/EEgng+FG6HD0ri/God9OH/9mhmgPSXrgMNq/614Z3NMnooM4QKIEBAvr0p+p1UL2DgrTTMNg==}
- engines: {node: 12.* || 14.* || >= 16}
+ ember-local-storage@2.0.7(@babel/core@7.29.7):
dependencies:
blob-polyfill: 7.0.20220408
broccoli-funnel: 3.0.8
@@ -7912,105 +14256,69 @@ packages:
ember-cli-string-utils: 1.1.0
ember-cli-version-checker: 5.1.2
ember-copy: 2.0.1
- ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.2)
+ ember-destroyable-polyfill: 2.0.3(@babel/core@7.29.7)
transitivePeerDependencies:
- '@babel/core'
- supports-color
- dev: false
-
- /ember-math-helpers@4.0.0(ember-source@5.4.0):
- resolution: {integrity: sha512-f83fUNp9/DbnPK6WWiYDLdxSePMC2YVxt7aZZPsDy3Zlwp75mhzUknbqd6wSCeKwJYJm+1xh0l/SygxzLvKgnw==}
- engines: {node: 14.* || 16.* || >= 18}
- peerDependencies:
- ember-source: ^4.0.0 || ^5.0.0
- dependencies:
- '@embroider/addon-shim': 1.8.7
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
- transitivePeerDependencies:
- - supports-color
- /ember-maybe-in-element@2.1.0:
- resolution: {integrity: sha512-6WAzPbf4BNQIQzkur2+zRJJJ/PKQoujIYgFjrpj3fOPy8iRlxVUm0/B41qbFyg1LE6bVbg0cWbuESWEvJ9Rswg==}
- engines: {node: 10.* || >= 12}
+ ember-math-helpers@4.2.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 6.3.0
- ember-cli-version-checker: 5.1.2
+ '@embroider/addon-shim': 1.10.2
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-modifier-manager-polyfill@1.2.0(@babel/core@7.23.2):
- resolution: {integrity: sha512-bnaKF1LLKMkBNeDoetvIJ4vhwRPKIIumWr6dbVuW6W6p4QV8ZiO+GdF8J7mxDNlog9CeL9Z/7wam4YS86G8BYA==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ ember-modifier-manager-polyfill@1.2.0(@babel/core@7.29.7):
dependencies:
ember-cli-babel: 7.26.11
ember-cli-version-checker: 2.2.0
- ember-compatibility-helpers: 1.2.7(@babel/core@7.23.2)
+ ember-compatibility-helpers: 1.2.7(@babel/core@7.29.7)
transitivePeerDependencies:
- '@babel/core'
- supports-color
- dev: false
- /ember-modifier@3.2.7(@babel/core@7.23.2):
- resolution: {integrity: sha512-ezcPQhH8jUfcJQbbHji4/ZG/h0yyj1jRDknfYue/ypQS8fM8LrGcCMo0rjDZLzL1Vd11InjNs3BD7BdxFlzGoA==}
- engines: {node: 12.* || >= 14}
+ ember-modifier@3.2.7(@babel/core@7.29.7):
dependencies:
ember-cli-babel: 7.26.11
ember-cli-normalize-entity-name: 1.0.0
ember-cli-string-utils: 1.1.0
- ember-cli-typescript: 5.2.1
- ember-compatibility-helpers: 1.2.7(@babel/core@7.23.2)
+ ember-cli-typescript: 5.3.0
+ ember-compatibility-helpers: 1.2.7(@babel/core@7.29.7)
transitivePeerDependencies:
- '@babel/core'
- supports-color
- dev: false
- /ember-modifier@4.1.0(ember-source@5.4.0):
- resolution: {integrity: sha512-YFCNpEYj6jdyy3EjslRb2ehNiDvaOrXTilR9+ngq+iUqSHYto2zKV0rleiA1XJQ27ELM1q8RihT29U6Lq5EyqQ==}
- peerDependencies:
- ember-source: '*'
- peerDependenciesMeta:
- ember-source:
- optional: true
+ ember-modifier@4.3.0(@babel/core@7.29.7):
dependencies:
- '@embroider/addon-shim': 1.8.7
- ember-cli-normalize-entity-name: 1.0.0
- ember-cli-string-utils: 1.1.0
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ '@embroider/addon-shim': 1.10.2
+ decorator-transforms: 2.3.2(@babel/core@7.29.7)
transitivePeerDependencies:
+ - '@babel/core'
- supports-color
- dev: false
- /ember-on-helper@0.1.0:
- resolution: {integrity: sha512-jjafBnWfoA4VSSje476ft5G+urlvvuSDddwAJjKDCjKY9mbe3hAEsJiMBAaPObJRMm1FOglCuKjQZfwDDls6MQ==}
- engines: {node: 8.* || >= 10.*}
+ ember-on-helper@0.1.0:
dependencies:
ember-cli-babel: 7.26.11
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-page-title@8.0.0:
- resolution: {integrity: sha512-4bu8CpoPObJZNUogwIjpntxS3jMDlZ1eoJsZUuktcCgOI7LfZocuYbu9LnLM215QjEOV0TxGDWwJck1l8cWKeg==}
- engines: {node: 16.* || >= 18}
+ ember-page-title@8.2.4(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- '@embroider/addon-shim': 1.8.7
+ '@embroider/addon-shim': 1.10.2
+ '@simple-dom/document': 1.4.0
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-power-calendar@0.18.0(@babel/core@7.23.2)(ember-source@5.4.0):
- resolution: {integrity: sha512-bkW5eL8MxS3rmn6XnR7B4QivJZ+Y4SF2kHSZPlUwaVjsw4FqZ7a3I1N1dbC3khcgcFvh1M8aa4/Ek/BwP+sorQ==}
- engines: {node: 10.* || >= 12}
+ ember-power-calendar@0.18.0(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
ember-assign-helper: 0.4.0
ember-cli-babel: 7.26.11
ember-cli-element-closest-polyfill: 0.0.2
ember-cli-htmlbars: 6.3.0
- ember-concurrency: 2.3.7(@babel/core@7.23.2)
+ ember-concurrency: 2.3.7(@babel/core@7.29.7)
ember-decorators: 6.1.1
- ember-element-helper: 0.6.1(ember-source@5.4.0)
+ ember-element-helper: 0.6.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
ember-truth-helpers: 3.1.1
transitivePeerDependencies:
- '@babel/core'
@@ -8018,168 +14326,134 @@ packages:
- '@glint/template'
- ember-source
- supports-color
- dev: false
- /ember-power-select@7.2.0(@babel/core@7.23.2)(ember-source@5.4.0)(webpack@5.89.0):
- resolution: {integrity: sha512-h02M6y4yV5EAYdFXixWQw7qDjb3tuVwB0L/8ZYDezQjqZPdtem86fV7AddsXaejZ3bZsHEhIqzhXD5+TsPxEjg==}
- engines: {node: 16.* || >= 18}
+ ember-power-select@8.6.2(@babel/core@7.29.7)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-basic-dropdown@8.4.0(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))))(ember-concurrency@4.0.6(@babel/core@7.29.7))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- '@ember/render-modifiers': 2.1.0(@babel/core@7.23.2)(ember-source@5.4.0)
- '@ember/string': 3.1.1
- '@embroider/util': 1.12.1(ember-source@5.4.0)
- '@glimmer/component': 1.1.2(@babel/core@7.23.2)
+ '@ember/test-helpers': 3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
+ '@embroider/addon-shim': 1.10.2
+ '@embroider/util': 1.13.5(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ '@glimmer/component': 1.1.2(@babel/core@7.29.7)
'@glimmer/tracking': 1.1.2
- ember-assign-helper: 0.4.0
- ember-auto-import: 2.7.2(webpack@5.89.0)
- ember-basic-dropdown: 7.3.0(@babel/core@7.23.2)(@ember/string@3.1.1)(ember-source@5.4.0)(webpack@5.89.0)
- ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 6.3.0
- ember-cli-typescript: 5.2.1
- ember-concurrency: 3.1.1(@babel/core@7.23.2)(ember-source@5.4.0)
- ember-text-measurer: 0.6.0
- ember-truth-helpers: 4.0.3(ember-source@5.4.0)
+ decorator-transforms: 2.3.2(@babel/core@7.29.7)
+ ember-assign-helper: 0.5.1
+ ember-basic-dropdown: 8.4.0(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(@glimmer/component@1.1.2(@babel/core@7.29.7))(@glimmer/tracking@1.1.2)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-concurrency: 4.0.6(@babel/core@7.29.7)
+ ember-lifeline: 7.0.0(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))
+ ember-modifier: 4.3.0(@babel/core@7.29.7)
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ ember-truth-helpers: 4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
transitivePeerDependencies:
- '@babel/core'
- '@glint/environment-ember-loose'
- '@glint/template'
- - ember-source
- supports-color
- - webpack
- dev: false
- /ember-qunit@8.0.1(@ember/test-helpers@3.2.0)(ember-source@5.4.0)(qunit@2.20.0):
- resolution: {integrity: sha512-13PtywHNPTQKkDW4o8QRkJvcdsZr8hRyvh6xh/YLAX8+HaRLd3nPL8mBF4O/Kur/DAj3QWLvjzktZ2uRNGSh3A==}
- peerDependencies:
- '@ember/test-helpers': '>=3.0.3'
- ember-source: '>=4.0.0'
- qunit: ^2.13.0
+ ember-qunit@8.1.1(@babel/core@7.29.7)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(qunit@2.26.0):
dependencies:
- '@ember/test-helpers': 3.2.0(ember-source@5.4.0)(webpack@5.89.0)
- '@embroider/addon-shim': 1.8.7
- '@embroider/macros': 1.13.5
+ '@ember/test-helpers': 3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
+ '@embroider/addon-shim': 1.10.2
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
ember-cli-test-loader: 3.1.0
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
- qunit: 2.20.0
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
+ qunit: 2.26.0
+ qunit-theme-ember: 1.0.0
transitivePeerDependencies:
+ - '@babel/core'
- '@glint/template'
- supports-color
- dev: true
- /ember-radio-button@3.0.0-beta.1:
- resolution: {integrity: sha512-KcSCXQHNosYRFB2t5GDpXQaHzu3A/UwoKgxVQ2XwV9n4xico7HqWReyt7s3OAMxRYmfZTxeQw7F5THawNd3SYA==}
- engines: {node: 12.* || 14.* || >= 16}
+ ember-radio-button@3.0.0-beta.1(postcss@8.5.15):
dependencies:
ember-cli-babel: 7.26.11
ember-cli-htmlbars: 5.7.2
- webpack: 5.89.0
+ webpack: 5.107.2(postcss@8.5.15)
transitivePeerDependencies:
+ - '@minify-html/node'
- '@swc/core'
+ - '@swc/css'
+ - '@swc/html'
+ - clean-css
+ - cssnano
+ - csso
- esbuild
+ - html-minifier-terser
+ - lightningcss
+ - postcss
- supports-color
- uglify-js
- webpack-cli
- dev: false
- /ember-ref-bucket@4.1.0(@babel/core@7.23.2):
- resolution: {integrity: sha512-oEUU2mDtuYuMM039U9YEqrrOCVHH6rQfvbFOmh3WxOVEgubmLVyKEpGgU4P/6j0B/JxTqqTwM3ULTQyDto8dKg==}
- engines: {node: 10.* || >= 12}
+ ember-ref-bucket@4.1.0(@babel/core@7.29.7):
dependencies:
ember-cli-babel: 7.26.11
ember-cli-htmlbars: 6.3.0
- ember-modifier: 3.2.7(@babel/core@7.23.2)
+ ember-modifier: 3.2.7(@babel/core@7.29.7)
transitivePeerDependencies:
- '@babel/core'
- supports-color
- dev: false
- /ember-render-helpers@0.2.0:
- resolution: {integrity: sha512-MnqGS8BnY3GJ+n5RZVVRqCwKjfXXMr5quKyqNu1vxft8oslOJuZ1f1dOesQouD+6LwD4Y9tWRVKNw+LOqM9ocw==}
- engines: {node: 8.* || >= 10.*}
+ ember-render-helpers@0.2.1:
dependencies:
ember-cli-babel: 7.26.11
ember-cli-typescript: 4.2.1
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-resolver@11.0.1(ember-source@5.4.0):
- resolution: {integrity: sha512-ucBk3oM+PR+AfYoSUXeQh8cDQS1sSiEKp4Pcgbew5cFMSqPxJfqd1zyZsfQKNTuyubeGmWxBOyMVSTvX2LeCyg==}
- engines: {node: 14.* || 16.* || >= 18}
- peerDependencies:
- ember-source: ^4.8.3 || >= 5.0.0
- peerDependenciesMeta:
- ember-source:
- optional: true
+ ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
ember-cli-babel: 7.26.11
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ optionalDependencies:
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-responsive@5.0.0:
- resolution: {integrity: sha512-JDwNIKHNcHrILGkpLqLqZ1idO7hxxt6f4M2wmiktOuzhBm2/JxUjkK+yec+tzIzXaD7rrl2/S7STa/Uj5s6TEw==}
- engines: {node: 10.* || >= 12}
+ ember-responsive@5.0.0:
dependencies:
ember-cli-babel: 7.26.11
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-rfc176-data@0.3.18:
- resolution: {integrity: sha512-JtuLoYGSjay1W3MQAxt3eINWXNYYQliK90tLwtb8aeCuQK8zKGCRbBodVIrkcTqshULMnRuTOS6t1P7oQk3g6Q==}
+ ember-rfc176-data@0.3.18: {}
- /ember-router-generator@2.0.0:
- resolution: {integrity: sha512-89oVHVJwmLDvGvAUWgS87KpBoRhy3aZ6U0Ql6HOmU4TrPkyaa8pM0W81wj9cIwjYprcQtN9EwzZMHnq46+oUyw==}
- engines: {node: 8.* || 10.* || >= 12}
+ ember-router-generator@2.0.0:
dependencies:
- '@babel/parser': 7.23.9
- '@babel/traverse': 7.23.9
+ '@babel/parser': 7.29.7
+ '@babel/traverse': 7.29.7
recast: 0.18.10
transitivePeerDependencies:
- supports-color
- /ember-simple-auth@6.0.0(@ember/test-helpers@3.2.0):
- resolution: {integrity: sha512-9SzSFApxZ74CD4UxIeTV+poIPeXcRLXWM60cMvC1SwTYjoc/p9DeQF0pVm6m1XV6uA3kPUzEsEn4/GeHc2YX1w==}
- peerDependencies:
- '@ember/test-helpers': '>= 3 || > 2.7'
- peerDependenciesMeta:
- '@ember/test-helpers':
- optional: true
+ ember-simple-auth@6.1.0(@babel/core@7.29.7)(@ember/test-helpers@3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15)))(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(eslint@8.57.1):
dependencies:
- '@ember/test-helpers': 3.2.0(ember-source@5.4.0)(webpack@5.89.0)
+ '@babel/eslint-parser': 7.29.7(@babel/core@7.29.7)(eslint@8.57.1)
'@ember/test-waiters': 3.1.0
- '@embroider/addon-shim': 1.8.7
- '@embroider/macros': 1.13.5
+ '@embroider/addon-shim': 1.10.2
+ '@embroider/macros': 1.20.3(@babel/core@7.29.7)
ember-cli-is-package-missing: 1.0.0
- ember-cookies: 1.1.2
+ ember-cookies: 1.3.0(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
silent-error: 1.1.1
+ optionalDependencies:
+ '@ember/test-helpers': 3.3.1(@babel/core@7.29.7)(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
+ - '@babel/core'
- '@glint/template'
+ - ember-source
+ - eslint
- supports-color
- dev: false
- /ember-source-channel-url@3.0.0:
- resolution: {integrity: sha512-vF/8BraOc66ZxIDo3VuNP7iiDrnXEINclJgSJmqwAAEpg84Zb1DHPI22XTXSDA+E8fW5btPUxu65c3ZXi8AQFA==}
- engines: {node: 10.* || 12.* || >= 14}
- hasBin: true
+ ember-source-channel-url@3.0.0:
dependencies:
node-fetch: 2.7.0
transitivePeerDependencies:
- encoding
- dev: true
- /ember-source@5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0):
- resolution: {integrity: sha512-y2fPd7DJ8D9IBjHSf6CPwU8TqNpqytpMgFyzf+9tPvu/u2Wdd45jEd2W1weKE3URQwPTcA0vK8Q1w6uzLOx/EA==}
- engines: {node: '>= 16.*'}
- peerDependencies:
- '@glimmer/component': ^1.1.2
+ ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)):
dependencies:
- '@babel/helper-module-imports': 7.22.15
- '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.2)
+ '@babel/helper-module-imports': 7.29.7
+ '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7)
'@ember/edition-utils': 1.2.0
'@glimmer/compiler': 0.84.3
- '@glimmer/component': 1.1.2(@babel/core@7.23.2)
+ '@glimmer/component': 1.1.2(@babel/core@7.29.7)
'@glimmer/destroyable': 0.84.3
'@glimmer/env': 0.1.7
'@glimmer/global-context': 0.84.3
@@ -8194,18 +14468,18 @@ packages:
'@glimmer/syntax': 0.84.3
'@glimmer/util': 0.84.3
'@glimmer/validator': 0.84.3
- '@glimmer/vm-babel-plugins': 0.84.3(@babel/core@7.23.2)
+ '@glimmer/vm-babel-plugins': 0.84.3(@babel/core@7.29.7)
'@simple-dom/interface': 1.4.0
- babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.2)
+ babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.7)
babel-plugin-filter-imports: 4.0.0
backburner.js: 2.8.0
- broccoli-concat: 4.2.5
+ broccoli-concat: 4.2.7
broccoli-debug: 0.6.5
broccoli-file-creator: 2.1.1
broccoli-funnel: 3.0.8
broccoli-merge-trees: 4.2.0
chalk: 4.1.2
- ember-auto-import: 2.6.3(webpack@5.89.0)
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
ember-cli-babel: 7.26.11
ember-cli-get-component-path-option: 1.0.0
ember-cli-is-package-missing: 1.0.0
@@ -8216,10 +14490,10 @@ packages:
ember-cli-version-checker: 5.1.2
ember-router-generator: 2.0.0
inflection: 2.0.1
- resolve: 1.22.8
+ resolve: 1.22.12
route-recognizer: 0.3.4
- router_js: 8.0.3(route-recognizer@0.3.4)(rsvp@4.8.5)
- semver: 7.6.0
+ router_js: 8.0.6(route-recognizer@0.3.4)(rsvp@4.8.5)
+ semver: 7.8.1
silent-error: 1.1.1
transitivePeerDependencies:
- '@babel/core'
@@ -8228,26 +14502,36 @@ packages:
- supports-color
- webpack
- /ember-style-modifier@3.1.1(@ember/string@3.1.1)(ember-source@5.4.0)(webpack@5.89.0):
- resolution: {integrity: sha512-J91YLKVp3/m7LrcLEWNSG2sJlSFhE5Ny75empU048qYJtdJMe788Ks/EpKEi953o1mJujVRg792YGrwbrpTzNA==}
- engines: {node: 14.* || 16.* || >= 18}
- peerDependencies:
- '@ember/string': ^3.0.1
+ ember-style-modifier@3.1.1(@babel/core@7.29.7)(@ember/string@3.1.1)(webpack@5.107.2(postcss@8.5.15)):
dependencies:
'@ember/string': 3.1.1
- ember-auto-import: 2.7.2(webpack@5.89.0)
+ ember-auto-import: 2.13.1(webpack@5.107.2(postcss@8.5.15))
ember-cli-babel: 7.26.11
- ember-modifier: 4.1.0(ember-source@5.4.0)
+ ember-modifier: 4.3.0(@babel/core@7.29.7)
transitivePeerDependencies:
+ - '@babel/core'
- '@glint/template'
- - ember-source
- supports-color
- webpack
- dev: false
- /ember-template-imports@3.4.2:
- resolution: {integrity: sha512-OS8TUVG2kQYYwP3netunLVfeijPoOKIs1SvPQRTNOQX4Pu8xGGBEZmrv0U1YTnQn12Eg+p6w/0UdGbUnITjyzw==}
- engines: {node: 12.* || >= 14}
+ ember-style-modifier@4.6.0(@babel/core@7.29.7):
+ dependencies:
+ '@embroider/addon-shim': 1.10.2
+ csstype: 3.2.3
+ decorator-transforms: 2.3.2(@babel/core@7.29.7)
+ ember-modifier: 4.3.0(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+
+ ember-tag-input@3.1.0:
+ dependencies:
+ ember-cli-babel: 7.26.11
+ ember-cli-htmlbars: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+
+ ember-template-imports@3.4.2:
dependencies:
babel-import-util: 0.2.0
broccoli-stew: 3.0.0
@@ -8256,24 +14540,28 @@ packages:
line-column: 1.0.2
magic-string: 0.25.9
parse-static-imports: 1.1.0
- string.prototype.matchall: 4.0.10
+ string.prototype.matchall: 4.0.12
validate-peer-dependencies: 1.2.0
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-template-lint@5.11.2:
- resolution: {integrity: sha512-G8KXmFCYLKM9ifMb+rluL8CNIawUl45i4z4VrK+Nn5ciWSo+Vx2jUp+sS6wKCdBqGYoiqjUgn/hmGnCVOId+yQ==}
- engines: {node: ^14.18.0 || ^16.0.0 || >= 18.0.0}
- hasBin: true
+ ember-template-imports@4.4.0:
+ dependencies:
+ broccoli-stew: 3.0.0
+ content-tag: 4.2.0
+ ember-cli-version-checker: 5.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ ember-template-lint@5.13.0:
dependencies:
'@lint-todo/utils': 13.1.1
- aria-query: 5.3.0
- chalk: 5.3.0
+ aria-query: 5.3.2
+ chalk: 5.6.2
ci-info: 3.9.0
date-fns: 2.30.0
ember-template-imports: 3.4.2
- ember-template-recast: 6.1.4
+ ember-template-recast: 6.1.5
eslint-formatter-kakoune: 1.0.0
find-up: 6.3.0
fuse.js: 6.6.2
@@ -8281,18 +14569,14 @@ packages:
globby: 13.2.2
is-glob: 4.0.3
language-tags: 1.0.9
- micromatch: 4.0.5
- resolve: 1.22.8
+ micromatch: 4.0.8
+ resolve: 1.22.12
v8-compile-cache: 2.4.0
yargs: 17.7.2
transitivePeerDependencies:
- supports-color
- dev: true
- /ember-template-recast@6.1.4:
- resolution: {integrity: sha512-fCh+rOK6z+/tsdkTbOE+e7f84P6ObnIRQrCCrnu21E4X05hPeradikIkRMhJdxn4NWrxitfZskQDd37TR/lsNQ==}
- engines: {node: 12.* || 14.* || >= 16.*}
- hasBin: true
+ ember-template-recast@6.1.5:
dependencies:
'@glimmer/reference': 0.84.3
'@glimmer/syntax': 0.84.3
@@ -8303,470 +14587,339 @@ packages:
globby: 11.1.0
ora: 5.4.1
slash: 3.0.0
- tmp: 0.2.1
+ tmp: 0.2.7
workerpool: 6.5.1
transitivePeerDependencies:
- supports-color
- dev: true
-
- /ember-text-measurer@0.6.0:
- resolution: {integrity: sha512-/aZs2x2i6kT4a5tAW+zenH2wg8AbRK9jKxLkbVsKl/1ublNl27idVRdov1gJ+zgWu3DNK7whcfVycXtlaybYQw==}
- engines: {node: 10.* || >= 12}
- dependencies:
- ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 4.5.0
- transitivePeerDependencies:
- - supports-color
- dev: false
- /ember-tracked-storage-polyfill@1.0.0:
- resolution: {integrity: sha512-eL7lZat68E6P/D7b9UoTB5bB5Oh/0aju0Z7PCMi3aTwhaydRaxloE7TGrTRYU+NdJuyNVZXeGyxFxn2frvd3TA==}
- engines: {node: 12.* || >= 14}
+ ember-tracked-storage-polyfill@1.0.1:
dependencies:
ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 5.7.2
transitivePeerDependencies:
- supports-color
- dev: false
-
- /ember-truth-helpers@3.1.1:
- resolution: {integrity: sha512-FHwJAx77aA5q27EhdaaiBFuy9No+8yaWNT5A7zs0sIFCmf14GbcLn69vJEp6mW7vkITezizGAWhw7gL0Wbk7DA==}
- engines: {node: 10.* || >= 12}
+
+ ember-truth-helpers@3.1.1:
dependencies:
ember-cli-babel: 7.26.11
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-truth-helpers@4.0.3(ember-source@5.4.0):
- resolution: {integrity: sha512-T6Ogd3pk9FxYiZfSxdjgn3Hb3Ksqgw7CD23V9qfig9jktNdkNEHo4+3PA3cSD/+3a2kdH3KmNvKyarVuzdtEkA==}
- peerDependencies:
- ember-source: '>=3.28.0'
+ ember-truth-helpers@4.0.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
- '@embroider/addon-shim': 1.8.7
- ember-functions-as-helper-polyfill: 2.1.2(ember-source@5.4.0)
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ '@embroider/addon-shim': 1.10.2
+ ember-functions-as-helper-polyfill: 2.1.3(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15)))
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-try-config@4.0.0:
- resolution: {integrity: sha512-jAv7fqYJK7QYYekPc/8Nr7KOqDpv/asqM6F8xcRnbmf9UrD35BkSffY63qUuiD9e0aR5qiMNBIQzH8f65rGDqw==}
- engines: {node: 10.* || 12.* || >= 14}
+ ember-try-config@4.0.0:
dependencies:
ember-source-channel-url: 3.0.0
- lodash: 4.17.21
+ lodash: 4.18.1
package-json: 6.5.0
remote-git-tags: 3.0.0
- semver: 7.6.0
+ semver: 7.8.1
transitivePeerDependencies:
- encoding
- dev: true
- /ember-try@3.0.0:
- resolution: {integrity: sha512-ZYVKYWMnrHSD3vywo7rV76kPCOC9ATIEnGGG/PEKfCcFE0lB26jltRDnOrhORfLKq0JFp62fFxC/4940U+MwRQ==}
- engines: {node: 16.* || >= 18.*}
+ ember-try@3.0.0:
dependencies:
chalk: 4.1.2
- cli-table3: 0.6.3
+ cli-table3: 0.6.5
core-object: 3.1.5
- debug: 4.3.4
+ debug: 4.4.3
ember-try-config: 4.0.0
execa: 4.1.0
fs-extra: 6.0.1
- resolve: 1.22.8
+ resolve: 1.22.12
rimraf: 3.0.2
- semver: 7.6.0
+ semver: 7.8.1
walk-sync: 2.2.0
transitivePeerDependencies:
- encoding
- supports-color
- dev: true
- /ember-window-mock@0.9.0(ember-source@5.4.0):
- resolution: {integrity: sha512-jFWq8zNFhiKNA0QnJFnhsYW+Y+2FwpvFuAf4s393Il5f1fJJfZoiwjL5l8FMpxV1alf2o8jZ2XqNQWh8rM9YBA==}
- engines: {node: 16.* || >= 18}
- peerDependencies:
- ember-source: ^4.0.0
+ ember-window-mock@0.9.0(ember-source@5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))):
dependencies:
ember-cli-babel: 7.26.11
ember-cli-htmlbars: 6.3.0
- ember-source: 5.4.0(@babel/core@7.23.2)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.89.0)
+ ember-source: 5.4.1(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(rsvp@4.8.5)(webpack@5.107.2(postcss@8.5.15))
transitivePeerDependencies:
- supports-color
- dev: false
- /ember-wormhole@0.6.0:
- resolution: {integrity: sha512-b7RrRxkwCBEJxM2zR34dEzIET81BOZWTcYNJtkidLycLQvdbxPys5QJEjJ/IfDikT/z5HuQBdZRKBhXI0vZNXQ==}
- engines: {node: 10.* || >= 12}
+ ember-wormhole@0.6.1:
dependencies:
ember-cli-babel: 7.26.11
ember-cli-htmlbars: 5.7.2
transitivePeerDependencies:
- supports-color
- dev: false
- /emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ emoji-regex@8.0.0: {}
- /emoji-regex@9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
- dev: false
+ emoji-regex@9.2.2: {}
- /emojis-list@3.0.0:
- resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
- engines: {node: '>= 4'}
+ emojis-list@3.0.0: {}
- /encodeurl@1.0.2:
- resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
- engines: {node: '>= 0.8'}
- dev: true
+ encodeurl@1.0.2: {}
+
+ encodeurl@2.0.0: {}
- /end-of-stream@1.4.4:
- resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ end-of-stream@1.4.5:
dependencies:
once: 1.4.0
- /engine.io-parser@5.2.2:
- resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==}
- engines: {node: '>=10.0.0'}
- dev: true
+ engine.io-parser@5.2.3: {}
- /engine.io@6.5.4:
- resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==}
- engines: {node: '>=10.2.0'}
+ engine.io@6.6.8:
dependencies:
- '@types/cookie': 0.4.1
- '@types/cors': 2.8.17
- '@types/node': 20.11.19
+ '@types/cors': 2.8.19
+ '@types/node': 25.9.1
+ '@types/ws': 8.18.1
accepts: 1.3.8
base64id: 2.0.0
- cookie: 0.4.2
- cors: 2.8.5
- debug: 4.3.4
- engine.io-parser: 5.2.2
- ws: 8.11.0
+ cookie: 0.7.2
+ cors: 2.8.6
+ debug: 4.4.3
+ engine.io-parser: 5.2.3
+ ws: 8.20.1
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
- dev: true
- /enhanced-resolve@4.5.0:
- resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==}
- engines: {node: '>=6.9.0'}
+ enhanced-resolve@4.5.0:
dependencies:
graceful-fs: 4.2.11
memory-fs: 0.5.0
tapable: 1.1.3
- dev: false
- /enhanced-resolve@5.15.0:
- resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
- engines: {node: '>=10.13.0'}
+ enhanced-resolve@5.22.1:
dependencies:
graceful-fs: 4.2.11
- tapable: 2.2.1
+ tapable: 2.3.3
- /ensure-posix-path@1.1.1:
- resolution: {integrity: sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==}
+ ensure-posix-path@1.1.1: {}
- /entities@2.2.0:
- resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+ entities@2.2.0: {}
- /entities@3.0.1:
- resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==}
- engines: {node: '>=0.12'}
- dev: true
+ entities@3.0.1: {}
- /errlop@2.2.0:
- resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==}
- engines: {node: '>=0.8'}
+ entities@4.5.0: {}
- /errno@0.1.8:
- resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
- hasBin: true
+ errlop@2.2.0: {}
+
+ errno@0.1.8:
dependencies:
prr: 1.0.1
- dev: false
- /error-ex@1.3.2:
- resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ error-ex@1.3.4:
dependencies:
is-arrayish: 0.2.1
- dev: true
- /error@7.2.1:
- resolution: {integrity: sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==}
+ error@7.2.1:
dependencies:
string-template: 0.2.1
- dev: true
- /es-abstract@1.22.4:
- resolution: {integrity: sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==}
- engines: {node: '>= 0.4'}
- dependencies:
- array-buffer-byte-length: 1.0.1
- arraybuffer.prototype.slice: 1.0.3
- available-typed-arrays: 1.0.6
- call-bind: 1.0.7
- es-define-property: 1.0.0
+ es-abstract@1.24.2:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ arraybuffer.prototype.slice: 1.0.4
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ data-view-buffer: 1.0.2
+ data-view-byte-length: 1.0.2
+ data-view-byte-offset: 1.0.1
+ es-define-property: 1.0.1
es-errors: 1.3.0
- es-set-tostringtag: 2.0.2
- es-to-primitive: 1.2.1
- function.prototype.name: 1.1.6
- get-intrinsic: 1.2.4
- get-symbol-description: 1.0.2
- globalthis: 1.0.3
- gopd: 1.0.1
+ es-object-atoms: 1.1.2
+ es-set-tostringtag: 2.1.0
+ es-to-primitive: 1.3.0
+ function.prototype.name: 1.1.8
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ get-symbol-description: 1.1.0
+ globalthis: 1.0.4
+ gopd: 1.2.0
has-property-descriptors: 1.0.2
- has-proto: 1.0.1
- has-symbols: 1.0.3
- hasown: 2.0.1
- internal-slot: 1.0.7
- is-array-buffer: 3.0.4
+ has-proto: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.4
+ internal-slot: 1.1.0
+ is-array-buffer: 3.0.5
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.13
- is-weakref: 1.0.2
- object-inspect: 1.13.1
+ is-data-view: 1.0.2
+ is-negative-zero: 2.0.3
+ is-regex: 1.2.1
+ is-set: 2.0.3
+ is-shared-array-buffer: 1.0.4
+ is-string: 1.1.1
+ is-typed-array: 1.1.15
+ is-weakref: 1.1.1
+ math-intrinsics: 1.1.0
+ object-inspect: 1.13.4
object-keys: 1.1.1
- object.assign: 4.1.5
- regexp.prototype.flags: 1.5.2
- safe-array-concat: 1.1.0
- safe-regex-test: 1.0.3
- string.prototype.trim: 1.2.8
- string.prototype.trimend: 1.0.7
- string.prototype.trimstart: 1.0.7
- typed-array-buffer: 1.0.1
- typed-array-byte-length: 1.0.0
- typed-array-byte-offset: 1.0.1
- typed-array-length: 1.0.4
- unbox-primitive: 1.0.2
- which-typed-array: 1.1.14
-
- /es-define-property@1.0.0:
- resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
- engines: {node: '>= 0.4'}
+ object.assign: 4.1.7
+ own-keys: 1.0.1
+ regexp.prototype.flags: 1.5.4
+ safe-array-concat: 1.1.4
+ safe-push-apply: 1.0.0
+ safe-regex-test: 1.1.0
+ set-proto: 1.0.0
+ stop-iteration-iterator: 1.1.0
+ string.prototype.trim: 1.2.10
+ string.prototype.trimend: 1.0.9
+ string.prototype.trimstart: 1.0.8
+ typed-array-buffer: 1.0.3
+ typed-array-byte-length: 1.0.3
+ typed-array-byte-offset: 1.0.4
+ typed-array-length: 1.0.8
+ unbox-primitive: 1.1.0
+ which-typed-array: 1.1.21
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-module-lexer@2.1.0: {}
+
+ es-object-atoms@1.1.2:
dependencies:
- get-intrinsic: 1.2.4
-
- /es-errors@1.3.0:
- resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
- engines: {node: '>= 0.4'}
-
- /es-module-lexer@1.4.1:
- resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==}
+ es-errors: 1.3.0
- /es-set-tostringtag@2.0.2:
- resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
- engines: {node: '>= 0.4'}
+ es-set-tostringtag@2.1.0:
dependencies:
- get-intrinsic: 1.2.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
has-tostringtag: 1.0.2
- hasown: 2.0.1
+ hasown: 2.0.4
- /es-to-primitive@1.2.1:
- resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
- engines: {node: '>= 0.4'}
+ es-to-primitive@1.3.0:
dependencies:
is-callable: 1.2.7
- is-date-object: 1.0.5
- is-symbol: 1.0.4
+ is-date-object: 1.1.0
+ is-symbol: 1.1.1
- /escalade@3.1.2:
- resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
- engines: {node: '>=6'}
+ escalade@3.2.0: {}
- /escape-html@1.0.3:
- resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
- dev: true
+ escape-html@1.0.3: {}
- /escape-string-regexp@1.0.5:
- resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
- engines: {node: '>=0.8.0'}
+ escape-string-regexp@1.0.5: {}
- /escape-string-regexp@4.0.0:
- resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
- engines: {node: '>=10'}
- dev: true
+ escape-string-regexp@4.0.0: {}
- /eslint-compat-utils@0.1.2(eslint@8.52.0):
- resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==}
- engines: {node: '>=12'}
- peerDependencies:
- eslint: '>=6.0.0'
+ eslint-compat-utils@0.5.1(eslint@8.57.1):
dependencies:
- eslint: 8.52.0
- dev: true
+ eslint: 8.57.1
+ semver: 7.8.1
- /eslint-config-prettier@9.0.0(eslint@8.52.0):
- resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==}
- hasBin: true
- peerDependencies:
- eslint: '>=7.0.0'
+ eslint-config-prettier@9.1.2(eslint@8.57.1):
dependencies:
- eslint: 8.52.0
- dev: true
+ eslint: 8.57.1
- /eslint-formatter-kakoune@1.0.0:
- resolution: {integrity: sha512-Uk/TVLt6Nf6Xoz7C1iYuZjOSdJxe5aaauGRke8JhKeJwD66Y61/pY2FjtLP04Ooq9PwV34bzrkKkU2UZ5FtDRA==}
- dev: true
+ eslint-formatter-kakoune@1.0.0: {}
- /eslint-plugin-ember@11.11.1(eslint@8.52.0):
- resolution: {integrity: sha512-dvsDa4LkDkGqCE2bzBIguRMi1g40JVwRWMSHmn8S7toRDxSOU3M7yromgi5eSAJX2O2vEvJZ9QnR15YDbvNfVQ==}
- engines: {node: 14.* || 16.* || >= 18}
- peerDependencies:
- eslint: '>= 7'
+ eslint-plugin-ember@11.12.0(eslint@8.57.1):
dependencies:
'@ember-data/rfc395-data': 0.0.4
'@glimmer/syntax': 0.84.3
css-tree: 2.3.1
ember-rfc176-data: 0.3.18
ember-template-imports: 3.4.2
- ember-template-recast: 6.1.4
- eslint: 8.52.0
- eslint-utils: 3.0.0(eslint@8.52.0)
+ ember-template-recast: 6.1.5
+ eslint: 8.57.1
+ eslint-utils: 3.0.0(eslint@8.57.1)
estraverse: 5.3.0
lodash.camelcase: 4.3.0
lodash.kebabcase: 4.1.1
- magic-string: 0.30.7
+ magic-string: 0.30.21
requireindex: 1.2.0
snake-case: 3.0.4
transitivePeerDependencies:
- supports-color
- dev: true
- /eslint-plugin-es-x@7.5.0(eslint@8.52.0):
- resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==}
- engines: {node: ^14.18.0 || >=16.0.0}
- peerDependencies:
- eslint: '>=8'
+ eslint-plugin-es-x@7.8.0(eslint@8.57.1):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0)
- '@eslint-community/regexpp': 4.10.0
- eslint: 8.52.0
- eslint-compat-utils: 0.1.2(eslint@8.52.0)
- dev: true
+ '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1)
+ '@eslint-community/regexpp': 4.12.2
+ eslint: 8.57.1
+ eslint-compat-utils: 0.5.1(eslint@8.57.1)
- /eslint-plugin-n@16.2.0(eslint@8.52.0):
- resolution: {integrity: sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==}
- engines: {node: '>=16.0.0'}
- peerDependencies:
- eslint: '>=7.0.0'
+ eslint-plugin-n@16.6.2(eslint@8.57.1):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0)
- builtins: 5.0.1
- eslint: 8.52.0
- eslint-plugin-es-x: 7.5.0(eslint@8.52.0)
- get-tsconfig: 4.7.2
- ignore: 5.3.1
- is-core-module: 2.13.1
- minimatch: 3.1.2
- resolve: 1.22.8
- semver: 7.6.0
- dev: true
-
- /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.52.0)(prettier@3.0.3):
- resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==}
- engines: {node: ^14.18.0 || >=16.0.0}
- peerDependencies:
- '@types/eslint': '>=8.0.0'
- eslint: '>=8.0.0'
- eslint-config-prettier: '*'
- prettier: '>=3.0.0'
- peerDependenciesMeta:
- '@types/eslint':
- optional: true
- eslint-config-prettier:
- optional: true
+ '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1)
+ builtins: 5.1.0
+ eslint: 8.57.1
+ eslint-plugin-es-x: 7.8.0(eslint@8.57.1)
+ get-tsconfig: 4.14.0
+ globals: 13.24.0
+ ignore: 5.3.2
+ is-builtin-module: 3.2.1
+ is-core-module: 2.16.2
+ minimatch: 3.1.5
+ resolve: 1.22.12
+ semver: 7.8.1
+
+ eslint-plugin-prettier@5.5.6(@types/eslint@8.56.12)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.8.3):
dependencies:
- eslint: 8.52.0
- eslint-config-prettier: 9.0.0(eslint@8.52.0)
- prettier: 3.0.3
- prettier-linter-helpers: 1.0.0
- synckit: 0.8.8
- dev: true
+ eslint: 8.57.1
+ prettier: 3.8.3
+ prettier-linter-helpers: 1.0.1
+ synckit: 0.11.13
+ optionalDependencies:
+ '@types/eslint': 8.56.12
+ eslint-config-prettier: 9.1.2(eslint@8.57.1)
- /eslint-plugin-qunit@8.0.1(eslint@8.52.0):
- resolution: {integrity: sha512-3bFOPryXoQOez95oP/JfWTxHBc/bgDQQZqTuv9uYTwH5sdIvSM2TES1iHDcy/F/LvqiqIpscDAOPAjlqSCnNPg==}
- engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
+ eslint-plugin-qunit@8.2.6(eslint@8.57.1):
dependencies:
- eslint-utils: 3.0.0(eslint@8.52.0)
+ '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1)
+ eslint: 8.57.1
requireindex: 1.2.0
- transitivePeerDependencies:
- - eslint
- dev: true
- /eslint-scope@4.0.3:
- resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==}
- engines: {node: '>=4.0.0'}
+ eslint-scope@4.0.3:
dependencies:
esrecurse: 4.3.0
estraverse: 4.3.0
- dev: false
- /eslint-scope@5.1.1:
- resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
- engines: {node: '>=8.0.0'}
+ eslint-scope@5.1.1:
dependencies:
esrecurse: 4.3.0
estraverse: 4.3.0
- /eslint-scope@7.2.2:
- resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-scope@7.2.2:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
- dev: true
- /eslint-utils@3.0.0(eslint@8.52.0):
- resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
- engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
- peerDependencies:
- eslint: '>=5'
+ eslint-utils@3.0.0(eslint@8.57.1):
dependencies:
- eslint: 8.52.0
+ eslint: 8.57.1
eslint-visitor-keys: 2.1.0
- dev: true
- /eslint-visitor-keys@2.1.0:
- resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
- engines: {node: '>=10'}
- dev: true
+ eslint-visitor-keys@2.1.0: {}
- /eslint-visitor-keys@3.4.3:
- resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dev: true
+ eslint-visitor-keys@3.4.3: {}
- /eslint@8.52.0:
- resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- hasBin: true
+ eslint@8.57.1:
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0)
- '@eslint-community/regexpp': 4.10.0
+ '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1)
+ '@eslint-community/regexpp': 4.12.2
'@eslint/eslintrc': 2.1.4
- '@eslint/js': 8.52.0
- '@humanwhocodes/config-array': 0.11.14
+ '@eslint/js': 8.57.1
+ '@humanwhocodes/config-array': 0.13.0
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
- '@ungap/structured-clone': 1.2.0
- ajv: 6.12.6
+ '@ungap/structured-clone': 1.3.1
+ ajv: 6.15.0
chalk: 4.1.2
- cross-spawn: 7.0.3
- debug: 4.3.4
+ cross-spawn: 7.0.6
+ debug: 4.4.3
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
- esquery: 1.5.0
+ esquery: 1.7.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
@@ -8774,130 +14927,88 @@ packages:
glob-parent: 6.0.2
globals: 13.24.0
graphemer: 1.4.0
- ignore: 5.3.1
+ ignore: 5.3.2
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
- js-yaml: 4.1.0
+ js-yaml: 4.2.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
- minimatch: 3.1.2
+ minimatch: 3.1.5
natural-compare: 1.4.0
- optionator: 0.9.3
+ optionator: 0.9.4
strip-ansi: 6.0.1
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
- dev: true
- /esm@3.2.25:
- resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==}
- engines: {node: '>=6'}
- dev: true
+ esm-env@1.2.2: {}
- /espree@9.6.1:
- resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ esm@3.2.25: {}
+
+ espree@9.6.1:
dependencies:
- acorn: 8.11.3
- acorn-jsx: 5.3.2(acorn@8.11.3)
+ acorn: 8.16.0
+ acorn-jsx: 5.3.2(acorn@8.16.0)
eslint-visitor-keys: 3.4.3
- dev: true
- /esprima@3.0.0:
- resolution: {integrity: sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw==}
- engines: {node: '>=0.10.0'}
- hasBin: true
- dev: true
+ esprima@3.0.0: {}
- /esprima@4.0.1:
- resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
- engines: {node: '>=4'}
- hasBin: true
+ esprima@4.0.1: {}
- /esquery@1.5.0:
- resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
- engines: {node: '>=0.10'}
+ esquery@1.7.0:
dependencies:
estraverse: 5.3.0
- dev: true
- /esrecurse@4.3.0:
- resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
- engines: {node: '>=4.0'}
+ esrap@2.2.11:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ esrecurse@4.3.0:
dependencies:
estraverse: 5.3.0
- /estraverse@4.3.0:
- resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
- engines: {node: '>=4.0'}
+ estraverse@4.3.0: {}
- /estraverse@5.3.0:
- resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
- engines: {node: '>=4.0'}
+ estraverse@5.3.0: {}
- /estree-walker@0.6.1:
- resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==}
+ estree-walker@0.6.1: {}
- /estree-walker@2.0.2:
- resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
- dev: false
+ estree-walker@2.0.2: {}
- /esutils@2.0.3:
- resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
- engines: {node: '>=0.10.0'}
+ esutils@2.0.3: {}
- /etag@1.8.1:
- resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
- engines: {node: '>= 0.6'}
- dev: true
+ etag@1.8.1: {}
- /eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
- dev: true
+ eventemitter3@4.0.7: {}
- /eventemitter3@5.0.1:
- resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
- dev: false
+ eventemitter3@5.0.4: {}
- /events-to-array@1.1.2:
- resolution: {integrity: sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA==}
- dev: true
+ events-to-array@2.0.3: {}
- /events@3.3.0:
- resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
- engines: {node: '>=0.8.x'}
+ events@3.3.0: {}
- /evp_bytestokey@1.0.3:
- resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==}
+ evp_bytestokey@1.0.3:
dependencies:
md5.js: 1.3.5
safe-buffer: 5.2.1
- dev: false
- /exec-sh@0.3.6:
- resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==}
- dev: true
+ exec-sh@0.3.6: {}
- /execa@1.0.0:
- resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==}
- engines: {node: '>=6'}
+ execa@1.0.0:
dependencies:
- cross-spawn: 6.0.5
+ cross-spawn: 6.0.6
get-stream: 4.1.0
is-stream: 1.1.0
npm-run-path: 2.0.2
p-finally: 1.0.0
signal-exit: 3.0.7
strip-eof: 1.0.0
- dev: true
- /execa@2.1.0:
- resolution: {integrity: sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==}
- engines: {node: ^8.12.0 || >=9.7.0}
+ execa@2.1.0:
dependencies:
- cross-spawn: 7.0.3
+ cross-spawn: 7.0.6
get-stream: 5.2.0
is-stream: 2.0.1
merge-stream: 2.0.0
@@ -8907,11 +15018,9 @@ packages:
signal-exit: 3.0.7
strip-final-newline: 2.0.0
- /execa@3.4.0:
- resolution: {integrity: sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==}
- engines: {node: ^8.12.0 || >=9.7.0}
+ execa@3.4.0:
dependencies:
- cross-spawn: 7.0.3
+ cross-spawn: 7.0.6
get-stream: 5.2.0
human-signals: 1.1.1
is-stream: 2.0.1
@@ -8922,11 +15031,9 @@ packages:
signal-exit: 3.0.7
strip-final-newline: 2.0.0
- /execa@4.1.0:
- resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==}
- engines: {node: '>=10'}
+ execa@4.1.0:
dependencies:
- cross-spawn: 7.0.3
+ cross-spawn: 7.0.6
get-stream: 5.2.0
human-signals: 1.1.1
is-stream: 2.0.1
@@ -8936,11 +15043,9 @@ packages:
signal-exit: 3.0.7
strip-final-newline: 2.0.0
- /execa@5.1.1:
- resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
- engines: {node: '>=10'}
+ execa@5.1.1:
dependencies:
- cross-spawn: 7.0.3
+ cross-spawn: 7.0.6
get-stream: 6.0.1
human-signals: 2.1.0
is-stream: 2.0.1
@@ -8949,16 +15054,25 @@ packages:
onetime: 5.1.2
signal-exit: 3.0.7
strip-final-newline: 2.0.0
- dev: true
- /exit@0.1.2:
- resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
- engines: {node: '>= 0.8.0'}
- dev: true
+ execa@9.6.1:
+ dependencies:
+ '@sindresorhus/merge-streams': 4.0.0
+ cross-spawn: 7.0.6
+ figures: 6.1.0
+ get-stream: 9.0.1
+ human-signals: 8.0.1
+ is-plain-obj: 4.1.0
+ is-stream: 4.0.1
+ npm-run-path: 6.0.0
+ pretty-ms: 9.3.0
+ signal-exit: 4.1.0
+ strip-final-newline: 4.0.0
+ yoctocolors: 2.1.2
- /expand-brackets@2.1.4:
- resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
- engines: {node: '>=0.10.0'}
+ exit@0.1.2: {}
+
+ expand-brackets@2.1.4:
dependencies:
debug: 2.6.9
define-property: 0.2.5
@@ -8970,81 +15084,97 @@ packages:
transitivePeerDependencies:
- supports-color
- /expand-tilde@2.0.2:
- resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}
- engines: {node: '>=0.10.0'}
+ expand-tilde@2.0.2:
dependencies:
homedir-polyfill: 1.0.3
- dev: true
- /express@4.18.2:
- resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
- engines: {node: '>= 0.10.0'}
+ express@4.22.2:
dependencies:
accepts: 1.3.8
array-flatten: 1.1.1
- body-parser: 1.20.1
+ body-parser: 1.20.5
content-disposition: 0.5.4
content-type: 1.0.5
- cookie: 0.5.0
- cookie-signature: 1.0.6
+ cookie: 0.7.2
+ cookie-signature: 1.0.7
debug: 2.6.9
depd: 2.0.0
- encodeurl: 1.0.2
+ encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
- finalhandler: 1.2.0
+ finalhandler: 1.3.2
fresh: 0.5.2
- http-errors: 2.0.0
- merge-descriptors: 1.0.1
+ http-errors: 2.0.1
+ merge-descriptors: 1.0.3
methods: 1.1.2
on-finished: 2.4.1
parseurl: 1.3.3
- path-to-regexp: 0.1.7
+ path-to-regexp: 0.1.13
proxy-addr: 2.0.7
- qs: 6.11.0
+ qs: 6.15.2
range-parser: 1.2.1
safe-buffer: 5.2.1
- send: 0.18.0
- serve-static: 1.15.0
+ send: 0.19.2
+ serve-static: 1.16.3
setprototypeof: 1.2.0
- statuses: 2.0.1
+ statuses: 2.0.2
type-is: 1.6.18
utils-merge: 1.0.1
vary: 1.1.2
transitivePeerDependencies:
- supports-color
- dev: true
- /extend-shallow@2.0.1:
- resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
- engines: {node: '>=0.10.0'}
+ express@5.2.1:
+ dependencies:
+ accepts: 2.0.0
+ body-parser: 2.2.2
+ content-disposition: 1.1.0
+ content-type: 1.0.5
+ cookie: 0.7.2
+ cookie-signature: 1.2.2
+ debug: 4.4.3
+ depd: 2.0.0
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ finalhandler: 2.1.1
+ fresh: 2.0.0
+ http-errors: 2.0.1
+ merge-descriptors: 2.0.0
+ mime-types: 3.0.2
+ on-finished: 2.4.1
+ once: 1.4.0
+ parseurl: 1.3.3
+ proxy-addr: 2.0.7
+ qs: 6.15.2
+ range-parser: 1.2.1
+ router: 2.2.0
+ send: 1.2.1
+ serve-static: 2.2.1
+ statuses: 2.0.2
+ type-is: 2.1.0
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ extend-shallow@2.0.1:
dependencies:
is-extendable: 0.1.1
- /extend-shallow@3.0.2:
- resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
- engines: {node: '>=0.10.0'}
+ extend-shallow@3.0.2:
dependencies:
assign-symbols: 1.0.0
is-extendable: 1.0.1
- /extend@3.0.2:
- resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
- dev: false
+ extend@3.0.2: {}
- /external-editor@3.1.0:
- resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
- engines: {node: '>=4'}
+ external-editor@3.1.0:
dependencies:
chardet: 0.7.0
iconv-lite: 0.4.24
tmp: 0.0.33
- dev: true
- /extglob@2.0.4:
- resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
- engines: {node: '>=0.10.0'}
+ extglob@2.0.4:
dependencies:
array-unique: 0.3.2
define-property: 1.0.0
@@ -9057,21 +15187,13 @@ packages:
transitivePeerDependencies:
- supports-color
- /extract-stack@2.0.0:
- resolution: {integrity: sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==}
- engines: {node: '>=8'}
- dev: true
+ extract-stack@2.0.0: {}
- /fast-deep-equal@3.1.3:
- resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ fast-deep-equal@3.1.3: {}
- /fast-diff@1.3.0:
- resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
- dev: true
+ fast-diff@1.3.0: {}
- /fast-glob@2.2.7:
- resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==}
- engines: {node: '>=4.0.0'}
+ fast-glob@2.2.7:
dependencies:
'@mrmlnc/readdir-enhanced': 2.2.1
'@nodelib/fs.stat': 1.1.3
@@ -9081,37 +15203,26 @@ packages:
micromatch: 3.1.10
transitivePeerDependencies:
- supports-color
- dev: false
- /fast-glob@3.3.2:
- resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
- engines: {node: '>=8.6.0'}
+ fast-glob@3.3.3:
dependencies:
'@nodelib/fs.stat': 2.0.5
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
- micromatch: 4.0.5
+ micromatch: 4.0.8
- /fast-json-stable-stringify@2.1.0:
- resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+ fast-json-stable-stringify@2.1.0: {}
- /fast-levenshtein@2.0.6:
- resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
- dev: true
+ fast-levenshtein@2.0.6: {}
- /fast-memoize@2.5.2:
- resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==}
- dev: false
+ fast-memoize@2.5.2: {}
- /fast-ordered-set@1.0.3:
- resolution: {integrity: sha512-MxBW4URybFszOx1YlACEoK52P6lE3xiFcPaGCUZ7QQOZ6uJXKo++Se8wa31SjcZ+NC/fdAWX7UtKEfaGgHS2Vg==}
+ fast-ordered-set@1.0.3:
dependencies:
blank-object: 1.0.2
- /fast-sourcemap-concat@2.1.1:
- resolution: {integrity: sha512-7h9/x25c6AQwdU3mA8MZDUMR3UCy50f237egBrBkuwjnUZSmfu4ptCf91PZSKzON2Uh5VvIHozYKWcPPgcjxIw==}
- engines: {node: 10.* || >= 12.*}
+ fast-sourcemap-concat@2.1.1:
dependencies:
chalk: 2.4.2
fs-extra: 5.0.0
@@ -9123,99 +15234,72 @@ packages:
transitivePeerDependencies:
- supports-color
- /fastboot-transform@0.1.3:
- resolution: {integrity: sha512-6otygPIJw1ARp1jJb+6KVO56iKBjhO+5x59RSC9qiZTbZRrv+HZAuP00KD3s+nWMvcFDemtdkugki9DNFTTwCQ==}
+ fast-uri@3.1.2: {}
+
+ fastboot-transform@0.1.3:
dependencies:
broccoli-stew: 1.6.0
convert-source-map: 1.9.0
transitivePeerDependencies:
- supports-color
- dev: false
- /fastest-levenshtein@1.0.16:
- resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
- engines: {node: '>= 4.9.1'}
- dev: true
+ fastest-levenshtein@1.0.16: {}
- /fastq@1.17.1:
- resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+ fastq@1.20.1:
dependencies:
- reusify: 1.0.4
+ reusify: 1.1.0
- /faye-websocket@0.11.4:
- resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
- engines: {node: '>=0.8.0'}
+ faye-websocket@0.11.4:
dependencies:
websocket-driver: 0.7.4
- dev: true
- /fb-watchman@2.0.2:
- resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
+ fb-watchman@2.0.2:
dependencies:
bser: 2.1.1
- dev: true
- /figgy-pudding@3.5.2:
- resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==}
- deprecated: This module is no longer supported.
- dev: false
+ fdir@6.5.0(picomatch@4.0.4):
+ optionalDependencies:
+ picomatch: 4.0.4
- /figures@2.0.0:
- resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==}
- engines: {node: '>=4'}
+ figgy-pudding@3.5.2: {}
+
+ figures@2.0.0:
dependencies:
escape-string-regexp: 1.0.5
- dev: true
- /figures@3.2.0:
- resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
- engines: {node: '>=8'}
+ figures@3.2.0:
dependencies:
escape-string-regexp: 1.0.5
- dev: true
- /file-entry-cache@6.0.1:
- resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
- engines: {node: ^10.12.0 || >=12.0.0}
+ figures@6.1.0:
+ dependencies:
+ is-unicode-supported: 2.1.0
+
+ file-entry-cache@6.0.1:
dependencies:
flat-cache: 3.2.0
- dev: true
- /file-entry-cache@7.0.2:
- resolution: {integrity: sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==}
- engines: {node: '>=12.0.0'}
+ file-entry-cache@7.0.2:
dependencies:
flat-cache: 3.2.0
- dev: true
- /file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
- dev: false
+ file-uri-to-path@1.0.0:
optional: true
- /filesize@10.1.0:
- resolution: {integrity: sha512-GTLKYyBSDz3nPhlLVPjPWZCnhkd9TrrRArNcy8Z+J2cqScB7h2McAzR6NBX6nYOoWafql0roY8hrocxnZBv9CQ==}
- engines: {node: '>= 10.4.0'}
- dev: true
+ filesize@10.1.6: {}
- /fill-range@4.0.0:
- resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
- engines: {node: '>=0.10.0'}
+ fill-range@4.0.0:
dependencies:
extend-shallow: 2.0.1
is-number: 3.0.0
repeat-string: 1.6.1
to-regex-range: 2.1.1
- /fill-range@7.0.1:
- resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
- engines: {node: '>=8'}
+ fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
- /finalhandler@1.1.2:
- resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
- engines: {node: '>= 0.8'}
+ finalhandler@1.1.2:
dependencies:
debug: 2.6.9
encodeurl: 1.0.2
@@ -9226,145 +15310,99 @@ packages:
unpipe: 1.0.0
transitivePeerDependencies:
- supports-color
- dev: true
- /finalhandler@1.2.0:
- resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
- engines: {node: '>= 0.8'}
+ finalhandler@1.3.2:
dependencies:
debug: 2.6.9
- encodeurl: 1.0.2
+ encodeurl: 2.0.0
escape-html: 1.0.3
on-finished: 2.4.1
parseurl: 1.3.3
- statuses: 2.0.1
+ statuses: 2.0.2
unpipe: 1.0.0
transitivePeerDependencies:
- supports-color
- dev: true
- /find-babel-config@1.2.0:
- resolution: {integrity: sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==}
- engines: {node: '>=4.0.0'}
+ finalhandler@2.1.1:
dependencies:
- json5: 0.5.1
+ debug: 4.4.3
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ statuses: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ find-babel-config@1.2.2:
+ dependencies:
+ json5: 1.0.2
path-exists: 3.0.0
- /find-babel-config@2.0.0:
- resolution: {integrity: sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw==}
- engines: {node: '>=16.0.0'}
+ find-babel-config@2.1.2:
dependencies:
json5: 2.2.3
- path-exists: 4.0.0
- dev: false
- /find-cache-dir@2.1.0:
- resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==}
- engines: {node: '>=6'}
+ find-cache-dir@2.1.0:
dependencies:
commondir: 1.0.1
make-dir: 2.1.0
pkg-dir: 3.0.0
- dev: false
- /find-cache-dir@3.3.2:
- resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==}
- engines: {node: '>=8'}
+ find-cache-dir@3.3.2:
dependencies:
commondir: 1.0.1
make-dir: 3.1.0
pkg-dir: 4.2.0
- /find-index@1.1.1:
- resolution: {integrity: sha512-XYKutXMrIK99YMUPf91KX5QVJoG31/OsgftD6YoTPAObfQIxM4ziA9f0J1AsqKhJmo+IeaIPP0CFopTD4bdUBw==}
+ find-index@1.1.1: {}
- /find-up@2.1.0:
- resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
- engines: {node: '>=4'}
+ find-up@2.1.0:
dependencies:
locate-path: 2.0.0
- /find-up@3.0.0:
- resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
- engines: {node: '>=6'}
+ find-up@3.0.0:
dependencies:
locate-path: 3.0.0
- dev: false
- /find-up@4.1.0:
- resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
- engines: {node: '>=8'}
+ find-up@4.1.0:
dependencies:
locate-path: 5.0.0
path-exists: 4.0.0
- /find-up@5.0.0:
- resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
- engines: {node: '>=10'}
+ find-up@5.0.0:
dependencies:
locate-path: 6.0.0
path-exists: 4.0.0
- /find-up@6.3.0:
- resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ find-up@6.3.0:
dependencies:
locate-path: 7.2.0
path-exists: 5.0.0
- dev: true
-
- /find-yarn-workspace-root@1.2.1:
- resolution: {integrity: sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q==}
- dependencies:
- fs-extra: 4.0.3
- micromatch: 3.1.10
- transitivePeerDependencies:
- - supports-color
- dev: true
- /find-yarn-workspace-root@2.0.0:
- resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==}
+ find-yarn-workspace-root@2.0.0:
dependencies:
- micromatch: 4.0.5
+ micromatch: 4.0.8
- /findup-sync@4.0.0:
- resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==}
- engines: {node: '>= 8'}
+ findup-sync@4.0.0:
dependencies:
detect-file: 1.0.0
is-glob: 4.0.3
- micromatch: 4.0.5
+ micromatch: 4.0.8
resolve-dir: 1.0.1
- dev: true
-
- /fireworm@0.7.2:
- resolution: {integrity: sha512-GjebTzq+NKKhfmDxjKq3RXwQcN9xRmZWhnnuC9L+/x5wBQtR0aaQM50HsjrzJ2wc28v1vSdfOpELok0TKR4ddg==}
- dependencies:
- async: 0.2.10
- is-type: 0.0.1
- lodash.debounce: 3.1.1
- lodash.flatten: 3.0.2
- minimatch: 3.1.2
- dev: true
- /fixturify-project@1.10.0:
- resolution: {integrity: sha512-L1k9uiBQuN0Yr8tA9Noy2VSQ0dfg0B8qMdvT7Wb5WQKc7f3dn3bzCbSrqlb+etLW+KDV4cBC7R1OvcMg3kcxmA==}
+ fixturify-project@1.10.0:
dependencies:
fixturify: 1.3.0
tmp: 0.0.33
- /fixturify-project@2.1.1:
- resolution: {integrity: sha512-sP0gGMTr4iQ8Kdq5Ez0CVJOZOGWqzP5dv/veOTdFNywioKjkNWCHBi1q65DMpcNGUGeoOUWehyji274Q2wRgxA==}
- engines: {node: 10.* || >= 12.*}
+ fixturify-project@2.1.1:
dependencies:
fixturify: 2.1.1
tmp: 0.0.33
type-fest: 0.11.0
- dev: true
- /fixturify@1.3.0:
- resolution: {integrity: sha512-tL0svlOy56pIMMUQ4bU1xRe6NZbFSa/ABTWMxW2mH38lFGc9TrNAKWcMBQ7eIjo3wqSS8f2ICabFaatFyFmrVQ==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ fixturify@1.3.0:
dependencies:
'@types/fs-extra': 5.1.0
'@types/minimatch': 3.0.5
@@ -9372,9 +15410,7 @@ packages:
fs-extra: 7.0.1
matcher-collection: 2.0.1
- /fixturify@2.1.1:
- resolution: {integrity: sha512-SRgwIMXlxkb6AUgaVjIX+jCEqdhyXu9hah7mcK+lWynjKtX73Ux1TDv71B7XyaQ+LJxkYRHl5yCL8IycAvQRUw==}
- engines: {node: 10.* || >= 12.*}
+ fixturify@2.1.1:
dependencies:
'@types/fs-extra': 8.1.5
'@types/minimatch': 3.0.5
@@ -9382,171 +15418,117 @@ packages:
fs-extra: 8.1.0
matcher-collection: 2.0.1
walk-sync: 2.2.0
- dev: true
- /flat-cache@3.2.0:
- resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
- engines: {node: ^10.12.0 || >=12.0.0}
+ flat-cache@3.2.0:
dependencies:
- flatted: 3.2.9
+ flatted: 3.4.2
keyv: 4.5.4
rimraf: 3.0.2
- dev: true
- /flatted@3.2.9:
- resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
- dev: true
+ flatted@3.4.2: {}
- /flush-write-stream@1.1.1:
- resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==}
+ flush-write-stream@1.1.1:
dependencies:
inherits: 2.0.4
readable-stream: 2.3.8
- dev: false
- /focus-trap@6.9.4:
- resolution: {integrity: sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw==}
+ focus-trap@7.8.0:
dependencies:
- tabbable: 5.3.3
- dev: false
+ tabbable: 6.4.0
- /follow-redirects@1.15.5:
- resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==}
- engines: {node: '>=4.0'}
- peerDependencies:
- debug: '*'
- peerDependenciesMeta:
- debug:
- optional: true
- dev: true
+ follow-redirects@1.16.0: {}
- /for-each@0.3.3:
- resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ for-each@0.3.5:
dependencies:
is-callable: 1.2.7
- /for-in@1.0.2:
- resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
- engines: {node: '>=0.10.0'}
+ for-in@1.0.2: {}
- /foreground-child@3.1.1:
- resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
- engines: {node: '>=14'}
+ foreground-child@3.3.1:
dependencies:
- cross-spawn: 7.0.3
+ cross-spawn: 7.0.6
signal-exit: 4.1.0
- dev: false
- /forwarded@0.2.0:
- resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
- engines: {node: '>= 0.6'}
- dev: true
+ forwarded@0.2.0: {}
- /fraction.js@4.3.7:
- resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
- dev: false
+ fraction.js@5.3.4: {}
- /fragment-cache@0.2.1:
- resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
- engines: {node: '>=0.10.0'}
+ fragment-cache@0.2.1:
dependencies:
map-cache: 0.2.2
- /fresh@0.5.2:
- resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
- engines: {node: '>= 0.6'}
- dev: true
+ fresh@0.5.2: {}
- /from2@2.3.0:
- resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==}
+ fresh@2.0.0: {}
+
+ from2@2.3.0:
dependencies:
inherits: 2.0.4
readable-stream: 2.3.8
- dev: false
- /fs-extra@0.24.0:
- resolution: {integrity: sha512-w1RvhdLZdU9V3vQdL+RooGlo6b9R9WVoBanOfoJvosWlqSKvrjFlci2oVhwvLwZXBtM7khyPvZ8r3fwsim3o0A==}
+ fs-extra@0.24.0:
dependencies:
graceful-fs: 4.2.11
jsonfile: 2.4.0
path-is-absolute: 1.0.1
rimraf: 2.7.1
- dev: true
- /fs-extra@10.1.0:
- resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
- engines: {node: '>=12'}
+ fs-extra@10.1.0:
dependencies:
graceful-fs: 4.2.11
- jsonfile: 6.1.0
+ jsonfile: 6.2.1
universalify: 2.0.1
- /fs-extra@11.2.0:
- resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
- engines: {node: '>=14.14'}
+ fs-extra@11.3.5:
dependencies:
graceful-fs: 4.2.11
- jsonfile: 6.1.0
+ jsonfile: 6.2.1
universalify: 2.0.1
- dev: true
- /fs-extra@3.0.1:
- resolution: {integrity: sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==}
+ fs-extra@3.0.1:
dependencies:
graceful-fs: 4.2.11
jsonfile: 3.0.1
universalify: 0.1.2
- dev: true
- /fs-extra@4.0.3:
- resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==}
+ fs-extra@4.0.3:
dependencies:
graceful-fs: 4.2.11
jsonfile: 4.0.0
universalify: 0.1.2
- dev: true
- /fs-extra@5.0.0:
- resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==}
+ fs-extra@5.0.0:
dependencies:
graceful-fs: 4.2.11
jsonfile: 4.0.0
universalify: 0.1.2
- /fs-extra@6.0.1:
- resolution: {integrity: sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==}
+ fs-extra@6.0.1:
dependencies:
graceful-fs: 4.2.11
jsonfile: 4.0.0
universalify: 0.1.2
- /fs-extra@7.0.1:
- resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
- engines: {node: '>=6 <7 || >=8'}
+ fs-extra@7.0.1:
dependencies:
graceful-fs: 4.2.11
jsonfile: 4.0.0
universalify: 0.1.2
- /fs-extra@8.1.0:
- resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
- engines: {node: '>=6 <7 || >=8'}
+ fs-extra@8.1.0:
dependencies:
graceful-fs: 4.2.11
jsonfile: 4.0.0
universalify: 0.1.2
- /fs-extra@9.1.0:
- resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
- engines: {node: '>=10'}
+ fs-extra@9.1.0:
dependencies:
at-least-node: 1.0.0
graceful-fs: 4.2.11
- jsonfile: 6.1.0
+ jsonfile: 6.2.1
universalify: 2.0.1
- /fs-merger@3.2.1:
- resolution: {integrity: sha512-AN6sX12liy0JE7C2evclwoo0aCG3PFulLjrTLsJpWh/2mM+DinhpSGqYLbHBBbIW1PLRNcFhJG8Axtz8mQW3ug==}
+ fs-merger@3.2.1:
dependencies:
broccoli-node-api: 1.7.0
broccoli-node-info: 2.2.0
@@ -9556,8 +15538,7 @@ packages:
transitivePeerDependencies:
- supports-color
- /fs-tree-diff@0.5.9:
- resolution: {integrity: sha512-872G8ax0kHh01m9n/2KDzgYwouKza0Ad9iFltBpNykvROvf2AGtoOzPJgGx125aolGPER3JuC7uZFrQ7bG1AZw==}
+ fs-tree-diff@0.5.9:
dependencies:
heimdalljs-logger: 0.1.10
object-assign: 4.1.1
@@ -9566,9 +15547,7 @@ packages:
transitivePeerDependencies:
- supports-color
- /fs-tree-diff@2.0.1:
- resolution: {integrity: sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ fs-tree-diff@2.0.1:
dependencies:
'@types/symlink-or-copy': 1.2.2
heimdalljs-logger: 0.1.10
@@ -9578,9 +15557,7 @@ packages:
transitivePeerDependencies:
- supports-color
- /fs-updater@1.0.4:
- resolution: {integrity: sha512-0pJX4mJF/qLsNEwTct8CdnnRdagfb+LmjRPJ8sO+nCnAZLW0cTmz4rTgU25n+RvTuWSITiLKrGVJceJPBIPlKg==}
- engines: {node: '>=6.0.0'}
+ fs-updater@1.0.4:
dependencies:
can-symlink: 1.0.0
clean-up-path: 1.0.0
@@ -9590,338 +15567,234 @@ packages:
transitivePeerDependencies:
- supports-color
- /fs-write-stream-atomic@1.0.10:
- resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==}
- deprecated: This package is no longer supported.
+ fs-write-stream-atomic@1.0.10:
dependencies:
graceful-fs: 4.2.11
iferr: 0.1.5
imurmurhash: 0.1.4
readable-stream: 2.3.8
- dev: false
- /fs.realpath@1.0.0:
- resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+ fs.realpath@1.0.0: {}
- /fsevents@1.2.13:
- resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==}
- engines: {node: '>= 4.0'}
- os: [darwin]
- deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2
- requiresBuild: true
+ fsevents@1.2.13:
dependencies:
bindings: 1.5.0
- nan: 2.18.0
- dev: false
+ nan: 2.27.0
optional: true
- /fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
- requiresBuild: true
+ fsevents@2.3.3:
optional: true
- /function-bind@1.1.2:
- resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ function-bind@1.1.2: {}
- /function.prototype.name@1.1.6:
- resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
- engines: {node: '>= 0.4'}
+ function.prototype.name@1.1.8:
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.9
+ call-bound: 1.0.4
define-properties: 1.2.1
- es-abstract: 1.22.4
functions-have-names: 1.2.3
+ hasown: 2.0.4
+ is-callable: 1.2.7
- /functions-have-names@1.2.3:
- resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+ functions-have-names@1.2.3: {}
- /fuse.js@6.6.2:
- resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==}
- engines: {node: '>=10'}
- dev: true
+ fuse.js@6.6.2: {}
- /gauge@4.0.4:
- resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- dependencies:
- aproba: 2.0.0
- color-support: 1.1.3
- console-control-strings: 1.1.0
- has-unicode: 2.0.1
- signal-exit: 3.0.7
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wide-align: 1.1.5
- dev: true
+ generator-function@2.0.1: {}
- /gensync@1.0.0-beta.2:
- resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
- engines: {node: '>=6.9.0'}
+ gensync@1.0.0-beta.2: {}
- /get-caller-file@2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
- dev: true
+ get-caller-file@2.0.5: {}
- /get-intrinsic@1.2.4:
- resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
- engines: {node: '>= 0.4'}
+ get-intrinsic@1.3.0:
dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
es-errors: 1.3.0
+ es-object-atoms: 1.1.2
function-bind: 1.1.2
- has-proto: 1.0.1
- has-symbols: 1.0.3
- hasown: 2.0.1
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.4
+ math-intrinsics: 1.1.0
- /get-stdin@4.0.1:
- resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==}
- engines: {node: '>=0.10.0'}
- dev: true
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.2
- /get-stdin@9.0.0:
- resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==}
- engines: {node: '>=12'}
- dev: true
+ get-stdin@4.0.1: {}
- /get-stream@4.1.0:
- resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==}
- engines: {node: '>=6'}
+ get-stdin@9.0.0: {}
+
+ get-stream@4.1.0:
dependencies:
- pump: 3.0.0
- dev: true
+ pump: 3.0.4
- /get-stream@5.2.0:
- resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
- engines: {node: '>=8'}
+ get-stream@5.2.0:
dependencies:
- pump: 3.0.0
+ pump: 3.0.4
- /get-stream@6.0.1:
- resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
- engines: {node: '>=10'}
- dev: true
+ get-stream@6.0.1: {}
- /get-symbol-description@1.0.2:
- resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
- engines: {node: '>= 0.4'}
+ get-stream@9.0.1:
dependencies:
- call-bind: 1.0.7
+ '@sec-ant/readable-stream': 0.4.1
+ is-stream: 4.0.1
+
+ get-symbol-description@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
es-errors: 1.3.0
- get-intrinsic: 1.2.4
+ get-intrinsic: 1.3.0
- /get-tsconfig@4.7.2:
- resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
+ get-tsconfig@4.14.0:
dependencies:
resolve-pkg-maps: 1.0.0
- dev: true
- /get-value@2.0.6:
- resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
- engines: {node: '>=0.10.0'}
+ get-value@2.0.6: {}
- /git-hooks-list@1.0.3:
- resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==}
- dev: true
+ git-hooks-list@1.0.3: {}
- /git-repo-info@2.1.1:
- resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==}
- engines: {node: '>= 4.0'}
- dev: true
+ git-repo-info@2.1.1: {}
- /glob-parent@3.1.0:
- resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==}
+ glob-parent@3.1.0:
dependencies:
is-glob: 3.1.0
path-dirname: 1.0.2
- dev: false
- /glob-parent@5.1.2:
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
- engines: {node: '>= 6'}
+ glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
- /glob-parent@6.0.2:
- resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
- engines: {node: '>=10.13.0'}
+ glob-parent@6.0.2:
dependencies:
is-glob: 4.0.3
- /glob-to-regexp@0.3.0:
- resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==}
- dev: false
+ glob-to-regexp@0.3.0: {}
- /glob-to-regexp@0.4.1:
- resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
+ glob-to-regexp@0.4.1: {}
- /glob@10.3.10:
- resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
- engines: {node: '>=16 || 14 >=14.17'}
- hasBin: true
+ glob@10.5.0:
dependencies:
- foreground-child: 3.1.1
- jackspeak: 2.3.6
- minimatch: 9.0.3
- minipass: 7.0.4
- path-scurry: 1.10.1
- dev: false
+ foreground-child: 3.3.1
+ jackspeak: 3.4.3
+ minimatch: 9.0.9
+ minipass: 7.1.3
+ package-json-from-dist: 1.0.1
+ path-scurry: 1.11.1
- /glob@5.0.15:
- resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==}
+ glob@13.0.6:
+ dependencies:
+ minimatch: 10.2.5
+ minipass: 7.1.3
+ path-scurry: 2.0.2
+
+ glob@5.0.15:
dependencies:
inflight: 1.0.6
inherits: 2.0.4
- minimatch: 3.1.2
+ minimatch: 3.1.5
once: 1.4.0
path-is-absolute: 1.0.1
- /glob@7.2.3:
- resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
- minimatch: 3.1.2
+ minimatch: 3.1.5
once: 1.4.0
path-is-absolute: 1.0.1
- /glob@8.1.0:
- resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
- engines: {node: '>=12'}
+ glob@8.1.0:
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
- minimatch: 5.1.6
+ minimatch: 5.1.9
once: 1.4.0
- /glob@9.3.5:
- resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==}
- engines: {node: '>=16 || 14 >=14.17'}
+ glob@9.3.5:
dependencies:
fs.realpath: 1.0.0
- minimatch: 8.0.4
+ minimatch: 8.0.7
minipass: 4.2.8
- path-scurry: 1.10.1
- dev: true
+ path-scurry: 1.11.1
- /global-modules@1.0.0:
- resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==}
- engines: {node: '>=0.10.0'}
+ global-modules@1.0.0:
dependencies:
global-prefix: 1.0.2
is-windows: 1.0.2
resolve-dir: 1.0.1
- dev: true
- /global-modules@2.0.0:
- resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
- engines: {node: '>=6'}
+ global-modules@2.0.0:
dependencies:
global-prefix: 3.0.0
- dev: true
- /global-prefix@1.0.2:
- resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==}
- engines: {node: '>=0.10.0'}
+ global-prefix@1.0.2:
dependencies:
expand-tilde: 2.0.2
homedir-polyfill: 1.0.3
ini: 1.3.8
is-windows: 1.0.2
which: 1.3.1
- dev: true
- /global-prefix@3.0.0:
- resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
- engines: {node: '>=6'}
+ global-prefix@3.0.0:
dependencies:
ini: 1.3.8
kind-of: 6.0.3
which: 1.3.1
- dev: true
- /globals@11.12.0:
- resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
- engines: {node: '>=4'}
-
- /globals@13.24.0:
- resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
- engines: {node: '>=8'}
+ globals@13.24.0:
dependencies:
type-fest: 0.20.2
- dev: true
- /globals@9.18.0:
- resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==}
- engines: {node: '>=0.10.0'}
- dev: false
+ globals@9.18.0: {}
- /globalthis@1.0.3:
- resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
- engines: {node: '>= 0.4'}
+ globalthis@1.0.4:
dependencies:
define-properties: 1.2.1
+ gopd: 1.2.0
- /globalyzer@0.1.0:
- resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
- dev: true
+ globalyzer@0.1.0: {}
- /globby@10.0.0:
- resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==}
- engines: {node: '>=8'}
+ globby@10.0.0:
dependencies:
'@types/glob': 7.2.0
array-union: 2.1.0
dir-glob: 3.0.1
- fast-glob: 3.3.2
+ fast-glob: 3.3.3
glob: 7.2.3
- ignore: 5.3.1
+ ignore: 5.3.2
merge2: 1.4.1
slash: 3.0.0
- dev: true
- /globby@11.1.0:
- resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
- engines: {node: '>=10'}
+ globby@11.1.0:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
- fast-glob: 3.3.2
- ignore: 5.3.1
+ fast-glob: 3.3.3
+ ignore: 5.3.2
merge2: 1.4.1
slash: 3.0.0
- dev: true
- /globby@13.2.2:
- resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ globby@13.2.2:
dependencies:
dir-glob: 3.0.1
- fast-glob: 3.3.2
- ignore: 5.3.1
+ fast-glob: 3.3.3
+ ignore: 5.3.2
merge2: 1.4.1
slash: 4.0.0
- dev: true
- /globjoin@0.1.4:
- resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==}
- dev: true
+ globjoin@0.1.4: {}
- /globrex@0.1.2:
- resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
- dev: true
+ globrex@0.1.2: {}
- /gopd@1.0.1:
- resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
- dependencies:
- get-intrinsic: 1.2.4
+ gopd@1.2.0: {}
- /got@9.6.0:
- resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==}
- engines: {node: '>=8.6'}
+ got@9.6.0:
dependencies:
'@sindresorhus/is': 0.14.0
'@szmarczak/http-timer': 1.1.2
@@ -9936,150 +15809,106 @@ packages:
p-cancelable: 1.1.0
to-readable-stream: 1.0.0
url-parse-lax: 3.0.0
- dev: true
- /graceful-fs@4.2.11:
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ graceful-fs@4.2.11: {}
- /graceful-readlink@1.0.1:
- resolution: {integrity: sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==}
- dev: true
+ graceful-readlink@1.0.1: {}
- /graphemer@1.4.0:
- resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
- dev: true
+ graphemer@1.4.0: {}
- /growly@1.3.0:
- resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==}
- dev: true
+ gridstack@7.3.0: {}
- /handlebars@4.7.8:
- resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
- engines: {node: '>=0.4.7'}
- hasBin: true
+ growly@1.3.0: {}
+
+ handlebars@4.7.9:
dependencies:
minimist: 1.2.8
neo-async: 2.6.2
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.17.4
+ uglify-js: 3.19.3
- /hard-rejection@2.1.0:
- resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
- engines: {node: '>=6'}
- dev: true
+ hard-rejection@2.1.0: {}
- /has-ansi@2.0.0:
- resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==}
- engines: {node: '>=0.10.0'}
+ has-ansi@2.0.0:
dependencies:
ansi-regex: 2.1.1
- /has-ansi@3.0.0:
- resolution: {integrity: sha512-5JRDTvNq6mVkaMHQVXrGnaCXHD6JfqxwCy8LA/DQSqLLqePR9uaJVm2u3Ek/UziJFQz+d1ul99RtfIhE2aorkQ==}
- engines: {node: '>=4'}
+ has-ansi@3.0.0:
dependencies:
ansi-regex: 3.0.1
- dev: true
- /has-bigints@1.0.2:
- resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
+ has-bigints@1.1.0: {}
- /has-flag@3.0.0:
- resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
- engines: {node: '>=4'}
+ has-flag@3.0.0: {}
- /has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
+ has-flag@4.0.0: {}
- /has-property-descriptors@1.0.2:
- resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+ has-property-descriptors@1.0.2:
dependencies:
- es-define-property: 1.0.0
+ es-define-property: 1.0.1
- /has-proto@1.0.1:
- resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
- engines: {node: '>= 0.4'}
+ has-proto@1.2.0:
+ dependencies:
+ dunder-proto: 1.0.1
- /has-symbols@1.0.3:
- resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
- engines: {node: '>= 0.4'}
+ has-symbols@1.1.0: {}
- /has-tostringtag@1.0.2:
- resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
- engines: {node: '>= 0.4'}
+ has-tostringtag@1.0.2:
dependencies:
- has-symbols: 1.0.3
+ has-symbols: 1.1.0
- /has-unicode@2.0.1:
- resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
- dev: true
-
- /has-value@0.3.1:
- resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
- engines: {node: '>=0.10.0'}
+ has-value@0.3.1:
dependencies:
get-value: 2.0.6
has-values: 0.1.4
isobject: 2.1.0
- /has-value@1.0.0:
- resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
- engines: {node: '>=0.10.0'}
+ has-value@1.0.0:
dependencies:
get-value: 2.0.6
has-values: 1.0.0
isobject: 3.0.1
- /has-values@0.1.4:
- resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
- engines: {node: '>=0.10.0'}
+ has-values@0.1.4: {}
- /has-values@1.0.0:
- resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
- engines: {node: '>=0.10.0'}
+ has-values@1.0.0:
dependencies:
is-number: 3.0.0
kind-of: 4.0.0
- /hash-base@3.1.0:
- resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==}
- engines: {node: '>=4'}
+ hash-base@3.0.5:
dependencies:
inherits: 2.0.4
- readable-stream: 3.6.2
safe-buffer: 5.2.1
- dev: false
- /hash-for-dep@1.5.1:
- resolution: {integrity: sha512-/dQ/A2cl7FBPI2pO0CANkvuuVi/IFS5oTyJ0PsOb6jW6WbVW1js5qJXMJTNbWHXBIPdFTWFbabjB+mE0d+gelw==}
+ hash-base@3.1.2:
+ dependencies:
+ inherits: 2.0.4
+ readable-stream: 2.3.8
+ safe-buffer: 5.2.1
+ to-buffer: 1.2.2
+
+ hash-for-dep@1.5.2:
dependencies:
- broccoli-kitchen-sink-helpers: 0.3.1
heimdalljs: 0.2.6
heimdalljs-logger: 0.1.10
- path-root: 0.1.1
- resolve: 1.22.8
+ resolve: 1.22.12
resolve-package-path: 1.2.7
transitivePeerDependencies:
- supports-color
- /hash.js@1.1.7:
- resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==}
+ hash.js@1.1.7:
dependencies:
inherits: 2.0.4
minimalistic-assert: 1.0.1
- dev: false
- /hasown@2.0.1:
- resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==}
- engines: {node: '>= 0.4'}
+ hasown@2.0.4:
dependencies:
function-bind: 1.1.2
- /heimdalljs-fs-monitor@1.1.1:
- resolution: {integrity: sha512-BHB8oOXLRlrIaON0MqJSEjGVPDyqt2Y6gu+w2PaEZjrCxeVtZG7etEZp7M4ZQ80HNvnr66KIQ2lot2qdeG8HgQ==}
+ heimdalljs-fs-monitor@1.1.2:
dependencies:
callsites: 3.1.0
clean-stack: 2.2.0
@@ -10088,221 +15917,139 @@ packages:
heimdalljs-logger: 0.1.10
transitivePeerDependencies:
- supports-color
- dev: true
- /heimdalljs-graph@1.0.0:
- resolution: {integrity: sha512-v2AsTERBss0ukm/Qv4BmXrkwsT5x6M1V5Om6E8NcDQ/ruGkERsfsuLi5T8jx8qWzKMGYlwzAd7c/idymxRaPzA==}
- engines: {node: 8.* || >= 10.*}
- dev: true
+ heimdalljs-graph@1.0.0: {}
- /heimdalljs-logger@0.1.10:
- resolution: {integrity: sha512-pO++cJbhIufVI/fmB/u2Yty3KJD0TqNPecehFae0/eps0hkZ3b4Zc/PezUMOpYuHFQbA7FxHZxa305EhmjLj4g==}
+ heimdalljs-logger@0.1.10:
dependencies:
debug: 2.6.9
heimdalljs: 0.2.6
transitivePeerDependencies:
- supports-color
- /heimdalljs@0.2.6:
- resolution: {integrity: sha512-o9bd30+5vLBvBtzCPwwGqpry2+n0Hi6H1+qwt6y+0kwRHGGF8TFIhJPmnuM0xO97zaKrDZMwO/V56fAnn8m/tA==}
+ heimdalljs@0.2.6:
dependencies:
rsvp: 3.2.1
- /hmac-drbg@1.0.1:
- resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==}
+ hmac-drbg@1.0.1:
dependencies:
hash.js: 1.1.7
minimalistic-assert: 1.0.1
minimalistic-crypto-utils: 1.0.1
- dev: false
- /home-or-tmp@2.0.0:
- resolution: {integrity: sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==}
- engines: {node: '>=0.10.0'}
+ home-or-tmp@2.0.0:
dependencies:
os-homedir: 1.0.2
os-tmpdir: 1.0.2
- dev: false
- /homedir-polyfill@1.0.3:
- resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
- engines: {node: '>=0.10.0'}
+ homedir-polyfill@1.0.3:
dependencies:
parse-passwd: 1.0.0
- dev: true
- /hosted-git-info@4.1.0:
- resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
- engines: {node: '>=10'}
+ hosted-git-info@4.1.0:
dependencies:
lru-cache: 6.0.0
- dev: true
- /hosted-git-info@6.1.1:
- resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ hosted-git-info@6.1.3:
dependencies:
lru-cache: 7.18.3
- dev: true
- /html-tags@3.3.1:
- resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
- engines: {node: '>=8'}
- dev: true
+ html-tags@3.3.1: {}
- /http-cache-semantics@4.1.1:
- resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
- dev: true
+ http-cache-semantics@4.2.0: {}
- /http-errors@1.6.3:
- resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
- engines: {node: '>= 0.6'}
+ http-errors@1.6.3:
dependencies:
depd: 1.1.2
inherits: 2.0.3
setprototypeof: 1.1.0
statuses: 1.5.0
- dev: true
- /http-errors@2.0.0:
- resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
- engines: {node: '>= 0.8'}
+ http-errors@2.0.1:
dependencies:
depd: 2.0.0
inherits: 2.0.4
setprototypeof: 1.2.0
- statuses: 2.0.1
+ statuses: 2.0.2
toidentifier: 1.0.1
- dev: true
- /http-parser-js@0.5.8:
- resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
- dev: true
+ http-parser-js@0.5.10: {}
- /http-proxy@1.18.1:
- resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
- engines: {node: '>=8.0.0'}
+ http-proxy@1.18.1:
dependencies:
eventemitter3: 4.0.7
- follow-redirects: 1.15.5
+ follow-redirects: 1.16.0
requires-port: 1.0.0
transitivePeerDependencies:
- debug
- dev: true
- /https-browserify@1.0.0:
- resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==}
- dev: false
+ https-browserify@1.0.0: {}
- /https@1.0.0:
- resolution: {integrity: sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==}
- dev: true
+ https@1.0.0: {}
- /human-signals@1.1.1:
- resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
- engines: {node: '>=8.12.0'}
+ human-signals@1.1.1: {}
- /human-signals@2.1.0:
- resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
- engines: {node: '>=10.17.0'}
- dev: true
+ human-signals@2.1.0: {}
- /iconv-lite@0.4.24:
- resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
- engines: {node: '>=0.10.0'}
+ human-signals@8.0.1: {}
+
+ iconv-lite@0.4.24:
dependencies:
safer-buffer: 2.1.2
- dev: true
- /icss-utils@5.1.0(postcss@8.4.35):
- resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
- engines: {node: ^10 || ^12 || >= 14}
- peerDependencies:
- postcss: ^8.1.0
+ iconv-lite@0.7.2:
dependencies:
- postcss: 8.4.35
+ safer-buffer: 2.1.2
- /ieee754@1.2.1:
- resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ icss-utils@5.1.0(postcss@8.5.15):
+ dependencies:
+ postcss: 8.5.15
- /iferr@0.1.5:
- resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==}
- dev: false
+ ieee754@1.2.1: {}
- /ignore@5.3.1:
- resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
- engines: {node: '>= 4'}
- dev: true
+ iferr@0.1.5: {}
- /imask@6.6.3:
- resolution: {integrity: sha512-a9MTDhm+ET4G2IRcdUGuVTXHS05WsRNPGM5CeNJnXiXuoi4zv7g0/UDFLlRF4lBBeb8EWds4C4JVwhI0nuAIug==}
- engines: {npm: '>=4.0.0'}
- dev: false
+ ignore@5.3.2: {}
- /import-fresh@3.3.0:
- resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
- engines: {node: '>=6'}
+ imask@6.6.3: {}
+
+ import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
- dev: true
- /import-lazy@4.0.0:
- resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
- engines: {node: '>=8'}
- dev: true
+ import-lazy@4.0.0: {}
- /imurmurhash@0.1.4:
- resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
- engines: {node: '>=0.8.19'}
+ imurmurhash@0.1.4: {}
- /include-path-searcher@0.1.0:
- resolution: {integrity: sha512-KlpXnsZOrBGo4PPKqPFi3Ft6dcRyh8fTaqgzqDRi8jKAsngJEWWOxeFIWC8EfZtXKaZqlsNf9XRwcQ49DVgl/g==}
- dev: false
+ include-path-searcher@0.1.0: {}
- /indent-string@5.0.0:
- resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
- engines: {node: '>=12'}
- dev: true
+ indent-string@5.0.0: {}
- /infer-owner@1.0.4:
- resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
- dev: false
+ infer-owner@1.0.4: {}
- /inflection@2.0.1:
- resolution: {integrity: sha512-wzkZHqpb4eGrOKBl34xy3umnYHx8Si5R1U4fwmdxLo5gdH6mEK8gclckTj/qWqy4Je0bsDYe/qazZYuO7xe3XQ==}
- engines: {node: '>=14.0.0'}
+ inflection@2.0.1: {}
- /inflight@1.0.6:
- resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ inflight@1.0.6:
dependencies:
once: 1.4.0
wrappy: 1.0.2
- /inherits@2.0.3:
- resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
+ inherits@2.0.3: {}
- /inherits@2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ inherits@2.0.4: {}
- /ini@1.3.8:
- resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
- dev: true
+ ini@1.3.8: {}
- /inline-source-map-comment@1.0.5:
- resolution: {integrity: sha512-a3/m6XgooVCXkZCduOb7pkuvUtNKt4DaqaggKKJrMQHQsqt6JcJXEreExeZiiK4vWL/cM/uF6+chH05pz2/TdQ==}
- hasBin: true
+ inline-source-map-comment@1.0.5:
dependencies:
chalk: 1.1.3
get-stdin: 4.0.1
minimist: 1.2.8
sum-up: 1.0.3
xtend: 4.0.2
- dev: true
- /inquirer@6.5.2:
- resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==}
- engines: {node: '>=6.0.0'}
+ inquirer@6.5.2:
dependencies:
ansi-escapes: 3.2.0
chalk: 2.4.2
@@ -10310,18 +16057,15 @@ packages:
cli-width: 2.2.1
external-editor: 3.1.0
figures: 2.0.0
- lodash: 4.17.21
+ lodash: 4.18.1
mute-stream: 0.0.7
run-async: 2.4.1
rxjs: 6.6.7
string-width: 2.1.1
strip-ansi: 5.2.0
through: 2.3.8
- dev: true
- /inquirer@7.3.3:
- resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==}
- engines: {node: '>=8.0.0'}
+ inquirer@7.3.3:
dependencies:
ansi-escapes: 4.3.2
chalk: 4.1.2
@@ -10329,1016 +16073,662 @@ packages:
cli-width: 3.0.0
external-editor: 3.1.0
figures: 3.2.0
- lodash: 4.17.21
+ lodash: 4.18.1
mute-stream: 0.0.8
run-async: 2.4.1
rxjs: 6.6.7
string-width: 4.2.3
strip-ansi: 6.0.1
through: 2.3.8
- dev: true
- /inquirer@9.2.14:
- resolution: {integrity: sha512-4ByIMt677Iz5AvjyKrDpzaepIyMewNvDcvwpVVRZNmy9dLakVoVgdCHZXbK1SlVJra1db0JZ6XkJyHsanpdrdQ==}
- engines: {node: '>=18'}
+ inquirer@9.3.8(@types/node@25.9.1):
dependencies:
- '@ljharb/through': 2.3.12
+ '@inquirer/external-editor': 1.0.3(@types/node@25.9.1)
+ '@inquirer/figures': 1.0.15
ansi-escapes: 4.3.2
- chalk: 5.3.0
- cli-cursor: 3.1.0
cli-width: 4.1.0
- external-editor: 3.1.0
- figures: 3.2.0
- lodash: 4.17.21
mute-stream: 1.0.0
ora: 5.4.1
run-async: 3.0.0
- rxjs: 7.8.1
+ rxjs: 7.8.2
string-width: 4.2.3
strip-ansi: 6.0.1
wrap-ansi: 6.2.0
- dev: true
+ yoctocolors-cjs: 2.1.3
+ transitivePeerDependencies:
+ - '@types/node'
- /internal-slot@1.0.7:
- resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
- engines: {node: '>= 0.4'}
+ interactjs@1.10.27:
+ dependencies:
+ '@interactjs/types': 1.10.27
+
+ internal-slot@1.1.0:
dependencies:
es-errors: 1.3.0
- hasown: 2.0.1
- side-channel: 1.0.5
+ hasown: 2.0.4
+ side-channel: 1.1.0
- /intl-messageformat@10.5.11:
- resolution: {integrity: sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==}
+ intl-messageformat@10.7.18:
dependencies:
- '@formatjs/ecma402-abstract': 1.18.2
- '@formatjs/fast-memoize': 2.2.0
- '@formatjs/icu-messageformat-parser': 2.7.6
- tslib: 2.6.2
- dev: false
+ '@formatjs/ecma402-abstract': 2.3.6
+ '@formatjs/fast-memoize': 2.2.7
+ '@formatjs/icu-messageformat-parser': 2.11.4
+ tslib: 2.8.1
- /intl-tel-input@22.0.2:
- resolution: {integrity: sha512-FYDLp56aCVE+G7TJGmKCeU8LlfSztINiv54TALquMhMJumlUP1d48I6fEssbcq325vcXOrqdOO7Bbi1U/WRCcw==}
- dev: false
+ intl-messageformat@10.7.7:
+ dependencies:
+ '@formatjs/ecma402-abstract': 2.2.4
+ '@formatjs/fast-memoize': 2.2.3
+ '@formatjs/icu-messageformat-parser': 2.9.4
+ tslib: 2.8.1
- /invariant@2.2.4:
- resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
+ intl-tel-input@22.0.2: {}
+
+ invariant@2.2.4:
dependencies:
loose-envify: 1.4.0
- dev: false
-
- /invert-kv@3.0.1:
- resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==}
- engines: {node: '>=8'}
- dev: true
- /ipaddr.js@1.9.1:
- resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
- engines: {node: '>= 0.10'}
- dev: true
+ invert-kv@3.0.1: {}
- /is-accessor-descriptor@1.0.1:
- resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==}
- engines: {node: '>= 0.10'}
+ ipaddr.js@1.9.1: {}
+
+ is-accessor-descriptor@1.0.2:
dependencies:
- hasown: 2.0.1
+ hasown: 2.0.4
- /is-array-buffer@3.0.4:
- resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
- engines: {node: '>= 0.4'}
+ is-array-buffer@3.0.5:
dependencies:
- call-bind: 1.0.7
- get-intrinsic: 1.2.4
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
- /is-arrayish@0.2.1:
- resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
- dev: true
+ is-arrayish@0.2.1: {}
- /is-bigint@1.0.4:
- resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
+ is-async-function@2.1.1:
dependencies:
- has-bigints: 1.0.2
+ async-function: 1.0.0
+ call-bound: 1.0.4
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
- /is-binary-path@1.0.1:
- resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==}
- engines: {node: '>=0.10.0'}
+ is-bigint@1.1.0:
+ dependencies:
+ has-bigints: 1.1.0
+
+ is-binary-path@1.0.1:
dependencies:
binary-extensions: 1.13.1
- dev: false
optional: true
- /is-binary-path@2.1.0:
- resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
- engines: {node: '>=8'}
+ is-binary-path@2.1.0:
dependencies:
- binary-extensions: 2.2.0
- dev: false
+ binary-extensions: 2.3.0
- /is-boolean-object@1.1.2:
- resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
- engines: {node: '>= 0.4'}
+ is-boolean-object@1.2.2:
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
- /is-buffer@1.1.6:
- resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+ is-buffer@1.1.6: {}
- /is-builtin-module@3.2.1:
- resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
- engines: {node: '>=6'}
+ is-builtin-module@3.2.1:
dependencies:
builtin-modules: 3.3.0
- dev: false
- /is-callable@1.2.7:
- resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
- engines: {node: '>= 0.4'}
+ is-callable@1.2.7: {}
- /is-core-module@2.13.1:
- resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
+ is-core-module@2.16.2:
dependencies:
- hasown: 2.0.1
+ hasown: 2.0.4
- /is-data-descriptor@1.0.1:
- resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==}
- engines: {node: '>= 0.4'}
+ is-data-descriptor@1.0.1:
dependencies:
- hasown: 2.0.1
+ hasown: 2.0.4
- /is-date-object@1.0.5:
- resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
- engines: {node: '>= 0.4'}
+ is-data-view@1.0.2:
dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ is-typed-array: 1.1.15
+
+ is-date-object@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
- /is-descriptor@0.1.7:
- resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==}
- engines: {node: '>= 0.4'}
+ is-descriptor@0.1.8:
dependencies:
- is-accessor-descriptor: 1.0.1
+ is-accessor-descriptor: 1.0.2
is-data-descriptor: 1.0.1
- /is-descriptor@1.0.3:
- resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==}
- engines: {node: '>= 0.4'}
+ is-descriptor@1.0.4:
dependencies:
- is-accessor-descriptor: 1.0.1
+ is-accessor-descriptor: 1.0.2
is-data-descriptor: 1.0.1
- /is-docker@2.2.1:
- resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
- engines: {node: '>=8'}
- hasBin: true
- dev: true
+ is-docker@2.2.1: {}
- /is-extendable@0.1.1:
- resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
- engines: {node: '>=0.10.0'}
+ is-extendable@0.1.1: {}
- /is-extendable@1.0.1:
- resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
- engines: {node: '>=0.10.0'}
+ is-extendable@1.0.1:
dependencies:
is-plain-object: 2.0.4
- /is-extglob@2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
+ is-extglob@2.1.1: {}
- /is-finite@1.1.0:
- resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==}
- engines: {node: '>=0.10.0'}
- dev: false
+ is-finalizationregistry@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
- /is-fullwidth-code-point@2.0.0:
- resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==}
- engines: {node: '>=4'}
- dev: true
+ is-finite@1.1.0: {}
- /is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
+ is-fullwidth-code-point@2.0.0: {}
- /is-git-url@1.0.0:
- resolution: {integrity: sha512-UCFta9F9rWFSavp9H3zHEHrARUfZbdJvmHKeEpds4BK3v7W2LdXoNypMtXXi5w5YBDEBCTYmbI+vsSwI8LYJaQ==}
- engines: {node: '>=0.8'}
- dev: true
+ is-fullwidth-code-point@3.0.0: {}
- /is-glob@3.1.0:
- resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==}
- engines: {node: '>=0.10.0'}
+ is-generator-function@1.1.2:
+ dependencies:
+ call-bound: 1.0.4
+ generator-function: 2.0.1
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-git-url@1.0.0: {}
+
+ is-glob@3.1.0:
dependencies:
is-extglob: 2.1.1
- dev: false
- /is-glob@4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
+ is-glob@4.0.3:
dependencies:
is-extglob: 2.1.1
- /is-interactive@1.0.0:
- resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
- engines: {node: '>=8'}
- dev: true
+ is-interactive@1.0.0: {}
- /is-language-code@3.1.0:
- resolution: {integrity: sha512-zJdQ3QTeLye+iphMeK3wks+vXSRFKh68/Pnlw7aOfApFSEIOhYa8P9vwwa6QrImNNBMJTiL1PpYF0f4BxDuEgA==}
+ is-language-code@3.1.0:
dependencies:
- '@babel/runtime': 7.23.9
- dev: true
+ '@babel/runtime': 7.29.7
- /is-module@1.0.0:
- resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
- dev: false
+ is-map@2.0.3: {}
- /is-negative-zero@2.0.2:
- resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
- engines: {node: '>= 0.4'}
+ is-module@1.0.0: {}
- /is-number-object@1.0.7:
- resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
- engines: {node: '>= 0.4'}
+ is-negative-zero@2.0.3: {}
+
+ is-number-object@1.1.1:
dependencies:
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
- /is-number@3.0.0:
- resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
- engines: {node: '>=0.10.0'}
+ is-number@3.0.0:
dependencies:
kind-of: 3.2.2
- /is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
+ is-number@7.0.0: {}
- /is-obj@2.0.0:
- resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
- engines: {node: '>=8'}
- dev: true
+ is-obj@2.0.0: {}
- /is-path-inside@3.0.3:
- resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
- engines: {node: '>=8'}
- dev: true
+ is-path-inside@3.0.3: {}
- /is-plain-obj@1.1.0:
- resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
- engines: {node: '>=0.10.0'}
- dev: true
+ is-plain-obj@1.1.0: {}
- /is-plain-obj@2.1.0:
- resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
- engines: {node: '>=8'}
- dev: true
+ is-plain-obj@2.1.0: {}
- /is-plain-object@2.0.4:
- resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
- engines: {node: '>=0.10.0'}
+ is-plain-obj@4.1.0: {}
+
+ is-plain-object@2.0.4:
dependencies:
isobject: 3.0.1
- /is-plain-object@5.0.0:
- resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
- engines: {node: '>=0.10.0'}
- dev: true
+ is-plain-object@5.0.0: {}
- /is-regex@1.1.4:
- resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
- engines: {node: '>= 0.4'}
+ is-promise@4.0.0: {}
+
+ is-reference@3.0.3:
dependencies:
- call-bind: 1.0.7
+ '@types/estree': 1.0.9
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ gopd: 1.2.0
has-tostringtag: 1.0.2
+ hasown: 2.0.4
- /is-shared-array-buffer@1.0.2:
- resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
+ is-set@2.0.3: {}
+
+ is-shared-array-buffer@1.0.4:
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
- /is-stream@1.1.0:
- resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
- engines: {node: '>=0.10.0'}
- dev: true
+ is-stream@1.1.0: {}
- /is-stream@2.0.1:
- resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
- engines: {node: '>=8'}
+ is-stream@2.0.1: {}
- /is-string@1.0.7:
- resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
- engines: {node: '>= 0.4'}
+ is-stream@4.0.1: {}
+
+ is-string@1.1.1:
dependencies:
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
- /is-symbol@1.0.4:
- resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
- engines: {node: '>= 0.4'}
+ is-subdir@1.2.0:
dependencies:
- has-symbols: 1.0.3
+ better-path-resolve: 1.0.0
- /is-type@0.0.1:
- resolution: {integrity: sha512-YwJh/zBVrcJ90aAnPBM0CbHvm7lG9ao7lIFeqTZ1UQj4iFLpM5CikdaU+dGGesrMJwxLqPGmjjrUrQ6Kn3Zh+w==}
+ is-symbol@1.1.1:
dependencies:
- core-util-is: 1.0.3
- dev: true
+ call-bound: 1.0.4
+ has-symbols: 1.1.0
+ safe-regex-test: 1.1.0
- /is-typed-array@1.1.13:
- resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
- engines: {node: '>= 0.4'}
+ is-typed-array@1.1.15:
dependencies:
- which-typed-array: 1.1.14
+ which-typed-array: 1.1.21
- /is-typedarray@1.0.0:
- resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
- dev: true
+ is-typedarray@1.0.0: {}
- /is-unicode-supported@0.1.0:
- resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
- engines: {node: '>=10'}
- dev: true
+ is-unicode-supported@0.1.0: {}
+
+ is-unicode-supported@2.1.0: {}
- /is-weakref@1.0.2:
- resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
+ is-weakmap@2.0.2: {}
+
+ is-weakref@1.1.1:
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
- /is-windows@1.0.2:
- resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
- engines: {node: '>=0.10.0'}
+ is-weakset@2.0.4:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
- /is-wsl@1.1.0:
- resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==}
- engines: {node: '>=4'}
- dev: false
+ is-windows@1.0.2: {}
- /is-wsl@2.2.0:
- resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
- engines: {node: '>=8'}
+ is-wsl@1.1.0: {}
+
+ is-wsl@2.2.0:
dependencies:
is-docker: 2.2.1
- dev: true
- /isarray@0.0.1:
- resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
+ isarray@0.0.1: {}
- /isarray@1.0.0:
- resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+ isarray@1.0.0: {}
- /isarray@2.0.5:
- resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+ isarray@2.0.5: {}
- /isbinaryfile@5.0.2:
- resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
- engines: {node: '>= 18.0.0'}
- dev: true
+ isbinaryfile@5.0.7: {}
- /isexe@2.0.0:
- resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ isexe@2.0.0: {}
- /isobject@2.1.0:
- resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
- engines: {node: '>=0.10.0'}
+ isobject@2.1.0:
dependencies:
isarray: 1.0.0
- /isobject@3.0.1:
- resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
- engines: {node: '>=0.10.0'}
+ isobject@3.0.1: {}
- /istextorbinary@2.1.0:
- resolution: {integrity: sha512-kT1g2zxZ5Tdabtpp9VSdOzW9lb6LXImyWbzbQeTxoRtHhurC9Ej9Wckngr2+uepPL09ky/mJHmN9jeJPML5t6A==}
- engines: {node: '>=0.12'}
+ istextorbinary@2.1.0:
dependencies:
binaryextensions: 2.3.0
editions: 1.3.4
textextensions: 2.6.0
- /istextorbinary@2.6.0:
- resolution: {integrity: sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==}
- engines: {node: '>=0.12'}
+ istextorbinary@2.6.0:
dependencies:
binaryextensions: 2.3.0
editions: 2.3.1
textextensions: 2.6.0
- /jackspeak@2.3.6:
- resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
- engines: {node: '>=14'}
+ jackspeak@3.4.3:
dependencies:
'@isaacs/cliui': 8.0.2
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
- dev: false
- /jest-worker@27.5.1:
- resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
- engines: {node: '>= 10.13.0'}
+ jest-worker@27.5.1:
dependencies:
- '@types/node': 20.11.19
+ '@types/node': 25.9.1
merge-stream: 2.0.0
supports-color: 8.1.1
- /jiti@1.21.0:
- resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
- hasBin: true
- dev: false
-
- /js-string-escape@1.0.1:
- resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==}
- engines: {node: '>= 0.8'}
+ jiti@1.21.7: {}
- /js-tokens@3.0.2:
- resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==}
- dev: false
+ js-string-escape@1.0.1: {}
- /js-tokens@4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ js-tokens@3.0.2: {}
- /js-yaml@3.14.1:
- resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
- hasBin: true
- dependencies:
- argparse: 1.0.10
- esprima: 4.0.1
- dev: true
+ js-tokens@4.0.0: {}
- /js-yaml@4.1.0:
- resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
- hasBin: true
+ js-yaml@4.2.0:
dependencies:
argparse: 2.0.1
- /jsesc@0.5.0:
- resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
- hasBin: true
-
- /jsesc@1.3.0:
- resolution: {integrity: sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==}
- hasBin: true
- dev: false
+ jsesc@1.3.0: {}
- /jsesc@2.5.2:
- resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
- engines: {node: '>=4'}
- hasBin: true
+ jsesc@3.1.0: {}
- /json-buffer@3.0.0:
- resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==}
- dev: true
+ json-buffer@3.0.0: {}
- /json-buffer@3.0.1:
- resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
- dev: true
+ json-buffer@3.0.1: {}
- /json-parse-better-errors@1.0.2:
- resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
- dev: false
+ json-parse-better-errors@1.0.2: {}
- /json-parse-even-better-errors@2.3.1:
- resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+ json-parse-even-better-errors@2.3.1: {}
- /json-schema-traverse@0.4.1:
- resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ json-schema-traverse@0.4.1: {}
- /json-schema-traverse@1.0.0:
- resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ json-schema-traverse@1.0.0: {}
- /json-stable-stringify-without-jsonify@1.0.1:
- resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
- dev: true
+ json-stable-stringify-without-jsonify@1.0.1: {}
- /json-stable-stringify@1.1.1:
- resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==}
- engines: {node: '>= 0.4'}
+ json-stable-stringify@1.3.0:
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.9
+ call-bound: 1.0.4
isarray: 2.0.5
jsonify: 0.0.1
object-keys: 1.1.1
- /json5@0.5.1:
- resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==}
- hasBin: true
+ json5@0.5.1: {}
- /json5@1.0.2:
- resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
- hasBin: true
+ json5@1.0.2:
dependencies:
minimist: 1.2.8
- dev: false
- /json5@2.2.3:
- resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
- engines: {node: '>=6'}
- hasBin: true
+ json5@2.2.3: {}
- /jsonfile@2.4.0:
- resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==}
+ jsonfile@2.4.0:
optionalDependencies:
graceful-fs: 4.2.11
- dev: true
- /jsonfile@3.0.1:
- resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==}
+ jsonfile@3.0.1:
optionalDependencies:
graceful-fs: 4.2.11
- dev: true
- /jsonfile@4.0.0:
- resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+ jsonfile@4.0.0:
optionalDependencies:
graceful-fs: 4.2.11
- /jsonfile@6.1.0:
- resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ jsonfile@6.2.1:
dependencies:
universalify: 2.0.1
optionalDependencies:
graceful-fs: 4.2.11
- /jsonify@0.0.1:
- resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==}
+ jsonify@0.0.1: {}
- /keyv@3.1.0:
- resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==}
+ keyv@3.1.0:
dependencies:
json-buffer: 3.0.0
- dev: true
- /keyv@4.5.4:
- resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+ keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
- dev: true
- /kind-of@3.2.2:
- resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
- engines: {node: '>=0.10.0'}
+ kind-of@3.2.2:
dependencies:
is-buffer: 1.1.6
- /kind-of@4.0.0:
- resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
- engines: {node: '>=0.10.0'}
+ kind-of@4.0.0:
dependencies:
is-buffer: 1.1.6
- /kind-of@6.0.3:
- resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
- engines: {node: '>=0.10.0'}
+ kind-of@6.0.3: {}
- /known-css-properties@0.29.0:
- resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==}
- dev: true
+ known-css-properties@0.29.0: {}
- /language-subtag-registry@0.3.22:
- resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
- dev: true
+ language-subtag-registry@0.3.23: {}
- /language-tags@1.0.9:
- resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
- engines: {node: '>=0.10'}
+ language-tags@1.0.9:
dependencies:
- language-subtag-registry: 0.3.22
- dev: true
+ language-subtag-registry: 0.3.23
- /lcid@3.1.1:
- resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==}
- engines: {node: '>=8'}
+ lcid@3.1.1:
dependencies:
invert-kv: 3.0.1
- dev: true
- /leaflet@1.9.4:
- resolution: {integrity: sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==}
- dev: false
+ leaflet@1.9.4: {}
- /levn@0.4.1:
- resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
- engines: {node: '>= 0.8.0'}
+ levn@0.4.1:
dependencies:
prelude-ls: 1.2.1
type-check: 0.4.0
- dev: true
- /lilconfig@2.1.0:
- resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
- engines: {node: '>=10'}
- dev: false
-
- /lilconfig@3.1.0:
- resolution: {integrity: sha512-p3cz0JV5vw/XeouBU3Ldnp+ZkBjE+n8ydJ4mcwBrOiXXPqNlrzGBqWs9X4MWF7f+iKUBu794Y8Hh8yawiJbCjw==}
- engines: {node: '>=14'}
- deprecated: This version contains a security issue. Please upgrade to 3.1.1 or later.
- dev: false
+ lilconfig@3.1.3: {}
- /line-column@1.0.2:
- resolution: {integrity: sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==}
+ line-column@1.0.2:
dependencies:
isarray: 1.0.0
isobject: 2.1.0
- /lines-and-columns@1.2.4:
- resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ lines-and-columns@1.2.4: {}
- /linked-list@0.1.0:
- resolution: {integrity: sha512-Zr4ovrd0ODzF3ut2TWZMdHIxb8iFdJc/P3QM4iCJdlxxGHXo69c9hGIHzLo8/FtuR9E6WUZc5irKhtPUgOKMAg==}
- dev: false
+ linked-list@0.1.0: {}
- /linkify-it@4.0.1:
- resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==}
+ linkify-it@4.0.1:
dependencies:
uc.micro: 1.0.6
- dev: true
- /livereload-js@3.4.1:
- resolution: {integrity: sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g==}
- dev: true
+ linkify-it@5.0.1:
+ dependencies:
+ uc.micro: 2.1.0
- /loader-runner@2.4.0:
- resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==}
- engines: {node: '>=4.3.0 <5.0.0 || >=5.10'}
- dev: false
+ livereload-js@3.4.1: {}
- /loader-runner@4.3.0:
- resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
- engines: {node: '>=6.11.5'}
+ loader-runner@2.4.0: {}
- /loader-utils@1.4.2:
- resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==}
- engines: {node: '>=4.0.0'}
+ loader-runner@4.3.2: {}
+
+ loader-utils@1.4.2:
dependencies:
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.2
- dev: false
- /loader-utils@2.0.4:
- resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
- engines: {node: '>=8.9.0'}
+ loader-utils@2.0.4:
dependencies:
big.js: 5.2.2
emojis-list: 3.0.0
json5: 2.2.3
- /loader.js@4.7.0:
- resolution: {integrity: sha512-9M2KvGT6duzGMgkOcTkWb+PR/Q2Oe54df/tLgHGVmFpAmtqJ553xJh6N63iFYI2yjo2PeJXbS5skHi/QpJq4vA==}
- dev: true
+ loader.js@4.7.0: {}
- /locate-path@2.0.0:
- resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
- engines: {node: '>=4'}
+ locate-character@3.0.0: {}
+
+ locate-path@2.0.0:
dependencies:
p-locate: 2.0.0
path-exists: 3.0.0
- /locate-path@3.0.0:
- resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
- engines: {node: '>=6'}
+ locate-path@3.0.0:
dependencies:
p-locate: 3.0.0
path-exists: 3.0.0
- dev: false
- /locate-path@5.0.0:
- resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
- engines: {node: '>=8'}
+ locate-path@5.0.0:
dependencies:
p-locate: 4.1.0
- /locate-path@6.0.0:
- resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
- engines: {node: '>=10'}
+ locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
- /locate-path@7.2.0:
- resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ locate-path@7.2.0:
dependencies:
p-locate: 6.0.0
- dev: true
-
- /lodash._baseflatten@3.1.4:
- resolution: {integrity: sha512-fESngZd+X4k+GbTxdMutf8ohQa0s3sJEHIcwtu4/LsIQ2JTDzdRxDCMQjW+ezzwRitLmHnacVVmosCbxifefbw==}
- dependencies:
- lodash.isarguments: 3.1.0
- lodash.isarray: 3.0.4
- dev: true
-
- /lodash._getnative@3.9.1:
- resolution: {integrity: sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==}
- dev: true
-
- /lodash._isiterateecall@3.0.9:
- resolution: {integrity: sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==}
- dev: true
-
- /lodash._reinterpolate@3.0.0:
- resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==}
- dev: true
-
- /lodash.assignin@4.2.0:
- resolution: {integrity: sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==}
- dev: true
-
- /lodash.camelcase@4.3.0:
- resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
- dev: true
-
- /lodash.castarray@4.4.0:
- resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
- dev: true
-
- /lodash.clonedeep@4.5.0:
- resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
- dev: true
-
- /lodash.debounce@3.1.1:
- resolution: {integrity: sha512-lcmJwMpdPAtChA4hfiwxTtgFeNAaow701wWUgVUqeD0XJF7vMXIN+bu/2FJSGxT0NUbZy9g9VFrlOFfPjl+0Ew==}
- dependencies:
- lodash._getnative: 3.9.1
- dev: true
-
- /lodash.debounce@4.0.8:
- resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
-
- /lodash.defaults@4.2.0:
- resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
- dev: false
-
- /lodash.defaultsdeep@4.6.1:
- resolution: {integrity: sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==}
- dev: true
-
- /lodash.find@4.6.0:
- resolution: {integrity: sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==}
- dev: true
- /lodash.flatten@3.0.2:
- resolution: {integrity: sha512-jCXLoNcqQRbnT/KWZq2fIREHWeczrzpTR0vsycm96l/pu5hGeAntVBG0t7GuM/2wFqmnZs3d1eGptnAH2E8+xQ==}
- dependencies:
- lodash._baseflatten: 3.1.4
- lodash._isiterateecall: 3.0.9
- dev: true
-
- /lodash.isarguments@3.1.0:
- resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==}
- dev: true
-
- /lodash.isarray@3.0.4:
- resolution: {integrity: sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==}
- dev: true
-
- /lodash.kebabcase@4.1.1:
- resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==}
- dev: true
+ lodash.camelcase@4.3.0: {}
- /lodash.memoize@4.1.2:
- resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
- dev: false
+ lodash.debounce@4.0.8: {}
- /lodash.merge@4.6.2:
- resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ lodash.defaults@4.2.0: {}
- /lodash.omit@4.5.0:
- resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==}
+ lodash.defaultsdeep@4.6.1: {}
- /lodash.template@4.5.0:
- resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==}
- dependencies:
- lodash._reinterpolate: 3.0.0
- lodash.templatesettings: 4.2.0
- dev: true
+ lodash.kebabcase@4.1.1: {}
- /lodash.templatesettings@4.2.0:
- resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==}
- dependencies:
- lodash._reinterpolate: 3.0.0
- dev: true
+ lodash.memoize@4.1.2: {}
- /lodash.truncate@4.4.2:
- resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
- dev: true
+ lodash.merge@4.6.2: {}
- /lodash.uniq@4.5.0:
- resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+ lodash.truncate@4.4.2: {}
- /lodash.uniqby@4.7.0:
- resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==}
- dev: true
+ lodash.uniq@4.5.0: {}
- /lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ lodash@4.18.1: {}
- /log-symbols@2.2.0:
- resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==}
- engines: {node: '>=4'}
+ log-symbols@2.2.0:
dependencies:
chalk: 2.4.2
- dev: true
- /log-symbols@4.1.0:
- resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
- engines: {node: '>=10'}
+ log-symbols@4.1.0:
dependencies:
chalk: 4.1.2
is-unicode-supported: 0.1.0
- dev: true
- /loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
+ loose-envify@1.4.0:
dependencies:
js-tokens: 4.0.0
- dev: false
- /lower-case@2.0.2:
- resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+ lower-case@2.0.2:
dependencies:
- tslib: 2.6.2
+ tslib: 2.8.1
- /lowercase-keys@1.0.1:
- resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==}
- engines: {node: '>=0.10.0'}
- dev: true
+ lowercase-keys@1.0.1: {}
- /lowercase-keys@2.0.0:
- resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
- engines: {node: '>=8'}
- dev: true
+ lowercase-keys@2.0.0: {}
- /lru-cache@10.2.0:
- resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
- engines: {node: 14 || >=16.14}
+ lru-cache@10.4.3: {}
- /lru-cache@5.1.1:
- resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+ lru-cache@11.5.1: {}
+
+ lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
- /lru-cache@6.0.0:
- resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
- engines: {node: '>=10'}
+ lru-cache@6.0.0:
dependencies:
yallist: 4.0.0
- /lru-cache@7.18.3:
- resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
- engines: {node: '>=12'}
- dev: true
+ lru-cache@7.18.3: {}
- /magic-string@0.25.9:
- resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
+ magic-string@0.25.9:
dependencies:
sourcemap-codec: 1.4.8
- /magic-string@0.30.7:
- resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==}
- engines: {node: '>=12'}
+ magic-string@0.30.21:
dependencies:
- '@jridgewell/sourcemap-codec': 1.4.15
- dev: true
+ '@jridgewell/sourcemap-codec': 1.5.5
- /make-dir@2.1.0:
- resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
- engines: {node: '>=6'}
+ make-dir@2.1.0:
dependencies:
pify: 4.0.1
semver: 5.7.2
- dev: false
- /make-dir@3.1.0:
- resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
- engines: {node: '>=8'}
+ make-dir@3.1.0:
dependencies:
semver: 6.3.1
- /makeerror@1.0.12:
- resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+ makeerror@1.0.12:
dependencies:
tmpl: 1.0.5
- dev: true
- /map-age-cleaner@0.1.3:
- resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
- engines: {node: '>=6'}
+ map-age-cleaner@0.1.3:
dependencies:
p-defer: 1.0.0
- dev: true
-
- /map-cache@0.2.2:
- resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
- engines: {node: '>=0.10.0'}
- /map-obj@1.0.1:
- resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
- engines: {node: '>=0.10.0'}
- dev: true
+ map-cache@0.2.2: {}
- /map-obj@4.3.0:
- resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
- engines: {node: '>=8'}
- dev: true
+ map-obj@1.0.1: {}
- /map-visit@1.0.0:
- resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
- engines: {node: '>=0.10.0'}
+ map-obj@4.3.0: {}
+
+ map-visit@1.0.0:
dependencies:
object-visit: 1.0.1
- /markdown-it-terminal@0.4.0(markdown-it@13.0.2):
- resolution: {integrity: sha512-NeXtgpIK6jBciHTm9UhiPnyHDdqyVIdRPJ+KdQtZaf/wR74gvhCNbw5li4TYsxRp5u3ZoHEF4DwpECeZqyCw+w==}
- peerDependencies:
- markdown-it: '>= 13.0.0'
+ markdown-it-terminal@0.4.0(markdown-it@13.0.2):
dependencies:
ansi-styles: 3.2.1
cardinal: 1.0.0
cli-table: 0.3.11
lodash.merge: 4.6.2
markdown-it: 13.0.2
- dev: true
- /markdown-it@13.0.2:
- resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==}
- hasBin: true
+ markdown-it@13.0.2:
dependencies:
argparse: 2.0.1
entities: 3.0.1
linkify-it: 4.0.1
mdurl: 1.0.1
uc.micro: 1.0.6
- dev: true
- /matcher-collection@1.1.2:
- resolution: {integrity: sha512-YQ/teqaOIIfUHedRam08PB3NK7Mjct6BvzRnJmpGDm8uFXpNr1sbY4yuflI5JcEs6COpYA0FpRQhSDBf1tT95g==}
+ markdown-it@14.2.0:
dependencies:
- minimatch: 3.1.2
+ argparse: 2.0.1
+ entities: 4.5.0
+ linkify-it: 5.0.1
+ mdurl: 2.0.0
+ punycode.js: 2.3.1
+ uc.micro: 2.1.0
- /matcher-collection@2.0.1:
- resolution: {integrity: sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ matcher-collection@1.1.2:
+ dependencies:
+ minimatch: 3.1.5
+
+ matcher-collection@2.0.1:
dependencies:
'@types/minimatch': 3.0.5
- minimatch: 3.1.2
+ minimatch: 3.1.5
- /mathml-tag-names@2.1.3:
- resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
- dev: true
+ math-intrinsics@1.1.0: {}
- /md5.js@1.3.5:
- resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==}
+ mathml-tag-names@2.1.3: {}
+
+ md5.js@1.3.5:
dependencies:
- hash-base: 3.1.0
+ hash-base: 3.0.5
inherits: 2.0.4
safe-buffer: 5.2.1
- dev: false
- /mdn-data@2.0.30:
- resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
- dev: true
+ mdn-data@2.0.30: {}
- /mdurl@1.0.1:
- resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==}
- dev: true
+ mdurl@1.0.1: {}
- /media-typer@0.3.0:
- resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
- engines: {node: '>= 0.6'}
- dev: true
+ mdurl@2.0.0: {}
- /mem@5.1.1:
- resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==}
- engines: {node: '>=8'}
+ media-typer@0.3.0: {}
+
+ media-typer@1.1.0: {}
+
+ mem@5.1.1:
dependencies:
map-age-cleaner: 0.1.3
mimic-fn: 2.1.0
p-is-promise: 2.1.0
- dev: true
- /memory-fs@0.4.1:
- resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==}
+ mem@8.1.1:
+ dependencies:
+ map-age-cleaner: 0.1.3
+ mimic-fn: 3.1.0
+
+ memory-fs@0.4.1:
dependencies:
errno: 0.1.8
readable-stream: 2.3.8
- dev: false
- /memory-fs@0.5.0:
- resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==}
- engines: {node: '>=4.3.0 <5.0.0 || >=5.10'}
+ memory-fs@0.5.0:
dependencies:
errno: 0.1.8
readable-stream: 2.3.8
- dev: false
- /memory-streams@0.1.3:
- resolution: {integrity: sha512-qVQ/CjkMyMInPaaRMrwWNDvf6boRZXaT/DbQeMYcCWuXPEBf1v8qChOc9OlEVQp2uOvRXa1Qu30fLmKhY6NipA==}
+ memory-streams@0.1.3:
dependencies:
readable-stream: 1.0.34
- /meow@10.1.5:
- resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ meow@10.1.5:
dependencies:
'@types/minimist': 1.2.5
camelcase-keys: 7.0.2
@@ -11352,17 +16742,14 @@ packages:
trim-newlines: 4.1.1
type-fest: 1.4.0
yargs-parser: 20.2.9
- dev: true
- /merge-descriptors@1.0.1:
- resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
- dev: true
+ merge-descriptors@1.0.3: {}
- /merge-stream@2.0.0:
- resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+ merge-descriptors@2.0.0: {}
- /merge-trees@1.0.1:
- resolution: {integrity: sha512-O7TWwipLHhc9tErjq3WBvNP7I1g7Wgudl1ZkLqpT7F2MZy1yEdgnI9cpZZxBaqk+wJZu+2b9FE7D3ubUmGFHFA==}
+ merge-stream@2.0.0: {}
+
+ merge-trees@1.0.1:
dependencies:
can-symlink: 1.0.0
fs-tree-diff: 0.5.9
@@ -11372,32 +16759,21 @@ packages:
symlink-or-copy: 1.3.1
transitivePeerDependencies:
- supports-color
- dev: false
- /merge-trees@2.0.0:
- resolution: {integrity: sha512-5xBbmqYBalWqmhYm51XlohhkmVOua3VAUrrWh8t9iOkaLpS6ifqm/UVuUjQCeDVJ9Vx3g2l6ihfkbLSTeKsHbw==}
+ merge-trees@2.0.0:
dependencies:
fs-updater: 1.0.4
heimdalljs: 0.2.6
transitivePeerDependencies:
- supports-color
- /merge2@1.4.1:
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
- engines: {node: '>= 8'}
+ merge2@1.4.1: {}
- /merge@2.1.1:
- resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==}
- dev: false
+ merge@2.1.1: {}
- /methods@1.1.2:
- resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
- engines: {node: '>= 0.6'}
- dev: true
+ methods@1.1.2: {}
- /micromatch@3.1.10:
- resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==}
- engines: {node: '>=0.10.0'}
+ micromatch@3.1.10:
dependencies:
arr-diff: 4.0.0
array-unique: 0.3.2
@@ -11415,199 +16791,125 @@ packages:
transitivePeerDependencies:
- supports-color
- /micromatch@4.0.5:
- resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
- engines: {node: '>=8.6'}
+ micromatch@4.0.8:
dependencies:
- braces: 3.0.2
- picomatch: 2.3.1
+ braces: 3.0.3
+ picomatch: 2.3.2
- /miller-rabin@4.0.1:
- resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==}
- hasBin: true
+ miller-rabin@4.0.1:
dependencies:
- bn.js: 4.12.0
+ bn.js: 4.12.3
brorand: 1.1.0
- dev: false
- /mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
+ mime-db@1.52.0: {}
- /mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
+ mime-db@1.54.0: {}
+
+ mime-types@2.1.35:
dependencies:
mime-db: 1.52.0
- /mime@1.6.0:
- resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
- engines: {node: '>=4'}
- hasBin: true
- dev: true
+ mime-types@3.0.2:
+ dependencies:
+ mime-db: 1.54.0
- /mimic-fn@1.2.0:
- resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==}
- engines: {node: '>=4'}
- dev: true
+ mime@1.6.0: {}
- /mimic-fn@2.1.0:
- resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
- engines: {node: '>=6'}
+ mimic-fn@1.2.0: {}
- /mimic-response@1.0.1:
- resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
- engines: {node: '>=4'}
- dev: true
+ mimic-fn@2.1.0: {}
- /min-indent@1.0.1:
- resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
- engines: {node: '>=4'}
- dev: true
+ mimic-fn@3.1.0: {}
- /mini-css-extract-plugin@2.8.0(webpack@5.89.0):
- resolution: {integrity: sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==}
- engines: {node: '>= 12.13.0'}
- peerDependencies:
- webpack: ^5.0.0
+ mimic-response@1.0.1: {}
+
+ mini-css-extract-plugin@2.10.2(webpack@5.107.2(postcss@8.5.15)):
dependencies:
- schema-utils: 4.2.0
- tapable: 2.2.1
- webpack: 5.89.0
+ schema-utils: 4.3.3
+ tapable: 2.3.3
+ webpack: 5.107.2(postcss@8.5.15)
- /mini-svg-data-uri@1.4.4:
- resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
- hasBin: true
- dev: false
+ mini-svg-data-uri@1.4.4: {}
- /minimalistic-assert@1.0.1:
- resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
- dev: false
+ minimalistic-assert@1.0.1: {}
- /minimalistic-crypto-utils@1.0.1:
- resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==}
- dev: false
+ minimalistic-crypto-utils@1.0.1: {}
- /minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ minimatch@10.2.5:
dependencies:
- brace-expansion: 1.1.11
+ brace-expansion: 5.0.6
- /minimatch@5.1.6:
- resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
- engines: {node: '>=10'}
+ minimatch@3.1.5:
dependencies:
- brace-expansion: 2.0.1
+ brace-expansion: 1.1.15
- /minimatch@7.4.6:
- resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
- engines: {node: '>=10'}
+ minimatch@5.1.9:
dependencies:
- brace-expansion: 2.0.1
- dev: true
+ brace-expansion: 2.1.1
- /minimatch@8.0.4:
- resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==}
- engines: {node: '>=16 || 14 >=14.17'}
+ minimatch@7.4.9:
dependencies:
- brace-expansion: 2.0.1
- dev: true
+ brace-expansion: 2.1.1
- /minimatch@9.0.3:
- resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
- engines: {node: '>=16 || 14 >=14.17'}
+ minimatch@8.0.7:
dependencies:
- brace-expansion: 2.0.1
- dev: false
+ brace-expansion: 2.1.1
- /minimist-options@4.1.0:
- resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
- engines: {node: '>= 6'}
+ minimatch@9.0.9:
+ dependencies:
+ brace-expansion: 2.1.1
+
+ minimist-options@4.1.0:
dependencies:
arrify: 1.0.1
is-plain-obj: 1.1.0
kind-of: 6.0.3
- dev: true
- /minimist@1.2.8:
- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
-
- /minipass@2.9.0:
- resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==}
- dependencies:
- safe-buffer: 5.2.1
- yallist: 3.1.1
- dev: true
+ minimist@1.2.8: {}
- /minipass@4.2.8:
- resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==}
- engines: {node: '>=8'}
- dev: true
+ minipass@4.2.8: {}
- /minipass@7.0.4:
- resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
- engines: {node: '>=16 || 14 >=14.17'}
+ minipass@7.1.3: {}
- /mississippi@3.0.0:
- resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==}
- engines: {node: '>=4.0.0'}
+ mississippi@3.0.0:
dependencies:
concat-stream: 1.6.2
duplexify: 3.7.1
- end-of-stream: 1.4.4
+ end-of-stream: 1.4.5
flush-write-stream: 1.1.1
from2: 2.3.0
parallel-transform: 1.2.0
- pump: 3.0.0
+ pump: 3.0.4
pumpify: 1.5.1
stream-each: 1.2.3
through2: 2.0.5
- dev: false
- /mixin-deep@1.3.2:
- resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
- engines: {node: '>=0.10.0'}
+ mixin-deep@1.3.2:
dependencies:
for-in: 1.0.2
is-extendable: 1.0.1
- /mkdirp@0.5.6:
- resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
- hasBin: true
+ mkdirp@0.5.6:
dependencies:
minimist: 1.2.8
- /mkdirp@1.0.4:
- resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
- engines: {node: '>=10'}
- hasBin: true
+ mkdirp@1.0.4: {}
- /mkdirp@3.0.1:
- resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
- engines: {node: '>=10'}
- hasBin: true
- dev: true
+ mkdirp@3.0.1: {}
- /mktemp@0.4.0:
- resolution: {integrity: sha512-IXnMcJ6ZyTuhRmJSjzvHSRhlVPiN9Jwc6e59V0bEJ0ba6OBeX2L0E+mRN1QseeOF4mM+F1Rit6Nh7o+rl2Yn/A==}
- engines: {node: '>0.9'}
+ mktemp@2.0.3: {}
- /morgan@1.10.0:
- resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==}
- engines: {node: '>= 0.8.0'}
+ morgan@1.11.0:
dependencies:
basic-auth: 2.0.1
debug: 2.6.9
depd: 2.0.0
- on-finished: 2.3.0
- on-headers: 1.0.2
+ on-finished: 2.4.1
+ on-headers: 1.1.0
transitivePeerDependencies:
- supports-color
- dev: true
- /move-concurrently@1.0.1:
- resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==}
- deprecated: This package is no longer supported.
+ move-concurrently@1.0.1:
dependencies:
aproba: 1.2.0
copy-concurrently: 1.0.5
@@ -11615,64 +16917,37 @@ packages:
mkdirp: 0.5.6
rimraf: 2.7.1
run-queue: 1.0.3
- dev: false
- /mr-dep-walk@1.4.0:
- resolution: {integrity: sha512-UaDUqkLsd0ep3jAx2+A7BIpfw8wKxhthDj3yPNLBnevipK1CUFJJiz24jRVLw18q7R2aEiRq13WwUBlnwfbQqQ==}
+ mr-dep-walk@1.4.0:
dependencies:
acorn: 5.7.4
amd-name-resolver: 0.0.6
fs-extra: 3.0.1
- dev: true
-
- /ms@2.0.0:
- resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
- /ms@2.1.2:
- resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ ms@2.0.0: {}
- /ms@2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ ms@2.1.3: {}
- /mustache@4.2.0:
- resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
- hasBin: true
- dev: true
+ mustache@4.2.0: {}
- /mute-stream@0.0.7:
- resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==}
- dev: true
+ mute-stream@0.0.7: {}
- /mute-stream@0.0.8:
- resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
- dev: true
+ mute-stream@0.0.8: {}
- /mute-stream@1.0.0:
- resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- dev: true
+ mute-stream@1.0.0: {}
- /mz@2.7.0:
- resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+ mz@2.7.0:
dependencies:
any-promise: 1.3.0
object-assign: 4.1.1
thenify-all: 1.6.0
- dev: false
- /nan@2.18.0:
- resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==}
- dev: false
+ nan@2.27.0:
optional: true
- /nanoid@3.3.7:
- resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
+ nanoid@3.3.12: {}
- /nanomatch@1.2.13:
- resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
- engines: {node: '>=0.10.0'}
+ nanomatch@1.2.13:
dependencies:
arr-diff: 4.0.0
array-unique: 0.3.2
@@ -11688,53 +16963,37 @@ packages:
transitivePeerDependencies:
- supports-color
- /natural-compare@1.4.0:
- resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
- dev: true
+ natural-compare@1.4.0: {}
- /negotiator@0.6.3:
- resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
- engines: {node: '>= 0.6'}
- dev: true
+ negotiator@0.6.3: {}
- /neo-async@2.6.2:
- resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+ negotiator@0.6.4: {}
- /nice-try@1.0.5:
- resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
- dev: true
+ negotiator@1.0.0: {}
- /no-case@3.0.4:
- resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ neo-async@2.6.2: {}
+
+ nice-try@1.0.5: {}
+
+ no-case@3.0.4:
dependencies:
lower-case: 2.0.2
- tslib: 2.6.2
+ tslib: 2.8.1
- /node-fetch@2.7.0:
- resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
- engines: {node: 4.x || >=6.0.0}
- peerDependencies:
- encoding: ^0.1.0
- peerDependenciesMeta:
- encoding:
- optional: true
+ node-fetch@2.7.0:
dependencies:
whatwg-url: 5.0.0
- dev: true
- /node-int64@0.4.0:
- resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
- dev: true
+ node-int64@0.4.0: {}
- /node-libs-browser@2.2.1:
- resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==}
+ node-libs-browser@2.2.1:
dependencies:
assert: 1.5.1
browserify-zlib: 0.2.0
buffer: 4.9.2
console-browserify: 1.2.0
constants-browserify: 1.0.0
- crypto-browserify: 3.12.0
+ crypto-browserify: 3.12.1
domain-browser: 1.2.0
events: 3.3.0
https-browserify: 1.0.0
@@ -11749,214 +17008,126 @@ packages:
string_decoder: 1.3.0
timers-browserify: 2.0.12
tty-browserify: 0.0.0
- url: 0.11.3
+ url: 0.11.4
util: 0.11.1
vm-browserify: 1.1.2
- dev: false
-
- /node-modules-path@1.0.2:
- resolution: {integrity: sha512-6Gbjq+d7uhkO7epaKi5DNgUJn7H0gEyA4Jg0Mo1uQOi3Rk50G83LtmhhFyw0LxnAFhtlspkiiw52ISP13qzcBg==}
- /node-notifier@10.0.1:
- resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==}
- dependencies:
- growly: 1.3.0
- is-wsl: 2.2.0
- semver: 7.6.0
- shellwords: 0.1.1
- uuid: 8.3.2
- which: 2.0.2
- dev: true
+ node-modules-path@1.0.2: {}
- /node-releases@2.0.14:
- resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
+ node-releases@2.0.47: {}
- /node-watch@0.7.3:
- resolution: {integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==}
- engines: {node: '>=6'}
- dev: true
+ node-watch@0.7.3: {}
- /nopt@3.0.6:
- resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==}
- hasBin: true
+ nopt@3.0.6:
dependencies:
abbrev: 1.1.1
- dev: true
- /normalize-package-data@3.0.3:
- resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
- engines: {node: '>=10'}
+ normalize-package-data@3.0.3:
dependencies:
hosted-git-info: 4.1.0
- is-core-module: 2.13.1
- semver: 7.6.0
+ is-core-module: 2.16.2
+ semver: 7.8.1
validate-npm-package-license: 3.0.4
- dev: true
- /normalize-path@2.1.1:
- resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==}
- engines: {node: '>=0.10.0'}
+ normalize-path@2.1.1:
dependencies:
remove-trailing-separator: 1.1.0
- /normalize-path@3.0.0:
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- engines: {node: '>=0.10.0'}
-
- /normalize-range@0.1.2:
- resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
- engines: {node: '>=0.10.0'}
- dev: false
+ normalize-path@3.0.0: {}
- /normalize-url@4.5.1:
- resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==}
- engines: {node: '>=8'}
- dev: true
+ normalize-url@4.5.1: {}
- /npm-git-info@1.0.3:
- resolution: {integrity: sha512-i5WBdj4F/ULl16z9ZhsJDMl1EQCMQhHZzBwNnKL2LOA+T8IHNeRkLCVz9uVV9SzUdGTbDq+1oXhIYMe+8148vw==}
- dev: true
+ npm-git-info@1.0.3: {}
- /npm-package-arg@10.1.0:
- resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ npm-package-arg@10.1.0:
dependencies:
- hosted-git-info: 6.1.1
+ hosted-git-info: 6.1.3
proc-log: 3.0.0
- semver: 7.6.0
- validate-npm-package-name: 5.0.0
- dev: true
+ semver: 7.8.1
+ validate-npm-package-name: 5.0.1
- /npm-run-path@2.0.2:
- resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
- engines: {node: '>=4'}
+ npm-run-path@2.0.2:
dependencies:
path-key: 2.0.1
- dev: true
- /npm-run-path@3.1.0:
- resolution: {integrity: sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==}
- engines: {node: '>=8'}
+ npm-run-path@3.1.0:
dependencies:
path-key: 3.1.1
- /npm-run-path@4.0.1:
- resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
- engines: {node: '>=8'}
+ npm-run-path@4.0.1:
dependencies:
path-key: 3.1.1
- /npmlog@6.0.2:
- resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ npm-run-path@6.0.0:
dependencies:
- are-we-there-yet: 3.0.1
- console-control-strings: 1.1.0
- gauge: 4.0.4
- set-blocking: 2.0.0
- dev: true
+ path-key: 4.0.0
+ unicorn-magic: 0.3.0
- /object-assign@4.1.1:
- resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
- engines: {node: '>=0.10.0'}
+ object-assign@4.1.1: {}
- /object-copy@0.1.0:
- resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
- engines: {node: '>=0.10.0'}
+ object-copy@0.1.0:
dependencies:
copy-descriptor: 0.1.1
define-property: 0.2.5
kind-of: 3.2.2
- /object-hash@1.3.1:
- resolution: {integrity: sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==}
- engines: {node: '>= 0.10.0'}
+ object-hash@1.3.1: {}
- /object-hash@3.0.0:
- resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
- engines: {node: '>= 6'}
- dev: false
+ object-hash@3.0.0: {}
- /object-inspect@1.13.1:
- resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
+ object-inspect@1.13.4: {}
- /object-keys@1.1.1:
- resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
- engines: {node: '>= 0.4'}
+ object-keys@1.1.1: {}
- /object-visit@1.0.1:
- resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
- engines: {node: '>=0.10.0'}
+ object-visit@1.0.1:
dependencies:
isobject: 3.0.1
- /object.assign@4.1.5:
- resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
- engines: {node: '>= 0.4'}
+ object.assign@4.1.7:
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.9
+ call-bound: 1.0.4
define-properties: 1.2.1
- has-symbols: 1.0.3
+ es-object-atoms: 1.1.2
+ has-symbols: 1.1.0
object-keys: 1.1.1
- /object.pick@1.3.0:
- resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
- engines: {node: '>=0.10.0'}
+ object.pick@1.3.0:
dependencies:
isobject: 3.0.1
- /on-finished@2.3.0:
- resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
- engines: {node: '>= 0.8'}
+ on-finished@2.3.0:
dependencies:
ee-first: 1.1.1
- dev: true
- /on-finished@2.4.1:
- resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
- engines: {node: '>= 0.8'}
+ on-finished@2.4.1:
dependencies:
ee-first: 1.1.1
- dev: true
- /on-headers@1.0.2:
- resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
- engines: {node: '>= 0.8'}
- dev: true
+ on-headers@1.1.0: {}
- /once@1.4.0:
- resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ once@1.4.0:
dependencies:
wrappy: 1.0.2
- /onetime@2.0.1:
- resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==}
- engines: {node: '>=4'}
+ onetime@2.0.1:
dependencies:
mimic-fn: 1.2.0
- dev: true
- /onetime@5.1.2:
- resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
- engines: {node: '>=6'}
+ onetime@5.1.2:
dependencies:
mimic-fn: 2.1.0
- /optionator@0.9.3:
- resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
- engines: {node: '>= 0.8.0'}
+ optionator@0.9.4:
dependencies:
- '@aashutoshrathi/word-wrap': 1.2.6
deep-is: 0.1.4
fast-levenshtein: 2.0.6
levn: 0.4.1
prelude-ls: 1.2.1
type-check: 0.4.0
- dev: true
+ word-wrap: 1.2.5
- /ora@3.4.0:
- resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==}
- engines: {node: '>=6'}
+ ora@3.4.0:
dependencies:
chalk: 2.4.2
cli-cursor: 2.1.0
@@ -11964,11 +17135,8 @@ packages:
log-symbols: 2.2.0
strip-ansi: 5.2.0
wcwidth: 1.0.1
- dev: true
- /ora@5.4.1:
- resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
- engines: {node: '>=10'}
+ ora@5.4.1:
dependencies:
bl: 4.1.0
chalk: 4.1.2
@@ -11979,1051 +17147,763 @@ packages:
log-symbols: 4.1.0
strip-ansi: 6.0.1
wcwidth: 1.0.1
- dev: true
- /os-browserify@0.3.0:
- resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==}
- dev: false
+ orderedmap@2.1.1: {}
- /os-homedir@1.0.2:
- resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==}
- engines: {node: '>=0.10.0'}
- dev: false
+ os-browserify@0.3.0: {}
- /os-locale@5.0.0:
- resolution: {integrity: sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==}
- engines: {node: '>=10'}
+ os-homedir@1.0.2: {}
+
+ os-locale@5.0.0:
dependencies:
execa: 4.1.0
lcid: 3.1.1
mem: 5.1.1
- dev: true
- /os-tmpdir@1.0.2:
- resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
- engines: {node: '>=0.10.0'}
+ os-tmpdir@1.0.2: {}
- /p-cancelable@1.1.0:
- resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==}
- engines: {node: '>=6'}
- dev: true
+ osrm-text-instructions@0.13.4: {}
- /p-defer@1.0.0:
- resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
- engines: {node: '>=4'}
- dev: true
+ own-keys@1.0.1:
+ dependencies:
+ get-intrinsic: 1.3.0
+ object-keys: 1.1.1
+ safe-push-apply: 1.0.0
- /p-defer@3.0.0:
- resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==}
- engines: {node: '>=8'}
- dev: true
+ p-cancelable@1.1.0: {}
- /p-event@2.3.1:
- resolution: {integrity: sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==}
- engines: {node: '>=6'}
+ p-defer@1.0.0: {}
+
+ p-defer@3.0.0: {}
+
+ p-event@2.3.1:
dependencies:
p-timeout: 2.0.1
- dev: false
- /p-finally@1.0.0:
- resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
- engines: {node: '>=4'}
+ p-finally@1.0.0: {}
- /p-finally@2.0.1:
- resolution: {integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==}
- engines: {node: '>=8'}
+ p-finally@2.0.1: {}
- /p-is-promise@2.1.0:
- resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==}
- engines: {node: '>=6'}
- dev: true
+ p-is-promise@2.1.0: {}
- /p-limit@1.3.0:
- resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
- engines: {node: '>=4'}
+ p-limit@1.3.0:
dependencies:
p-try: 1.0.0
- /p-limit@2.3.0:
- resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
- engines: {node: '>=6'}
+ p-limit@2.3.0:
dependencies:
p-try: 2.2.0
- /p-limit@3.1.0:
- resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
- engines: {node: '>=10'}
+ p-limit@3.1.0:
dependencies:
yocto-queue: 0.1.0
- /p-limit@4.0.0:
- resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ p-limit@4.0.0:
dependencies:
- yocto-queue: 1.0.0
- dev: true
+ yocto-queue: 1.2.2
- /p-locate@2.0.0:
- resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
- engines: {node: '>=4'}
+ p-locate@2.0.0:
dependencies:
p-limit: 1.3.0
- /p-locate@3.0.0:
- resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
- engines: {node: '>=6'}
+ p-locate@3.0.0:
dependencies:
p-limit: 2.3.0
- dev: false
- /p-locate@4.1.0:
- resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
- engines: {node: '>=8'}
+ p-locate@4.1.0:
dependencies:
p-limit: 2.3.0
- /p-locate@5.0.0:
- resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
- engines: {node: '>=10'}
+ p-locate@5.0.0:
dependencies:
p-limit: 3.1.0
- /p-locate@6.0.0:
- resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ p-locate@6.0.0:
dependencies:
p-limit: 4.0.0
- dev: true
- /p-timeout@2.0.1:
- resolution: {integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==}
- engines: {node: '>=4'}
+ p-timeout@2.0.1:
dependencies:
p-finally: 1.0.0
- dev: false
- /p-try@1.0.0:
- resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
- engines: {node: '>=4'}
+ p-try@1.0.0: {}
- /p-try@2.2.0:
- resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
- engines: {node: '>=6'}
+ p-try@2.2.0: {}
- /package-json@6.5.0:
- resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==}
- engines: {node: '>=8'}
+ package-json-from-dist@1.0.1: {}
+
+ package-json@6.5.0:
dependencies:
got: 9.6.0
registry-auth-token: 4.2.2
registry-url: 5.1.0
semver: 6.3.1
- dev: true
- /pako@1.0.11:
- resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
- dev: false
+ pako@1.0.11: {}
- /parallel-transform@1.2.0:
- resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==}
+ parallel-transform@1.2.0:
dependencies:
cyclist: 1.0.2
inherits: 2.0.4
readable-stream: 2.3.8
- dev: false
- /parent-module@1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- engines: {node: '>=6'}
+ parent-module@1.0.1:
dependencies:
callsites: 3.1.0
- dev: true
- /parse-asn1@5.1.6:
- resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==}
+ parse-asn1@5.1.9:
dependencies:
- asn1.js: 5.4.1
+ asn1.js: 4.10.1
browserify-aes: 1.2.0
evp_bytestokey: 1.0.3
- pbkdf2: 3.1.2
+ pbkdf2: 3.1.6
safe-buffer: 5.2.1
- dev: false
- /parse-json@5.2.0:
- resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
- engines: {node: '>=8'}
+ parse-json@5.2.0:
dependencies:
- '@babel/code-frame': 7.23.5
- error-ex: 1.3.2
+ '@babel/code-frame': 7.29.7
+ error-ex: 1.3.4
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
- dev: true
- /parse-passwd@1.0.0:
- resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}
- engines: {node: '>=0.10.0'}
- dev: true
+ parse-ms@4.0.0: {}
- /parse-static-imports@1.1.0:
- resolution: {integrity: sha512-HlxrZcISCblEV0lzXmAHheH/8qEkKgmqkdxyHTPbSqsTUV8GzqmN1L+SSti+VbNPfbBO3bYLPHDiUs2avbAdbA==}
+ parse-passwd@1.0.0: {}
- /parse5@6.0.1:
- resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
+ parse-static-imports@1.1.0: {}
- /parseurl@1.3.3:
- resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
- engines: {node: '>= 0.8'}
- dev: true
+ parse5@6.0.1: {}
- /pascal-case@3.1.2:
- resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
+ parseurl@1.3.3: {}
+
+ pascal-case@3.1.2:
dependencies:
no-case: 3.0.4
- tslib: 2.6.2
- dev: false
+ tslib: 2.8.1
- /pascalcase@0.1.1:
- resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
- engines: {node: '>=0.10.0'}
+ pascalcase@0.1.1: {}
- /path-browserify@0.0.1:
- resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==}
- dev: false
+ path-browserify@0.0.1: {}
- /path-dirname@1.0.2:
- resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==}
- dev: false
+ path-dirname@1.0.2: {}
- /path-exists@3.0.0:
- resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
- engines: {node: '>=4'}
+ path-exists@3.0.0: {}
- /path-exists@4.0.0:
- resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
- engines: {node: '>=8'}
+ path-exists@4.0.0: {}
- /path-exists@5.0.0:
- resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dev: true
+ path-exists@5.0.0: {}
- /path-is-absolute@1.0.1:
- resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
- engines: {node: '>=0.10.0'}
+ path-is-absolute@1.0.1: {}
- /path-key@2.0.1:
- resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
- engines: {node: '>=4'}
- dev: true
+ path-key@2.0.1: {}
- /path-key@3.1.1:
- resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
- engines: {node: '>=8'}
+ path-key@3.1.1: {}
- /path-parse@1.0.7:
- resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ path-key@4.0.0: {}
- /path-posix@1.0.0:
- resolution: {integrity: sha512-1gJ0WpNIiYcQydgg3Ed8KzvIqTsDpNwq+cjBCssvBtuTWjEqY1AW+i+OepiEMqDCzyro9B2sLAe4RBPajMYFiA==}
+ path-parse@1.0.7: {}
- /path-root-regex@0.1.2:
- resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==}
- engines: {node: '>=0.10.0'}
+ path-posix@1.0.0: {}
- /path-root@0.1.1:
- resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==}
- engines: {node: '>=0.10.0'}
+ path-root-regex@0.1.2: {}
+
+ path-root@0.1.1:
dependencies:
path-root-regex: 0.1.2
- /path-scurry@1.10.1:
- resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
- engines: {node: '>=16 || 14 >=14.17'}
+ path-scurry@1.11.1:
dependencies:
- lru-cache: 10.2.0
- minipass: 7.0.4
+ lru-cache: 10.4.3
+ minipass: 7.1.3
- /path-to-regexp@0.1.7:
- resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
- dev: true
+ path-scurry@2.0.2:
+ dependencies:
+ lru-cache: 11.5.1
+ minipass: 7.1.3
- /path-type@4.0.0:
- resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
- engines: {node: '>=8'}
- dev: true
+ path-to-regexp@0.1.13: {}
- /pbkdf2@3.1.2:
- resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==}
- engines: {node: '>=0.12'}
+ path-to-regexp@8.4.2: {}
+
+ path-type@4.0.0: {}
+
+ pbkdf2@3.1.6:
dependencies:
create-hash: 1.2.0
create-hmac: 1.1.7
- ripemd160: 2.0.2
+ ripemd160: 2.0.3
safe-buffer: 5.2.1
- sha.js: 2.4.11
- dev: false
+ sha.js: 2.4.12
+ to-buffer: 1.2.2
- /picocolors@1.0.0:
- resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+ picocolors@1.1.1: {}
- /picomatch@2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
+ picomatch@2.3.2: {}
- /pify@2.3.0:
- resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
- engines: {node: '>=0.10.0'}
- dev: false
+ picomatch@4.0.4: {}
- /pify@4.0.1:
- resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
- engines: {node: '>=6'}
- dev: false
+ pify@2.3.0: {}
- /pinkie-promise@2.0.1:
- resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==}
- engines: {node: '>=0.10.0'}
+ pify@4.0.1: {}
+
+ pinkie-promise@2.0.1:
dependencies:
pinkie: 2.0.4
- dev: true
- /pinkie@2.0.4:
- resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==}
- engines: {node: '>=0.10.0'}
- dev: true
+ pinkie@2.0.4: {}
- /pirates@4.0.6:
- resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
- engines: {node: '>= 6'}
- dev: false
+ pirates@4.0.7: {}
- /pkg-dir@3.0.0:
- resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==}
- engines: {node: '>=6'}
+ pkg-dir@3.0.0:
dependencies:
find-up: 3.0.0
- dev: false
- /pkg-dir@4.2.0:
- resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
- engines: {node: '>=8'}
+ pkg-dir@4.2.0:
dependencies:
find-up: 4.1.0
- /pkg-up@2.0.0:
- resolution: {integrity: sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg==}
- engines: {node: '>=4'}
+ pkg-entry-points@1.1.1: {}
+
+ pkg-up@2.0.0:
dependencies:
find-up: 2.1.0
- /pkg-up@3.1.0:
- resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
- engines: {node: '>=8'}
+ pkg-up@3.1.0:
dependencies:
find-up: 3.0.0
- dev: false
- /portfinder@1.0.32:
- resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
- engines: {node: '>= 0.12.0'}
+ portfinder@1.0.38:
dependencies:
- async: 2.6.4
- debug: 3.2.7
- mkdirp: 0.5.6
+ async: 3.2.6
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
- dev: true
- /posix-character-classes@0.1.1:
- resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
- engines: {node: '>=0.10.0'}
+ posix-character-classes@0.1.1: {}
- /postcss-at-rules-variables@0.3.0(postcss@8.4.35):
- resolution: {integrity: sha512-TmzLAG17XTsRYSqcpk96zXie+oU30Tn0F5f8mgSD3JagIAmhWUH7/3CLxY8XL8BhqiIjGiCSMuolIxwB4TE4NA==}
- engines: {node: '>=10'}
- peerDependencies:
- postcss: ^8.1.10
+ possible-typed-array-names@1.1.0: {}
+
+ postcss-at-rules-variables@0.3.0(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- dev: false
+ postcss: 8.5.15
- /postcss-attribute-case-insensitive@6.0.2(postcss@8.4.35):
- resolution: {integrity: sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-attribute-case-insensitive@6.0.3(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
- /postcss-clamp@4.1.0(postcss@8.4.35):
- resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==}
- engines: {node: '>=7.6.0'}
- peerDependencies:
- postcss: ^8.4.6
+ postcss-clamp@4.1.0(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
- dev: false
- /postcss-color-functional-notation@6.0.4(postcss@8.4.35):
- resolution: {integrity: sha512-YBzfVvVUNR4U3N0imzU1NPKCuwxzfHJkEP6imJxzsJ8LozRKeej9mWmg9Ef1ovJdb0xrGTRVzUxgTrMun5iw/Q==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-color-functional-notation@6.0.14(postcss@8.5.15):
dependencies:
- '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.35)
- postcss: 8.4.35
- dev: false
+ '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
- /postcss-color-hex-alpha@9.0.3(postcss@8.4.35):
- resolution: {integrity: sha512-7sEHU4tAS6htlxun8AB9LDrCXoljxaC34tFVRlYKcvO+18r5fvGiXgv5bQzN40+4gXLCyWSMRK5FK31244WcCA==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-color-hex-alpha@9.0.4(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
- dev: false
- /postcss-color-rebeccapurple@9.0.2(postcss@8.4.35):
- resolution: {integrity: sha512-f+RDEAPW2m8UbJWkSpRfV+QxhSaQhDMihI75DVGJJh4oRIoegjheeRtINFJum9D8BqGJcvD4GLjggTvCwZ4zuA==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-color-rebeccapurple@9.0.3(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
- dev: false
- /postcss-conditionals-renewed@1.0.0(postcss@8.4.35):
- resolution: {integrity: sha512-sK93TxuX+l+GYH/dxe/adXXqDyFW2Z4/8Hkl25aVWCW8+DFMNNRrjzki/hVzvHc3vCXD9QUKe2FKAjbQudLOqA==}
- peerDependencies:
- postcss: ^8
+ postcss-conditionals-renewed@1.0.0(postcss@8.5.15):
dependencies:
css-color-converter: 2.0.0
css-unit-converter: 1.1.2
- postcss: 8.4.35
- dev: false
+ postcss: 8.5.15
- /postcss-custom-media@10.0.2(postcss@8.4.35):
- resolution: {integrity: sha512-zcEFNRmDm2fZvTPdI1pIW3W//UruMcLosmMiCdpQnrCsTRzWlKQPYMa1ud9auL0BmrryKK1+JjIGn19K0UjO/w==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-custom-media@10.0.8(postcss@8.5.15):
dependencies:
- '@csstools/cascade-layer-name-parser': 1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- postcss: 8.4.35
- dev: false
+ '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ postcss: 8.5.15
- /postcss-custom-properties@13.3.4(postcss@8.4.35):
- resolution: {integrity: sha512-9YN0gg9sG3OH+Z9xBrp2PWRb+O4msw+5Sbp3ZgqrblrwKspXVQe5zr5sVqi43gJGwW/Rv1A483PRQUzQOEewvA==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-custom-properties@13.3.12(postcss@8.5.15):
dependencies:
- '@csstools/cascade-layer-name-parser': 1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- postcss: 8.4.35
+ '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
- dev: false
- /postcss-custom-selectors@7.1.6(postcss@8.4.35):
- resolution: {integrity: sha512-svsjWRaxqL3vAzv71dV0/65P24/FB8TbPX+lWyyf9SZ7aZm4S4NhCn7N3Bg+Z5sZunG3FS8xQ80LrCU9hb37cw==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-custom-selectors@7.1.12(postcss@8.5.15):
dependencies:
- '@csstools/cascade-layer-name-parser': 1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
+ '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
- /postcss-dir-pseudo-class@8.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-uULohfWBBVoFiZXgsQA24JV6FdKIidQ+ZqxOouhWwdE+qJlALbkS5ScB43ZTjPK+xUZZhlaO/NjfCt5h4IKUfw==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-dir-pseudo-class@8.0.1(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
- /postcss-double-position-gradients@5.0.3(postcss@8.4.35):
- resolution: {integrity: sha512-QKYpwmaSm6HcdS0ndAuWSNNMv78R1oSySoh3mYBmctHWr2KWcwPJVakdOyU4lvFVW0GRu9wfIQwGeM4p3xU9ow==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-double-position-gradients@5.0.7(postcss@8.5.15):
dependencies:
- '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.35)
- postcss: 8.4.35
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
- dev: false
- /postcss-each@1.1.0(postcss@8.4.35):
- resolution: {integrity: sha512-YfTPHHAPFVRgEJfLg9RM4R9WYEHVU9Rf1R8QgZfnObwV2dgNqzTLzTl0w5tF71ApFcYLiJAXiTpHAoqJFYcZVw==}
- peerDependencies:
- postcss: ^8.0.0
+ postcss-each@1.1.0(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- postcss-simple-vars: 6.0.3(postcss@8.4.35)
- dev: false
+ postcss: 8.5.15
+ postcss-simple-vars: 6.0.3(postcss@8.5.15)
- /postcss-focus-visible@9.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-N2VQ5uPz3Z9ZcqI5tmeholn4d+1H14fKXszpjogZIrFbhaq0zNAtq8sAnw6VLiqGbL8YBzsnu7K9bBkTqaRimQ==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-focus-visible@9.0.1(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
- /postcss-focus-within@8.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-NFU3xcY/xwNaapVb+1uJ4n23XImoC86JNwkY/uduytSl2s9Ekc2EpzmRR63+ExitnW3Mab3Fba/wRPCT5oDILA==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-focus-within@8.0.1(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
- /postcss-font-variant@5.0.0(postcss@8.4.35):
- resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==}
- peerDependencies:
- postcss: ^8.1.0
+ postcss-font-variant@5.0.0(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- dev: false
+ postcss: 8.5.15
- /postcss-gap-properties@5.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-k2z9Cnngc24c0KF4MtMuDdToROYqGMMUQGcE6V0odwjHyOHtaDBlLeRBV70y9/vF7KIbShrTRZ70JjsI1BZyWw==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-gap-properties@5.0.1(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- dev: false
+ postcss: 8.5.15
- /postcss-image-set-function@6.0.2(postcss@8.4.35):
- resolution: {integrity: sha512-/O1xwqpJiz/apxGQi7UUfv1xUcorvkHZfvCYHPpRxxZj2WvjD0rg0+/+c+u5/Do5CpUg3XvfYxMrhcnjW1ArDQ==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-image-set-function@6.0.3(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
- dev: false
- /postcss-import@15.1.0(postcss@8.4.35):
- resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- postcss: ^8.0.0
+ postcss-import@15.1.0(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
read-cache: 1.0.0
- resolve: 1.22.8
- dev: false
+ resolve: 1.22.12
- /postcss-js@4.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
- engines: {node: ^12 || ^14 || >= 16}
- peerDependencies:
- postcss: ^8.4.21
+ postcss-js@4.1.0(postcss@8.5.15):
dependencies:
camelcase-css: 2.0.1
- postcss: 8.4.35
- dev: false
+ postcss: 8.5.15
- /postcss-lab-function@6.0.9(postcss@8.4.35):
- resolution: {integrity: sha512-PKFAVTBEWJYsoSTD7Kp/OzeiMsXaLX39Pv75XgUyF5VrbMfeTw+JqCGsvDP3dPhclh6BemdCFHcjXBG9gO4UCg==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-lab-function@6.0.19(postcss@8.5.15):
dependencies:
- '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.35)
- postcss: 8.4.35
- dev: false
+ '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/utilities': 1.0.0(postcss@8.5.15)
+ postcss: 8.5.15
- /postcss-load-config@4.0.2(postcss@8.4.35):
- resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
- engines: {node: '>= 14'}
- peerDependencies:
- postcss: '>=8.0.9'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- postcss:
- optional: true
- ts-node:
- optional: true
+ postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.15)(yaml@2.9.0):
dependencies:
- lilconfig: 3.1.0
- postcss: 8.4.35
- yaml: 2.3.4
- dev: false
+ lilconfig: 3.1.3
+ optionalDependencies:
+ jiti: 1.21.7
+ postcss: 8.5.15
+ yaml: 2.9.0
- /postcss-logical@7.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-8GwUQZE0ri0K0HJHkDv87XOLC8DE0msc+HoWLeKdtjDZEwpZ5xuK3QdV6FhmHSQW40LPkg43QzvATRAI3LsRkg==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-logical@7.0.1(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
- dev: false
- /postcss-mixins@9.0.4(postcss@8.4.35):
- resolution: {integrity: sha512-XVq5jwQJDRu5M1XGkdpgASqLk37OqkH4JCFDXl/Dn7janOJjCTEKL+36cnRVy7bMtoBzALfO7bV7nTIsFnUWLA==}
- engines: {node: '>=14.0'}
- peerDependencies:
- postcss: ^8.2.14
+ postcss-mixins@9.0.4(postcss@8.5.15):
dependencies:
- fast-glob: 3.3.2
- postcss: 8.4.35
- postcss-js: 4.0.1(postcss@8.4.35)
- postcss-simple-vars: 7.0.1(postcss@8.4.35)
- sugarss: 4.0.1(postcss@8.4.35)
- dev: false
+ fast-glob: 3.3.3
+ postcss: 8.5.15
+ postcss-js: 4.1.0(postcss@8.5.15)
+ postcss-simple-vars: 7.0.1(postcss@8.5.15)
+ sugarss: 4.0.1(postcss@8.5.15)
- /postcss-modules-extract-imports@3.0.0(postcss@8.4.35):
- resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
- engines: {node: ^10 || ^12 || >= 14}
- peerDependencies:
- postcss: ^8.1.0
+ postcss-modules-extract-imports@3.1.0(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
+ postcss: 8.5.15
- /postcss-modules-local-by-default@4.0.4(postcss@8.4.35):
- resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
- engines: {node: ^10 || ^12 || >= 14}
- peerDependencies:
- postcss: ^8.1.0
+ postcss-modules-local-by-default@4.2.0(postcss@8.5.15):
dependencies:
- icss-utils: 5.1.0(postcss@8.4.35)
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
+ icss-utils: 5.1.0(postcss@8.5.15)
+ postcss: 8.5.15
+ postcss-selector-parser: 7.1.1
postcss-value-parser: 4.2.0
- /postcss-modules-scope@3.1.1(postcss@8.4.35):
- resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
- engines: {node: ^10 || ^12 || >= 14}
- peerDependencies:
- postcss: ^8.1.0
+ postcss-modules-scope@3.2.1(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
+ postcss: 8.5.15
+ postcss-selector-parser: 7.1.1
- /postcss-modules-values@4.0.0(postcss@8.4.35):
- resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
- engines: {node: ^10 || ^12 || >= 14}
- peerDependencies:
- postcss: ^8.1.0
+ postcss-modules-values@4.0.0(postcss@8.5.15):
dependencies:
- icss-utils: 5.1.0(postcss@8.4.35)
- postcss: 8.4.35
+ icss-utils: 5.1.0(postcss@8.5.15)
+ postcss: 8.5.15
- /postcss-nested@6.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
- engines: {node: '>=12.0'}
- peerDependencies:
- postcss: ^8.2.14
+ postcss-nested@6.2.0(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
- /postcss-nesting@12.0.2(postcss@8.4.35):
- resolution: {integrity: sha512-63PpJHSeNs93S3ZUIyi+7kKx4JqOIEJ6QYtG3x+0qA4J03+4n0iwsyA1GAHyWxsHYljQS4/4ZK1o2sMi70b5wQ==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-nesting@12.1.5(postcss@8.5.15):
dependencies:
- '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15)
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
+ '@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.1.2)
+ '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2)
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
- /postcss-opacity-percentage@2.0.0(postcss@8.4.35):
- resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.2
+ postcss-opacity-percentage@2.0.0(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- dev: false
+ postcss: 8.5.15
- /postcss-overflow-shorthand@5.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-XzjBYKLd1t6vHsaokMV9URBt2EwC9a7nDhpQpjoPk2HRTSQfokPfyAS/Q7AOrzUu6q+vp/GnrDBGuj/FCaRqrQ==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-overflow-shorthand@5.0.1(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
- dev: false
- /postcss-page-break@3.0.4(postcss@8.4.35):
- resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==}
- peerDependencies:
- postcss: ^8
+ postcss-page-break@3.0.4(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- dev: false
+ postcss: 8.5.15
- /postcss-place@9.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-JfL+paQOgRQRMoYFc2f73pGuG/Aw3tt4vYMR6UA3cWVMxivviPTnMFnFTczUJOA4K2Zga6xgQVE+PcLs64WC8Q==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-place@9.0.1(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
- dev: false
- /postcss-preset-env@9.3.0(postcss@8.4.35):
- resolution: {integrity: sha512-ycw6doPrqV6QxDCtgiyGDef61bEfiSc59HGM4gOw/wxQxmKnhuEery61oOC/5ViENz/ycpRsuhTexs1kUBTvVw==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-preset-env@9.6.0(postcss@8.5.15):
+ dependencies:
+ '@csstools/postcss-cascade-layers': 4.0.6(postcss@8.5.15)
+ '@csstools/postcss-color-function': 3.0.19(postcss@8.5.15)
+ '@csstools/postcss-color-mix-function': 2.0.19(postcss@8.5.15)
+ '@csstools/postcss-content-alt-text': 1.0.0(postcss@8.5.15)
+ '@csstools/postcss-exponential-functions': 1.0.9(postcss@8.5.15)
+ '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.5.15)
+ '@csstools/postcss-gamut-mapping': 1.0.11(postcss@8.5.15)
+ '@csstools/postcss-gradients-interpolation-method': 4.0.20(postcss@8.5.15)
+ '@csstools/postcss-hwb-function': 3.0.18(postcss@8.5.15)
+ '@csstools/postcss-ic-unit': 3.0.7(postcss@8.5.15)
+ '@csstools/postcss-initial': 1.0.1(postcss@8.5.15)
+ '@csstools/postcss-is-pseudo-class': 4.0.8(postcss@8.5.15)
+ '@csstools/postcss-light-dark-function': 1.0.8(postcss@8.5.15)
+ '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.5.15)
+ '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.5.15)
+ '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.5.15)
+ '@csstools/postcss-logical-resize': 2.0.1(postcss@8.5.15)
+ '@csstools/postcss-logical-viewport-units': 2.0.11(postcss@8.5.15)
+ '@csstools/postcss-media-minmax': 1.1.8(postcss@8.5.15)
+ '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.11(postcss@8.5.15)
+ '@csstools/postcss-nested-calc': 3.0.2(postcss@8.5.15)
+ '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.5.15)
+ '@csstools/postcss-oklab-function': 3.0.19(postcss@8.5.15)
+ '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.5.15)
+ '@csstools/postcss-relative-color-syntax': 2.0.19(postcss@8.5.15)
+ '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.5.15)
+ '@csstools/postcss-stepped-value-functions': 3.0.10(postcss@8.5.15)
+ '@csstools/postcss-text-decoration-shorthand': 3.0.7(postcss@8.5.15)
+ '@csstools/postcss-trigonometric-functions': 3.0.10(postcss@8.5.15)
+ '@csstools/postcss-unset-value': 3.0.1(postcss@8.5.15)
+ autoprefixer: 10.5.0(postcss@8.5.15)
+ browserslist: 4.28.2
+ css-blank-pseudo: 6.0.2(postcss@8.5.15)
+ css-has-pseudo: 6.0.5(postcss@8.5.15)
+ css-prefers-color-scheme: 9.0.1(postcss@8.5.15)
+ cssdb: 8.9.0
+ postcss: 8.5.15
+ postcss-attribute-case-insensitive: 6.0.3(postcss@8.5.15)
+ postcss-clamp: 4.1.0(postcss@8.5.15)
+ postcss-color-functional-notation: 6.0.14(postcss@8.5.15)
+ postcss-color-hex-alpha: 9.0.4(postcss@8.5.15)
+ postcss-color-rebeccapurple: 9.0.3(postcss@8.5.15)
+ postcss-custom-media: 10.0.8(postcss@8.5.15)
+ postcss-custom-properties: 13.3.12(postcss@8.5.15)
+ postcss-custom-selectors: 7.1.12(postcss@8.5.15)
+ postcss-dir-pseudo-class: 8.0.1(postcss@8.5.15)
+ postcss-double-position-gradients: 5.0.7(postcss@8.5.15)
+ postcss-focus-visible: 9.0.1(postcss@8.5.15)
+ postcss-focus-within: 8.0.1(postcss@8.5.15)
+ postcss-font-variant: 5.0.0(postcss@8.5.15)
+ postcss-gap-properties: 5.0.1(postcss@8.5.15)
+ postcss-image-set-function: 6.0.3(postcss@8.5.15)
+ postcss-lab-function: 6.0.19(postcss@8.5.15)
+ postcss-logical: 7.0.1(postcss@8.5.15)
+ postcss-nesting: 12.1.5(postcss@8.5.15)
+ postcss-opacity-percentage: 2.0.0(postcss@8.5.15)
+ postcss-overflow-shorthand: 5.0.1(postcss@8.5.15)
+ postcss-page-break: 3.0.4(postcss@8.5.15)
+ postcss-place: 9.0.1(postcss@8.5.15)
+ postcss-pseudo-class-any-link: 9.0.2(postcss@8.5.15)
+ postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.15)
+ postcss-selector-not: 7.0.2(postcss@8.5.15)
+
+ postcss-pseudo-class-any-link@9.0.2(postcss@8.5.15):
+ dependencies:
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
+
+ postcss-replace-overflow-wrap@4.0.0(postcss@8.5.15):
+ dependencies:
+ postcss: 8.5.15
+
+ postcss-resolve-nested-selector@0.1.6: {}
+
+ postcss-safe-parser@6.0.0(postcss@8.5.15):
+ dependencies:
+ postcss: 8.5.15
+
+ postcss-selector-not@7.0.2(postcss@8.5.15):
+ dependencies:
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.2
+
+ postcss-selector-parser@6.1.2:
dependencies:
- '@csstools/postcss-cascade-layers': 4.0.2(postcss@8.4.35)
- '@csstools/postcss-color-function': 3.0.9(postcss@8.4.35)
- '@csstools/postcss-color-mix-function': 2.0.9(postcss@8.4.35)
- '@csstools/postcss-exponential-functions': 1.0.3(postcss@8.4.35)
- '@csstools/postcss-font-format-keywords': 3.0.1(postcss@8.4.35)
- '@csstools/postcss-gamut-mapping': 1.0.2(postcss@8.4.35)
- '@csstools/postcss-gradients-interpolation-method': 4.0.9(postcss@8.4.35)
- '@csstools/postcss-hwb-function': 3.0.8(postcss@8.4.35)
- '@csstools/postcss-ic-unit': 3.0.3(postcss@8.4.35)
- '@csstools/postcss-initial': 1.0.1(postcss@8.4.35)
- '@csstools/postcss-is-pseudo-class': 4.0.4(postcss@8.4.35)
- '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.35)
- '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.35)
- '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.35)
- '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.35)
- '@csstools/postcss-logical-viewport-units': 2.0.5(postcss@8.4.35)
- '@csstools/postcss-media-minmax': 1.1.2(postcss@8.4.35)
- '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.5(postcss@8.4.35)
- '@csstools/postcss-nested-calc': 3.0.1(postcss@8.4.35)
- '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.35)
- '@csstools/postcss-oklab-function': 3.0.9(postcss@8.4.35)
- '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.35)
- '@csstools/postcss-relative-color-syntax': 2.0.9(postcss@8.4.35)
- '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.35)
- '@csstools/postcss-stepped-value-functions': 3.0.4(postcss@8.4.35)
- '@csstools/postcss-text-decoration-shorthand': 3.0.4(postcss@8.4.35)
- '@csstools/postcss-trigonometric-functions': 3.0.4(postcss@8.4.35)
- '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.35)
- autoprefixer: 10.4.17(postcss@8.4.35)
- browserslist: 4.23.0
- css-blank-pseudo: 6.0.1(postcss@8.4.35)
- css-has-pseudo: 6.0.1(postcss@8.4.35)
- css-prefers-color-scheme: 9.0.1(postcss@8.4.35)
- cssdb: 7.11.0
- postcss: 8.4.35
- postcss-attribute-case-insensitive: 6.0.2(postcss@8.4.35)
- postcss-clamp: 4.1.0(postcss@8.4.35)
- postcss-color-functional-notation: 6.0.4(postcss@8.4.35)
- postcss-color-hex-alpha: 9.0.3(postcss@8.4.35)
- postcss-color-rebeccapurple: 9.0.2(postcss@8.4.35)
- postcss-custom-media: 10.0.2(postcss@8.4.35)
- postcss-custom-properties: 13.3.4(postcss@8.4.35)
- postcss-custom-selectors: 7.1.6(postcss@8.4.35)
- postcss-dir-pseudo-class: 8.0.1(postcss@8.4.35)
- postcss-double-position-gradients: 5.0.3(postcss@8.4.35)
- postcss-focus-visible: 9.0.1(postcss@8.4.35)
- postcss-focus-within: 8.0.1(postcss@8.4.35)
- postcss-font-variant: 5.0.0(postcss@8.4.35)
- postcss-gap-properties: 5.0.1(postcss@8.4.35)
- postcss-image-set-function: 6.0.2(postcss@8.4.35)
- postcss-lab-function: 6.0.9(postcss@8.4.35)
- postcss-logical: 7.0.1(postcss@8.4.35)
- postcss-nesting: 12.0.2(postcss@8.4.35)
- postcss-opacity-percentage: 2.0.0(postcss@8.4.35)
- postcss-overflow-shorthand: 5.0.1(postcss@8.4.35)
- postcss-page-break: 3.0.4(postcss@8.4.35)
- postcss-place: 9.0.1(postcss@8.4.35)
- postcss-pseudo-class-any-link: 9.0.1(postcss@8.4.35)
- postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.35)
- postcss-selector-not: 7.0.1(postcss@8.4.35)
- postcss-value-parser: 4.2.0
- dev: false
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
- /postcss-pseudo-class-any-link@9.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-cKYGGZ9yzUZi+dZd7XT2M8iSDfo+T2Ctbpiizf89uBTBfIpZpjvTavzIJXpCReMVXSKROqzpxClNu6fz4DHM0Q==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ postcss-selector-parser@7.1.1:
dependencies:
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
- /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.35):
- resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==}
- peerDependencies:
- postcss: ^8.0.3
+ postcss-simple-vars@6.0.3(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- dev: false
+ postcss: 8.5.15
- /postcss-resolve-nested-selector@0.1.1:
- resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==}
- dev: true
+ postcss-simple-vars@7.0.1(postcss@8.5.15):
+ dependencies:
+ postcss: 8.5.15
- /postcss-safe-parser@6.0.0(postcss@8.4.35):
- resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
- engines: {node: '>=12.0'}
- peerDependencies:
- postcss: ^8.3.3
+ postcss-value-parser@4.2.0: {}
+
+ postcss@8.5.15:
dependencies:
- postcss: 8.4.35
- dev: true
+ nanoid: 3.3.12
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
- /postcss-selector-not@7.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-1zT5C27b/zeJhchN7fP0kBr16Cc61mu7Si9uWWLoA3Px/D9tIJPKchJCkUH3tPO5D0pCFmGeApAv8XpXBQJ8SQ==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.4
+ preact@10.12.1: {}
+
+ prelude-ls@1.2.1: {}
+
+ prepend-http@2.0.0: {}
+
+ prettier-linter-helpers@1.0.1:
dependencies:
- postcss: 8.4.35
- postcss-selector-parser: 6.0.15
- dev: false
+ fast-diff: 1.3.0
- /postcss-selector-parser@6.0.15:
- resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
- engines: {node: '>=4'}
+ prettier@2.8.8: {}
+
+ prettier@3.8.3: {}
+
+ pretty-ms@9.3.0:
dependencies:
- cssesc: 3.0.0
- util-deprecate: 1.0.2
+ parse-ms: 4.0.0
- /postcss-simple-vars@6.0.3(postcss@8.4.35):
- resolution: {integrity: sha512-fkNn4Zio8vN4vIig9IFdb8lVlxWnYR769RgvxCM6YWlFKie/nQaOcaMMMFz/s4gsfHW4/5bJW+i57zD67mQU7g==}
- engines: {node: '>=10.0'}
- peerDependencies:
- postcss: ^8.2.1
+ printf@0.6.1: {}
+
+ private@0.1.8: {}
+
+ proc-log@3.0.0: {}
+
+ proc-log@6.1.0: {}
+
+ process-nextick-args@2.0.1: {}
+
+ process-relative-require@1.0.0:
dependencies:
- postcss: 8.4.35
- dev: false
+ node-modules-path: 1.0.2
- /postcss-simple-vars@7.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==}
- engines: {node: '>=14.0'}
- peerDependencies:
- postcss: ^8.2.1
+ process@0.11.10: {}
+
+ promise-inflight@1.0.1(bluebird@3.7.2):
+ optionalDependencies:
+ bluebird: 3.7.2
+
+ promise-map-series@0.2.3:
dependencies:
- postcss: 8.4.35
- dev: false
+ rsvp: 3.6.2
- /postcss-value-parser@4.2.0:
- resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+ promise-map-series@0.3.0: {}
- /postcss@8.4.35:
- resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
- engines: {node: ^10 || ^12 || >=14}
+ promise.hash.helper@1.0.8: {}
+
+ proper-lockfile@4.1.2:
dependencies:
- nanoid: 3.3.7
- picocolors: 1.0.0
- source-map-js: 1.0.2
+ graceful-fs: 4.2.11
+ retry: 0.12.0
+ signal-exit: 3.0.7
- /preact@10.12.1:
- resolution: {integrity: sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==}
- dev: false
+ prosemirror-changeset@2.4.1:
+ dependencies:
+ prosemirror-transform: 1.12.0
- /prelude-ls@1.2.1:
- resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
- engines: {node: '>= 0.8.0'}
- dev: true
+ prosemirror-collab@1.3.1:
+ dependencies:
+ prosemirror-state: 1.4.4
- /prepend-http@2.0.0:
- resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==}
- engines: {node: '>=4'}
- dev: true
+ prosemirror-commands@1.7.1:
+ dependencies:
+ prosemirror-model: 1.25.7
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+
+ prosemirror-dropcursor@1.8.2:
+ dependencies:
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+ prosemirror-view: 1.41.8
- /prettier-linter-helpers@1.0.0:
- resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
- engines: {node: '>=6.0.0'}
+ prosemirror-gapcursor@1.4.1:
dependencies:
- fast-diff: 1.3.0
- dev: true
+ prosemirror-keymap: 1.2.3
+ prosemirror-model: 1.25.7
+ prosemirror-state: 1.4.4
+ prosemirror-view: 1.41.8
- /prettier@2.8.8:
- resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
- engines: {node: '>=10.13.0'}
- hasBin: true
+ prosemirror-history@1.5.0:
+ dependencies:
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+ prosemirror-view: 1.41.8
+ rope-sequence: 1.3.4
- /prettier@3.0.3:
- resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==}
- engines: {node: '>=14'}
- hasBin: true
- dev: true
+ prosemirror-inputrules@1.5.1:
+ dependencies:
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
- /printf@0.6.1:
- resolution: {integrity: sha512-is0ctgGdPJ5951KulgfzvHGwJtZ5ck8l042vRkV6jrkpBzTmb/lueTqguWHy2JfVA+RY6gFVlaZgUS0j7S/dsw==}
- engines: {node: '>= 0.9.0'}
- dev: true
+ prosemirror-keymap@1.2.3:
+ dependencies:
+ prosemirror-state: 1.4.4
+ w3c-keyname: 2.2.8
- /private@0.1.8:
- resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==}
- engines: {node: '>= 0.6'}
+ prosemirror-markdown@1.13.4:
+ dependencies:
+ '@types/markdown-it': 14.1.2
+ markdown-it: 14.2.0
+ prosemirror-model: 1.25.7
- /proc-log@3.0.0:
- resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- dev: true
+ prosemirror-menu@1.3.2:
+ dependencies:
+ crelt: 1.0.6
+ prosemirror-commands: 1.7.1
+ prosemirror-history: 1.5.0
+ prosemirror-state: 1.4.4
- /process-nextick-args@2.0.1:
- resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
- dev: false
+ prosemirror-model@1.25.7:
+ dependencies:
+ orderedmap: 2.1.1
- /process-relative-require@1.0.0:
- resolution: {integrity: sha512-r8G5WJPozMJAiv8sDdVWKgJ4In/zBXqwJdMCGAXQt2Kd3HdbAuJVzWYM4JW150hWoaI9DjhtbjcsCCHIMxm8RA==}
+ prosemirror-schema-basic@1.2.4:
dependencies:
- node-modules-path: 1.0.2
- dev: true
+ prosemirror-model: 1.25.7
- /process@0.11.10:
- resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
- engines: {node: '>= 0.6.0'}
- dev: false
+ prosemirror-schema-list@1.5.1:
+ dependencies:
+ prosemirror-model: 1.25.7
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
- /promise-inflight@1.0.1(bluebird@3.7.2):
- resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
- peerDependencies:
- bluebird: '*'
- peerDependenciesMeta:
- bluebird:
- optional: true
+ prosemirror-state@1.4.4:
dependencies:
- bluebird: 3.7.2
- dev: false
+ prosemirror-model: 1.25.7
+ prosemirror-transform: 1.12.0
+ prosemirror-view: 1.41.8
- /promise-map-series@0.2.3:
- resolution: {integrity: sha512-wx9Chrutvqu1N/NHzTayZjE1BgIwt6SJykQoCOic4IZ9yUDjKyVYrpLa/4YCNsV61eRENfs29hrEquVuB13Zlw==}
+ prosemirror-tables@1.8.5:
dependencies:
- rsvp: 3.6.2
+ prosemirror-keymap: 1.2.3
+ prosemirror-model: 1.25.7
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+ prosemirror-view: 1.41.8
- /promise-map-series@0.3.0:
- resolution: {integrity: sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA==}
- engines: {node: 10.* || >= 12.*}
+ prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.7)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8):
+ dependencies:
+ '@remirror/core-constants': 3.0.0
+ escape-string-regexp: 4.0.0
+ prosemirror-model: 1.25.7
+ prosemirror-state: 1.4.4
+ prosemirror-view: 1.41.8
- /promise.hash.helper@1.0.8:
- resolution: {integrity: sha512-KYcnXctWUWyVD3W3Ye0ZDuA1N8Szrh85cVCxpG6xYrOk/0CttRtYCmU30nWsUch0NuExQQ63QXvzRE6FLimZmg==}
- engines: {node: 10.* || >= 12.*}
- dev: true
+ prosemirror-transform@1.12.0:
+ dependencies:
+ prosemirror-model: 1.25.7
- /proper-lockfile@4.1.2:
- resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
+ prosemirror-view@1.41.8:
dependencies:
- graceful-fs: 4.2.11
- retry: 0.12.0
- signal-exit: 3.0.7
- dev: true
+ prosemirror-model: 1.25.7
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
- /proxy-addr@2.0.7:
- resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
- engines: {node: '>= 0.10'}
+ proxy-addr@2.0.7:
dependencies:
forwarded: 0.2.0
ipaddr.js: 1.9.1
- dev: true
- /prr@1.0.1:
- resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
- dev: false
+ prr@1.0.1: {}
- /public-encrypt@4.0.3:
- resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==}
+ public-encrypt@4.0.3:
dependencies:
- bn.js: 4.12.0
- browserify-rsa: 4.1.0
+ bn.js: 4.12.3
+ browserify-rsa: 4.1.1
create-hash: 1.2.0
- parse-asn1: 5.1.6
+ parse-asn1: 5.1.9
randombytes: 2.1.0
safe-buffer: 5.2.1
- dev: false
- /pump@2.0.1:
- resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==}
+ pump@2.0.1:
dependencies:
- end-of-stream: 1.4.4
+ end-of-stream: 1.4.5
once: 1.4.0
- dev: false
- /pump@3.0.0:
- resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
+ pump@3.0.4:
dependencies:
- end-of-stream: 1.4.4
+ end-of-stream: 1.4.5
once: 1.4.0
- /pumpify@1.5.1:
- resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==}
+ pumpify@1.5.1:
dependencies:
duplexify: 3.7.1
inherits: 2.0.4
pump: 2.0.1
- dev: false
- /punycode@1.4.1:
- resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
- dev: false
+ punycode.js@2.3.1: {}
- /punycode@2.3.1:
- resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
- engines: {node: '>=6'}
+ punycode@1.4.1: {}
- /qs@6.11.0:
- resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
- engines: {node: '>=0.6'}
- dependencies:
- side-channel: 1.0.5
- dev: true
+ punycode@2.3.1: {}
- /qs@6.11.2:
- resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==}
- engines: {node: '>=0.6'}
+ qs@6.15.2:
dependencies:
- side-channel: 1.0.5
+ side-channel: 1.1.0
- /querystring-es3@0.2.1:
- resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==}
- engines: {node: '>=0.4.x'}
- dev: false
+ querystring-es3@0.2.1: {}
- /queue-microtask@1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ queue-microtask@1.2.3: {}
- /quick-lru@5.1.1:
- resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
- engines: {node: '>=10'}
- dev: true
+ quick-lru@5.1.1: {}
- /quick-temp@0.1.8:
- resolution: {integrity: sha512-YsmIFfD9j2zaFwJkzI6eMG7y0lQP7YeWzgtFgNl38pGWZBSXJooZbOWwkcRot7Vt0Fg9L23pX0tqWU3VvLDsiA==}
+ quick-temp@0.1.9:
dependencies:
- mktemp: 0.4.0
- rimraf: 2.7.1
+ mktemp: 2.0.3
+ rimraf: 5.0.10
underscore.string: 3.3.6
- /qunit-dom@2.0.0:
- resolution: {integrity: sha512-mElzLN99wYPOGekahqRA+mq7NcThXY9c+/tDkgJmT7W5LeZAFNyITr2rFKNnCbWLIhuLdFw88kCBMrJSfyBYpA==}
- engines: {node: 12.* || 14.* || >= 16.*}
+ qunit-dom@2.0.0:
dependencies:
broccoli-funnel: 3.0.8
broccoli-merge-trees: 4.2.0
@@ -13031,98 +17911,77 @@ packages:
ember-cli-version-checker: 5.1.2
transitivePeerDependencies:
- supports-color
- dev: true
- /qunit@2.20.0:
- resolution: {integrity: sha512-N8Fp1J55waE+QG1KwX2LOyqulZUToRrrPBqDOfYfuAMkEglFL15uwvmH1P4Tq/omQ/mGbBI8PEB3PhIfvUb+jg==}
- engines: {node: '>=10'}
- hasBin: true
+ qunit-theme-ember@1.0.0: {}
+
+ qunit@2.26.0:
dependencies:
commander: 7.2.0
node-watch: 0.7.3
tiny-glob: 0.2.9
- dev: true
- /randombytes@2.1.0:
- resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+ randombytes@2.1.0:
dependencies:
safe-buffer: 5.2.1
- /randomfill@1.0.4:
- resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==}
+ randomfill@1.0.4:
dependencies:
randombytes: 2.1.0
safe-buffer: 5.2.1
- dev: false
- /range-parser@1.2.1:
- resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
- engines: {node: '>= 0.6'}
- dev: true
+ range-parser@1.2.1: {}
- /raw-body@1.1.7:
- resolution: {integrity: sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==}
- engines: {node: '>= 0.8.0'}
+ raw-body@1.1.7:
dependencies:
bytes: 1.0.0
string_decoder: 0.10.31
- dev: true
- /raw-body@2.5.1:
- resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==}
- engines: {node: '>= 0.8'}
+ raw-body@2.5.3:
dependencies:
bytes: 3.1.2
- http-errors: 2.0.0
+ http-errors: 2.0.1
iconv-lite: 0.4.24
unpipe: 1.0.0
- dev: true
- /rc@1.2.8:
- resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
- hasBin: true
+ raw-body@3.0.2:
+ dependencies:
+ bytes: 3.1.2
+ http-errors: 2.0.1
+ iconv-lite: 0.7.2
+ unpipe: 1.0.0
+
+ rc@1.2.8:
dependencies:
deep-extend: 0.6.0
ini: 1.3.8
minimist: 1.2.8
strip-json-comments: 2.0.1
- dev: true
- /read-cache@1.0.0:
- resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+ read-cache@1.0.0:
dependencies:
pify: 2.3.0
- dev: false
- /read-pkg-up@8.0.0:
- resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
- engines: {node: '>=12'}
+ read-pkg-up@8.0.0:
dependencies:
find-up: 5.0.0
read-pkg: 6.0.0
type-fest: 1.4.0
- dev: true
- /read-pkg@6.0.0:
- resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
- engines: {node: '>=12'}
+ read-pkg@6.0.0:
dependencies:
'@types/normalize-package-data': 2.4.4
normalize-package-data: 3.0.3
parse-json: 5.2.0
type-fest: 1.4.0
- dev: true
- /readable-stream@1.0.34:
- resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==}
+ readable-stream@1.0.34:
dependencies:
core-util-is: 1.0.3
inherits: 2.0.4
isarray: 0.0.1
string_decoder: 0.10.31
- /readable-stream@2.3.8:
- resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+ readable-stream@2.3.8:
dependencies:
core-util-is: 1.0.3
inherits: 2.0.4
@@ -13131,478 +17990,317 @@ packages:
safe-buffer: 5.1.2
string_decoder: 1.1.1
util-deprecate: 1.0.2
- dev: false
- /readable-stream@3.6.2:
- resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
- engines: {node: '>= 6'}
+ readable-stream@3.6.2:
dependencies:
inherits: 2.0.4
string_decoder: 1.3.0
util-deprecate: 1.0.2
- /readdirp@2.2.1:
- resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==}
- engines: {node: '>=0.10'}
+ readdirp@2.2.1:
dependencies:
graceful-fs: 4.2.11
micromatch: 3.1.10
readable-stream: 2.3.8
transitivePeerDependencies:
- supports-color
- dev: false
optional: true
- /readdirp@3.6.0:
- resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
- engines: {node: '>=8.10.0'}
+ readdirp@3.6.0:
dependencies:
- picomatch: 2.3.1
- dev: false
+ picomatch: 2.3.2
- /recast@0.18.10:
- resolution: {integrity: sha512-XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==}
- engines: {node: '>= 4'}
+ readdirp@5.0.0: {}
+
+ recast@0.18.10:
dependencies:
ast-types: 0.13.3
esprima: 4.0.1
private: 0.1.8
source-map: 0.6.1
- /redent@4.0.0:
- resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
- engines: {node: '>=12'}
+ redent@4.0.0:
dependencies:
indent-string: 5.0.0
- strip-indent: 4.0.0
- dev: true
+ strip-indent: 4.1.1
- /redeyed@1.0.1:
- resolution: {integrity: sha512-8eEWsNCkV2rvwKLS1Cvp5agNjMhwRe2um+y32B2+3LqOzg4C9BBPs6vzAfV16Ivb8B9HPNKIqd8OrdBws8kNlQ==}
+ redeyed@1.0.1:
dependencies:
esprima: 3.0.0
- dev: true
- /regenerate-unicode-properties@10.1.1:
- resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
- engines: {node: '>=4'}
+ reflect.getprototypeof@1.0.10:
dependencies:
- regenerate: 1.4.2
-
- /regenerate@1.4.2:
- resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+ call-bind: 1.0.9
+ define-properties: 1.2.1
+ es-abstract: 1.24.2
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.2
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ which-builtin-type: 1.2.1
- /regenerator-runtime@0.11.1:
- resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==}
- dev: false
+ regenerate-unicode-properties@10.2.2:
+ dependencies:
+ regenerate: 1.4.2
- /regenerator-runtime@0.13.11:
- resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
+ regenerate@1.4.2: {}
- /regenerator-runtime@0.14.1:
- resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+ regenerator-runtime@0.11.1: {}
- /regenerator-transform@0.15.2:
- resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
- dependencies:
- '@babel/runtime': 7.23.9
+ regenerator-runtime@0.13.11: {}
- /regex-not@1.0.2:
- resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
- engines: {node: '>=0.10.0'}
+ regex-not@1.0.2:
dependencies:
extend-shallow: 3.0.2
safe-regex: 1.1.0
- /regexp.prototype.flags@1.5.2:
- resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
- engines: {node: '>= 0.4'}
+ regexp.prototype.flags@1.5.4:
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.9
define-properties: 1.2.1
es-errors: 1.3.0
- set-function-name: 2.0.1
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ set-function-name: 2.0.2
- /regexpu-core@5.3.2:
- resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
- engines: {node: '>=4'}
+ regexpu-core@6.4.0:
dependencies:
- '@babel/regjsgen': 0.8.0
regenerate: 1.4.2
- regenerate-unicode-properties: 10.1.1
- regjsparser: 0.9.1
+ regenerate-unicode-properties: 10.2.2
+ regjsgen: 0.8.0
+ regjsparser: 0.13.1
unicode-match-property-ecmascript: 2.0.0
- unicode-match-property-value-ecmascript: 2.1.0
+ unicode-match-property-value-ecmascript: 2.2.1
- /registry-auth-token@4.2.2:
- resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==}
- engines: {node: '>=6.0.0'}
+ registry-auth-token@4.2.2:
dependencies:
rc: 1.2.8
- dev: true
- /registry-url@5.1.0:
- resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==}
- engines: {node: '>=8'}
+ registry-url@5.1.0:
dependencies:
rc: 1.2.8
- dev: true
- /regjsparser@0.9.1:
- resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
- hasBin: true
+ regjsgen@0.8.0: {}
+
+ regjsparser@0.13.1:
dependencies:
- jsesc: 0.5.0
+ jsesc: 3.1.0
- /remote-git-tags@3.0.0:
- resolution: {integrity: sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==}
- engines: {node: '>=8'}
- dev: true
+ remote-git-tags@3.0.0: {}
- /remove-trailing-separator@1.1.0:
- resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
+ remote-promises@1.0.0: {}
- /remove-types@1.0.0:
- resolution: {integrity: sha512-G7Hk1Q+UJ5DvlNAoJZObxANkBZGiGdp589rVcTW/tYqJWJ5rwfraSnKSQaETN8Epaytw8J40nS/zC7bcHGv36w==}
+ remove-trailing-separator@1.1.0: {}
+
+ remove-types@1.0.0:
dependencies:
- '@babel/core': 7.23.2
- '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.2)
- '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.2)
+ '@babel/core': 7.29.7
+ '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7)
prettier: 2.8.8
transitivePeerDependencies:
- supports-color
- /repeat-element@1.1.4:
- resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
- engines: {node: '>=0.10.0'}
+ repeat-element@1.1.4: {}
- /repeat-string@1.6.1:
- resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
- engines: {node: '>=0.10'}
+ repeat-string@1.6.1: {}
- /repeating@2.0.1:
- resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==}
- engines: {node: '>=0.10.0'}
+ repeating@2.0.1:
dependencies:
is-finite: 1.1.0
- dev: false
- /require-directory@2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
- dev: true
+ require-directory@2.1.1: {}
- /require-from-string@2.0.2:
- resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
- engines: {node: '>=0.10.0'}
+ require-from-string@2.0.2: {}
- /requireindex@1.2.0:
- resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==}
- engines: {node: '>=0.10.5'}
- dev: true
+ requireindex@1.2.0: {}
- /requires-port@1.0.0:
- resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
- dev: true
+ requires-port@1.0.0: {}
- /reselect@3.0.1:
- resolution: {integrity: sha512-b/6tFZCmRhtBMa4xGqiiRp9jh9Aqi2A687Lo265cN0/QohJQEBPiQ52f4QB6i0eF3yp3hmLL21LSGBcML2dlxA==}
+ reselect@3.0.1: {}
- /reselect@4.1.8:
- resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==}
- dev: false
+ reselect@4.1.8: {}
- /resolve-dir@1.0.1:
- resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==}
- engines: {node: '>=0.10.0'}
+ resolve-dir@1.0.1:
dependencies:
expand-tilde: 2.0.2
global-modules: 1.0.0
- dev: true
- /resolve-from@4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- engines: {node: '>=4'}
- dev: true
+ resolve-from@4.0.0: {}
- /resolve-from@5.0.0:
- resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
- engines: {node: '>=8'}
- dev: true
+ resolve-from@5.0.0: {}
- /resolve-package-path@1.2.7:
- resolution: {integrity: sha512-fVEKHGeK85bGbVFuwO9o1aU0n3vqQGrezPc51JGu9UTXpFQfWq5qCeKxyaRUSvephs+06c5j5rPq/dzHGEo8+Q==}
+ resolve-package-path@1.2.7:
dependencies:
path-root: 0.1.1
- resolve: 1.22.8
+ resolve: 1.22.12
- /resolve-package-path@2.0.0:
- resolution: {integrity: sha512-/CLuzodHO2wyyHTzls5Qr+EFeG6RcW4u6//gjYvUfcfyuplIX1SSccU+A5A9A78Gmezkl3NBkFAMxLbzTY9TJA==}
- engines: {node: 8.* || 10.* || >= 12}
+ resolve-package-path@2.0.0:
dependencies:
path-root: 0.1.1
- resolve: 1.22.8
+ resolve: 1.22.12
- /resolve-package-path@3.1.0:
- resolution: {integrity: sha512-2oC2EjWbMJwvSN6Z7DbDfJMnD8MYEouaLn5eIX0j8XwPsYCVIyY9bbnX88YHVkbr8XHqvZrYbxaLPibfTYKZMA==}
- engines: {node: 10.* || >= 12}
+ resolve-package-path@3.1.0:
dependencies:
path-root: 0.1.1
- resolve: 1.22.8
+ resolve: 1.22.12
- /resolve-package-path@4.0.3:
- resolution: {integrity: sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA==}
- engines: {node: '>= 12'}
+ resolve-package-path@4.0.3:
dependencies:
path-root: 0.1.1
- /resolve-path@1.4.0:
- resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==}
- engines: {node: '>= 0.8'}
+ resolve-path@1.4.0:
dependencies:
http-errors: 1.6.3
path-is-absolute: 1.0.1
- dev: true
- /resolve-pkg-maps@1.0.0:
- resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
- dev: true
+ resolve-pkg-maps@1.0.0: {}
- /resolve-url@0.2.1:
- resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
- deprecated: https://github.com/lydell/resolve-url#deprecated
+ resolve-url@0.2.1: {}
- /resolve@1.22.8:
- resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
- hasBin: true
+ resolve.exports@2.0.3: {}
+
+ resolve@1.22.12:
dependencies:
- is-core-module: 2.13.1
+ es-errors: 1.3.0
+ is-core-module: 2.16.2
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
- /responselike@1.0.2:
- resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==}
+ responselike@1.0.2:
dependencies:
lowercase-keys: 1.0.1
- dev: true
- /restore-cursor@2.0.0:
- resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==}
- engines: {node: '>=4'}
+ restore-cursor@2.0.0:
dependencies:
onetime: 2.0.1
signal-exit: 3.0.7
- dev: true
- /restore-cursor@3.1.0:
- resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
- engines: {node: '>=8'}
+ restore-cursor@3.1.0:
dependencies:
onetime: 5.1.2
signal-exit: 3.0.7
- dev: true
- /ret@0.1.15:
- resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
- engines: {node: '>=0.12'}
+ ret@0.1.15: {}
- /retry@0.12.0:
- resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
- engines: {node: '>= 4'}
- dev: true
+ retry@0.12.0: {}
- /reusify@1.0.4:
- resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
- engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ reusify@1.1.0: {}
- /rimraf@2.6.3:
- resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==}
- hasBin: true
+ rimraf@2.6.3:
dependencies:
glob: 7.2.3
- dev: true
- /rimraf@2.7.1:
- resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
- hasBin: true
+ rimraf@2.7.1:
dependencies:
glob: 7.2.3
- /rimraf@3.0.2:
- resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
- hasBin: true
+ rimraf@3.0.2:
dependencies:
glob: 7.2.3
- /ripemd160@2.0.2:
- resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==}
+ rimraf@5.0.10:
dependencies:
- hash-base: 3.1.0
- inherits: 2.0.4
- dev: false
+ glob: 10.5.0
- /rollup-plugin-node-resolve@5.2.0(rollup@4.12.0):
- resolution: {integrity: sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==}
- deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-node-resolve.
- peerDependencies:
- rollup: '>=1.11.0'
+ rimraf@6.1.3:
dependencies:
- '@types/resolve': 0.0.8
- builtin-modules: 3.3.0
- is-module: 1.0.0
- resolve: 1.22.8
- rollup: 4.12.0
- rollup-pluginutils: 2.8.2
- dev: false
+ glob: 13.0.6
+ package-json-from-dist: 1.0.1
- /rollup-pluginutils@2.8.2:
- resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==}
+ ripemd160@2.0.3:
dependencies:
- estree-walker: 0.6.1
+ hash-base: 3.1.2
+ inherits: 2.0.4
- /rollup@1.32.1:
- resolution: {integrity: sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==}
- hasBin: true
+ rollup-pluginutils@2.8.2:
dependencies:
- '@types/estree': 1.0.5
- '@types/node': 20.11.19
- acorn: 7.4.1
- dev: false
+ estree-walker: 0.6.1
- /rollup@2.79.1:
- resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
- engines: {node: '>=10.0.0'}
- hasBin: true
+ rollup@2.80.0:
optionalDependencies:
fsevents: 2.3.3
- /rollup@4.12.0:
- resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
- dependencies:
- '@types/estree': 1.0.5
- optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.12.0
- '@rollup/rollup-android-arm64': 4.12.0
- '@rollup/rollup-darwin-arm64': 4.12.0
- '@rollup/rollup-darwin-x64': 4.12.0
- '@rollup/rollup-linux-arm-gnueabihf': 4.12.0
- '@rollup/rollup-linux-arm64-gnu': 4.12.0
- '@rollup/rollup-linux-arm64-musl': 4.12.0
- '@rollup/rollup-linux-riscv64-gnu': 4.12.0
- '@rollup/rollup-linux-x64-gnu': 4.12.0
- '@rollup/rollup-linux-x64-musl': 4.12.0
- '@rollup/rollup-win32-arm64-msvc': 4.12.0
- '@rollup/rollup-win32-ia32-msvc': 4.12.0
- '@rollup/rollup-win32-x64-msvc': 4.12.0
- fsevents: 2.3.3
- dev: false
+ rope-sequence@1.3.4: {}
- /route-recognizer@0.3.4:
- resolution: {integrity: sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==}
+ route-recognizer@0.3.4: {}
- /router_js@8.0.3(route-recognizer@0.3.4)(rsvp@4.8.5):
- resolution: {integrity: sha512-lSgNMksk/wp8nspLX3Pn6QD499FUjwYMkgP99RxqKEScil4DKC/59YezpEZ318zGtkq8WR01VBhH+/u3InlLgg==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- peerDependencies:
- route-recognizer: ^0.3.4
- rsvp: ^4.8.5
+ router@2.2.0:
+ dependencies:
+ debug: 4.4.3
+ depd: 2.0.0
+ is-promise: 4.0.0
+ parseurl: 1.3.3
+ path-to-regexp: 8.4.2
+ transitivePeerDependencies:
+ - supports-color
+
+ router_js@8.0.6(route-recognizer@0.3.4)(rsvp@4.8.5):
dependencies:
'@glimmer/env': 0.1.7
route-recognizer: 0.3.4
rsvp: 4.8.5
- /rsvp@3.2.1:
- resolution: {integrity: sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==}
+ rsvp@3.2.1: {}
- /rsvp@3.6.2:
- resolution: {integrity: sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==}
- engines: {node: 0.12.* || 4.* || 6.* || >= 7.*}
+ rsvp@3.6.2: {}
- /rsvp@4.8.5:
- resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==}
- engines: {node: 6.* || >= 7.*}
+ rsvp@4.8.5: {}
- /run-async@2.4.1:
- resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
- engines: {node: '>=0.12.0'}
- dev: true
+ run-async@2.4.1: {}
- /run-async@3.0.0:
- resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==}
- engines: {node: '>=0.12.0'}
- dev: true
+ run-async@3.0.0: {}
- /run-parallel@1.2.0:
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ run-parallel@1.2.0:
dependencies:
queue-microtask: 1.2.3
- /run-queue@1.0.3:
- resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==}
+ run-queue@1.0.3:
dependencies:
aproba: 1.2.0
- dev: false
- /rxjs@6.6.7:
- resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==}
- engines: {npm: '>=2.0.0'}
+ rxjs@6.6.7:
dependencies:
tslib: 1.14.1
- dev: true
- /rxjs@7.8.1:
- resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
+ rxjs@7.8.2:
dependencies:
- tslib: 2.6.2
- dev: true
+ tslib: 2.8.1
- /safe-array-concat@1.1.0:
- resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==}
- engines: {node: '>=0.4'}
+ safe-array-concat@1.1.4:
dependencies:
- call-bind: 1.0.7
- get-intrinsic: 1.2.4
- has-symbols: 1.0.3
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ has-symbols: 1.1.0
isarray: 2.0.5
- /safe-buffer@5.1.2:
- resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+ safe-buffer@5.1.2: {}
- /safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ safe-buffer@5.2.1: {}
- /safe-json-parse@1.0.1:
- resolution: {integrity: sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==}
- dev: true
+ safe-json-parse@1.0.1: {}
- /safe-regex-test@1.0.3:
- resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
- engines: {node: '>= 0.4'}
+ safe-push-apply@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ isarray: 2.0.5
+
+ safe-regex-test@1.1.0:
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
es-errors: 1.3.0
- is-regex: 1.1.4
+ is-regex: 1.2.1
- /safe-regex@1.1.0:
- resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
+ safe-regex@1.1.0:
dependencies:
ret: 0.1.15
- /safe-stable-stringify@2.4.3:
- resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
- engines: {node: '>=10'}
- dev: true
+ safe-stable-stringify@2.5.0: {}
- /safer-buffer@2.1.2:
- resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ safer-buffer@2.1.2: {}
- /sane@4.1.0:
- resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==}
- engines: {node: 6.* || 8.* || >= 10.*}
- deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
- hasBin: true
+ sane@4.1.0:
dependencies:
'@cnakazawa/watch': 1.0.4
anymatch: 2.0.0
@@ -13615,12 +18313,8 @@ packages:
walker: 1.0.8
transitivePeerDependencies:
- supports-color
- dev: true
- /sane@5.0.1:
- resolution: {integrity: sha512-9/0CYoRz0MKKf04OMCO3Qk3RQl1PAwWAhPSQSym4ULiLpTZnrY1JoZU0IEikHu8kdk2HvKT/VwQMq/xFZ8kh1Q==}
- engines: {node: 10.* || >= 12.*}
- hasBin: true
+ sane@5.0.1:
dependencies:
'@cnakazawa/watch': 1.0.4
anymatch: 3.1.3
@@ -13628,279 +18322,232 @@ packages:
exec-sh: 0.3.6
execa: 4.1.0
fb-watchman: 2.0.2
- micromatch: 4.0.5
+ micromatch: 4.0.8
minimist: 1.2.8
walker: 1.0.8
- dev: true
- /sc-errors@2.0.3:
- resolution: {integrity: sha512-HNpClBWpo7zxLBnhH0U/FbC19Gl3OJlVyPxo9Q2eomfdWgYfd84uhqe0LRgybc+nSpcYjtF08+/dKPLugLMMeQ==}
- dev: false
+ sc-errors@2.0.3: {}
- /sc-formatter@4.0.0:
- resolution: {integrity: sha512-MgUIvuca+90fBrCWY5LdlU9YUWjlkPFwdpvmomcwQEu3t2id/6YHdG2nhB6o7nhRp4ocfmcXQTh00r/tJtynSg==}
- dev: false
+ sc-errors@3.0.0: {}
- /schema-utils@1.0.0:
- resolution: {integrity: sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==}
- engines: {node: '>= 4'}
+ sc-formatter@4.0.0: {}
+
+ schema-utils@1.0.0:
dependencies:
- ajv: 6.12.6
- ajv-errors: 1.0.1(ajv@6.12.6)
- ajv-keywords: 3.5.2(ajv@6.12.6)
- dev: false
+ ajv: 6.15.0
+ ajv-errors: 1.0.1(ajv@6.15.0)
+ ajv-keywords: 3.5.2(ajv@6.15.0)
- /schema-utils@2.7.1:
- resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==}
- engines: {node: '>= 8.9.0'}
+ schema-utils@2.7.1:
dependencies:
'@types/json-schema': 7.0.15
- ajv: 6.12.6
- ajv-keywords: 3.5.2(ajv@6.12.6)
+ ajv: 6.15.0
+ ajv-keywords: 3.5.2(ajv@6.15.0)
- /schema-utils@3.3.0:
- resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
- engines: {node: '>= 10.13.0'}
+ schema-utils@3.3.0:
dependencies:
'@types/json-schema': 7.0.15
- ajv: 6.12.6
- ajv-keywords: 3.5.2(ajv@6.12.6)
+ ajv: 6.15.0
+ ajv-keywords: 3.5.2(ajv@6.15.0)
- /schema-utils@4.2.0:
- resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
- engines: {node: '>= 12.13.0'}
+ schema-utils@4.3.3:
dependencies:
'@types/json-schema': 7.0.15
- ajv: 8.12.0
- ajv-formats: 2.1.1(ajv@8.12.0)
- ajv-keywords: 5.1.0(ajv@8.12.0)
-
- /semver@5.7.2:
- resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
- hasBin: true
+ ajv: 8.20.0
+ ajv-formats: 2.1.1(ajv@8.20.0)
+ ajv-keywords: 5.1.0(ajv@8.20.0)
- /semver@6.3.1:
- resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
- hasBin: true
+ semver@5.7.2: {}
- /semver@7.6.0:
- resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- lru-cache: 6.0.0
+ semver@6.3.1: {}
- /send@0.18.0:
- resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
- engines: {node: '>= 0.8.0'}
+ semver@7.8.1: {}
+
+ send@0.19.2:
dependencies:
debug: 2.6.9
depd: 2.0.0
destroy: 1.2.0
- encodeurl: 1.0.2
+ encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
fresh: 0.5.2
- http-errors: 2.0.0
+ http-errors: 2.0.1
mime: 1.6.0
ms: 2.1.3
on-finished: 2.4.1
range-parser: 1.2.1
- statuses: 2.0.1
+ statuses: 2.0.2
transitivePeerDependencies:
- supports-color
- dev: true
- /serialize-javascript@4.0.0:
- resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==}
+ send@1.2.1:
dependencies:
- randombytes: 2.1.0
- dev: false
+ debug: 4.4.3
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 2.0.0
+ http-errors: 2.0.1
+ mime-types: 3.0.2
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
- /serialize-javascript@6.0.2:
- resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+ serialize-javascript@4.0.0:
dependencies:
randombytes: 2.1.0
- /serve-static@1.15.0:
- resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
- engines: {node: '>= 0.8.0'}
+ serve-static@1.16.3:
dependencies:
- encodeurl: 1.0.2
+ encodeurl: 2.0.0
escape-html: 1.0.3
parseurl: 1.3.3
- send: 0.18.0
+ send: 0.19.2
transitivePeerDependencies:
- supports-color
- dev: true
- /set-blocking@2.0.0:
- resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
- dev: true
+ serve-static@2.2.1:
+ dependencies:
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 1.2.1
+ transitivePeerDependencies:
+ - supports-color
- /set-function-length@1.2.1:
- resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==}
- engines: {node: '>= 0.4'}
+ set-function-length@1.2.2:
dependencies:
define-data-property: 1.1.4
es-errors: 1.3.0
function-bind: 1.1.2
- get-intrinsic: 1.2.4
- gopd: 1.0.1
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
has-property-descriptors: 1.0.2
- /set-function-name@2.0.1:
- resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
- engines: {node: '>= 0.4'}
+ set-function-name@2.0.2:
dependencies:
define-data-property: 1.1.4
+ es-errors: 1.3.0
functions-have-names: 1.2.3
has-property-descriptors: 1.0.2
- /set-value@2.0.1:
- resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
- engines: {node: '>=0.10.0'}
+ set-proto@1.0.0:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.2
+
+ set-value@2.0.1:
dependencies:
extend-shallow: 2.0.1
is-extendable: 0.1.1
is-plain-object: 2.0.4
split-string: 3.1.0
- /setimmediate@1.0.5:
- resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
- dev: false
+ setimmediate@1.0.5: {}
- /setprototypeof@1.1.0:
- resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
- dev: true
+ setprototypeof@1.1.0: {}
- /setprototypeof@1.2.0:
- resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
- dev: true
+ setprototypeof@1.2.0: {}
- /sha.js@2.4.11:
- resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==}
- hasBin: true
+ sha.js@2.4.12:
dependencies:
inherits: 2.0.4
safe-buffer: 5.2.1
- dev: false
+ to-buffer: 1.2.2
- /shallow-clone@3.0.1:
- resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
- engines: {node: '>=8'}
+ shallow-clone@3.0.1:
dependencies:
kind-of: 6.0.3
- dev: false
- /shebang-command@1.2.0:
- resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
- engines: {node: '>=0.10.0'}
+ shebang-command@1.2.0:
dependencies:
shebang-regex: 1.0.0
- dev: true
- /shebang-command@2.0.0:
- resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
- engines: {node: '>=8'}
+ shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
- /shebang-regex@1.0.0:
- resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
- engines: {node: '>=0.10.0'}
- dev: true
+ shebang-regex@1.0.0: {}
- /shebang-regex@3.0.0:
- resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
- engines: {node: '>=8'}
+ shebang-regex@3.0.0: {}
- /shell-quote@1.8.1:
- resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
- dev: true
+ shell-quote@1.8.4: {}
- /shellwords@0.1.1:
- resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==}
- dev: true
+ shellwords@0.1.1: {}
- /side-channel@1.0.5:
- resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==}
- engines: {node: '>= 0.4'}
+ side-channel-list@1.0.1:
dependencies:
- call-bind: 1.0.7
es-errors: 1.3.0
- get-intrinsic: 1.2.4
- object-inspect: 1.13.1
+ object-inspect: 1.13.4
- /signal-exit@3.0.7:
- resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
- /signal-exit@4.1.0:
- resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
- engines: {node: '>=14'}
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
- /silent-error@1.1.1:
- resolution: {integrity: sha512-n4iEKyNcg4v6/jpb3c0/iyH2G1nzUNl7Gpqtn/mHIJK9S/q/7MCfoO4rwVOoO59qPFIc0hVHvMbiOJ0NdtxKKw==}
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.1
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ signal-exit@3.0.7: {}
+
+ signal-exit@4.1.0: {}
+
+ silent-error@1.1.1:
dependencies:
debug: 2.6.9
transitivePeerDependencies:
- supports-color
- /simple-html-tokenizer@0.3.0:
- resolution: {integrity: sha512-cuUWLyKJbCExtBmxJWhmIk/KIbMF1yOuNaansJiPEdxqitM7r7So3a1M4Sw2uqfNYWjBTiVVdJjb7vtYIaEjhw==}
- dev: false
+ simple-html-tokenizer@0.5.11: {}
- /simple-html-tokenizer@0.5.11:
- resolution: {integrity: sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==}
-
- /slash@1.0.0:
- resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==}
- engines: {node: '>=0.10.0'}
- dev: false
+ slash@1.0.0: {}
- /slash@3.0.0:
- resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
- engines: {node: '>=8'}
- dev: true
+ slash@3.0.0: {}
- /slash@4.0.0:
- resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
- engines: {node: '>=12'}
- dev: true
+ slash@4.0.0: {}
- /slice-ansi@4.0.0:
- resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
- engines: {node: '>=10'}
+ slice-ansi@4.0.0:
dependencies:
ansi-styles: 4.3.0
astral-regex: 2.0.0
is-fullwidth-code-point: 3.0.0
- dev: true
- /snake-case@3.0.4:
- resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
+ snake-case@3.0.4:
dependencies:
dot-case: 3.0.4
- tslib: 2.6.2
- dev: true
+ tslib: 2.8.1
- /snapdragon-node@2.1.1:
- resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
- engines: {node: '>=0.10.0'}
+ snapdragon-node@2.1.1:
dependencies:
define-property: 1.0.0
isobject: 3.0.1
snapdragon-util: 3.0.1
- /snapdragon-util@3.0.1:
- resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
- engines: {node: '>=0.10.0'}
+ snapdragon-util@3.0.1:
dependencies:
kind-of: 3.2.2
- /snapdragon@0.8.2:
- resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
- engines: {node: '>=0.10.0'}
+ snapdragon@0.8.2:
dependencies:
base: 0.11.2
debug: 2.6.9
@@ -13913,47 +18560,40 @@ packages:
transitivePeerDependencies:
- supports-color
- /socket.io-adapter@2.5.2:
- resolution: {integrity: sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==}
+ socket.io-adapter@2.5.7:
dependencies:
- ws: 8.11.0
+ debug: 4.4.3
+ ws: 8.20.1
transitivePeerDependencies:
- bufferutil
+ - supports-color
- utf-8-validate
- dev: true
- /socket.io-parser@4.2.4:
- resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==}
- engines: {node: '>=10.0.0'}
+ socket.io-parser@4.2.6:
dependencies:
- '@socket.io/component-emitter': 3.1.0
- debug: 4.3.4
+ '@socket.io/component-emitter': 3.1.2
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
- dev: true
- /socket.io@4.7.4:
- resolution: {integrity: sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==}
- engines: {node: '>=10.2.0'}
+ socket.io@4.8.3:
dependencies:
accepts: 1.3.8
base64id: 2.0.0
- cors: 2.8.5
- debug: 4.3.4
- engine.io: 6.5.4
- socket.io-adapter: 2.5.2
- socket.io-parser: 4.2.4
+ cors: 2.8.6
+ debug: 4.4.3
+ engine.io: 6.6.8
+ socket.io-adapter: 2.5.7
+ socket.io-parser: 4.2.6
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
- dev: true
- /socketcluster-client@17.2.2:
- resolution: {integrity: sha512-HIopjTj8p979N5klC7FeZSwu9rd805bFgFcyVX7Y8zPyjVHXHTfGrV/8vqzN2gpOwnnosWQ44ue0qGqovlxZrg==}
+ socketcluster-client@17.2.2:
dependencies:
ag-channel: 5.0.0
- ag-request: 1.0.1
+ ag-request: 1.1.0
async-stream-emitter: 4.1.0
buffer: 5.7.1
clone-deep: 4.0.1
@@ -13963,19 +18603,14 @@ packages:
stream-demux: 8.1.0
uuid: 8.3.2
vinyl-buffer: 1.0.1
- ws: 8.16.0
+ ws: 8.21.0
transitivePeerDependencies:
- bufferutil
- utf-8-validate
- dev: false
- /sort-object-keys@1.1.3:
- resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==}
- dev: true
+ sort-object-keys@1.1.3: {}
- /sort-package-json@1.57.0:
- resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==}
- hasBin: true
+ sort-package-json@1.57.0:
dependencies:
detect-indent: 6.1.0
detect-newline: 3.1.0
@@ -13983,19 +18618,12 @@ packages:
globby: 10.0.0
is-plain-obj: 2.1.0
sort-object-keys: 1.1.3
- dev: true
- /source-list-map@2.0.1:
- resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==}
- dev: false
+ source-list-map@2.0.1: {}
- /source-map-js@1.0.2:
- resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
- engines: {node: '>=0.10.0'}
+ source-map-js@1.2.1: {}
- /source-map-resolve@0.5.3:
- resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
- deprecated: See https://github.com/lydell/source-map-resolve#deprecated
+ source-map-resolve@0.5.3:
dependencies:
atob: 2.1.2
decode-uri-component: 0.2.2
@@ -14003,470 +18631,342 @@ packages:
source-map-url: 0.4.1
urix: 0.1.0
- /source-map-support@0.4.18:
- resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==}
+ source-map-support@0.4.18:
dependencies:
source-map: 0.5.7
- dev: false
- /source-map-support@0.5.21:
- resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
- /source-map-url@0.3.0:
- resolution: {integrity: sha512-QU4fa0D6aSOmrT+7OHpUXw+jS84T0MLaQNtFs8xzLNe6Arj44Magd7WEbyVW5LNYoAPVV35aKs4azxIfVJrToQ==}
- deprecated: See https://github.com/lydell/source-map-url#deprecated
+ source-map-url@0.3.0: {}
- /source-map-url@0.4.1:
- resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
- deprecated: See https://github.com/lydell/source-map-url#deprecated
+ source-map-url@0.4.1: {}
- /source-map@0.4.4:
- resolution: {integrity: sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==}
- engines: {node: '>=0.8.0'}
+ source-map@0.4.4:
dependencies:
amdefine: 1.0.1
- /source-map@0.5.7:
- resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
- engines: {node: '>=0.10.0'}
+ source-map@0.5.7: {}
- /source-map@0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- engines: {node: '>=0.10.0'}
+ source-map@0.6.1: {}
- /sourcemap-codec@1.4.8:
- resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
- deprecated: Please use @jridgewell/sourcemap-codec instead
+ sourcemap-codec@1.4.8: {}
- /spawn-args@0.2.0:
- resolution: {integrity: sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg==}
- dev: true
+ spawn-args@0.2.0: {}
- /spawn-command@0.0.2:
- resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==}
- dev: true
+ spawn-command@0.0.2: {}
- /spdx-correct@3.2.0:
- resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+ spdx-correct@3.2.0:
dependencies:
spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.17
- dev: true
+ spdx-license-ids: 3.0.23
- /spdx-exceptions@2.5.0:
- resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
- dev: true
+ spdx-exceptions@2.5.0: {}
- /spdx-expression-parse@3.0.1:
- resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+ spdx-expression-parse@3.0.1:
dependencies:
spdx-exceptions: 2.5.0
- spdx-license-ids: 3.0.17
- dev: true
+ spdx-license-ids: 3.0.23
- /spdx-license-ids@3.0.17:
- resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
- dev: true
+ spdx-license-ids@3.0.23: {}
- /split-string@3.1.0:
- resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
- engines: {node: '>=0.10.0'}
+ split-string@3.1.0:
dependencies:
extend-shallow: 3.0.2
- /sprintf-js@1.0.3:
- resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
- dev: true
-
- /sprintf-js@1.1.3:
- resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+ sprintf-js@1.1.3: {}
- /sri-toolbox@0.2.0:
- resolution: {integrity: sha512-DQIMWCAr/M7phwo+d3bEfXwSBEwuaJL+SJx9cuqt1Ty7K96ZFoHpYnSbhrQZEr0+0/GtmpKECP8X/R4RyeTAfw==}
- engines: {node: '>= 0.10.4'}
- dev: true
+ sri-toolbox@0.2.0: {}
- /ssri@6.0.2:
- resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==}
+ ssri@6.0.2:
dependencies:
figgy-pudding: 3.5.2
- dev: false
- /stagehand@1.0.1:
- resolution: {integrity: sha512-GqXBq2SPWv9hTXDFKS8WrKK1aISB0aKGHZzH+uD4ShAgs+Fz20ZfoerLOm8U+f62iRWLrw6nimOY/uYuTcVhvg==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ stagehand@1.0.1:
dependencies:
- debug: 4.3.4
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
- /static-extend@0.1.2:
- resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
- engines: {node: '>=0.10.0'}
+ static-extend@0.1.2:
dependencies:
define-property: 0.2.5
object-copy: 0.1.0
- /statuses@1.5.0:
- resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
- engines: {node: '>= 0.6'}
- dev: true
+ statuses@1.5.0: {}
- /statuses@2.0.1:
- resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
- engines: {node: '>= 0.8'}
- dev: true
+ statuses@2.0.2: {}
- /stream-browserify@2.0.2:
- resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==}
+ stop-iteration-iterator@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ internal-slot: 1.1.0
+
+ stream-browserify@2.0.2:
dependencies:
inherits: 2.0.4
readable-stream: 2.3.8
- dev: false
- /stream-demux@8.1.0:
- resolution: {integrity: sha512-20vtOmAj2EVzQZKZVmfyio16u/3QOKSvg+0ldgZeS+m2FNI1vKFoqggamagsPCXufdZ1Tk8VvAM/HV/YUmRbSg==}
+ stream-demux@8.1.0:
dependencies:
consumable-stream: 2.0.0
writable-consumable-stream: 3.0.1
- dev: false
- /stream-each@1.2.3:
- resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==}
+ stream-each@1.2.3:
dependencies:
- end-of-stream: 1.4.4
+ end-of-stream: 1.4.5
stream-shift: 1.0.3
- dev: false
- /stream-http@2.8.3:
- resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==}
+ stream-http@2.8.3:
dependencies:
builtin-status-codes: 3.0.0
inherits: 2.0.4
readable-stream: 2.3.8
to-arraybuffer: 1.0.1
xtend: 4.0.2
- dev: false
- /stream-shift@1.0.3:
- resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==}
- dev: false
+ stream-shift@1.0.3: {}
- /string-template@0.2.1:
- resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==}
- dev: true
+ string-template@0.2.1: {}
- /string-width@2.1.1:
- resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==}
- engines: {node: '>=4'}
+ string-width@2.1.1:
dependencies:
is-fullwidth-code-point: 2.0.0
strip-ansi: 4.0.0
- dev: true
- /string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
+ string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
- /string-width@5.1.2:
- resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
- engines: {node: '>=12'}
+ string-width@5.1.2:
dependencies:
eastasianwidth: 0.2.0
emoji-regex: 9.2.2
- strip-ansi: 7.1.0
- dev: false
+ strip-ansi: 7.2.0
- /string.prototype.matchall@4.0.10:
- resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
+ string.prototype.matchall@4.0.12:
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.9
+ call-bound: 1.0.4
define-properties: 1.2.1
- es-abstract: 1.22.4
- get-intrinsic: 1.2.4
- has-symbols: 1.0.3
- internal-slot: 1.0.7
- regexp.prototype.flags: 1.5.2
- set-function-name: 2.0.1
- side-channel: 1.0.5
-
- /string.prototype.trim@1.2.8:
- resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.7
+ es-abstract: 1.24.2
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.2
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ internal-slot: 1.1.0
+ regexp.prototype.flags: 1.5.4
+ set-function-name: 2.0.2
+ side-channel: 1.1.0
+
+ string.prototype.trim@1.2.10:
+ dependencies:
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ define-data-property: 1.1.4
define-properties: 1.2.1
- es-abstract: 1.22.4
+ es-abstract: 1.24.2
+ es-object-atoms: 1.1.2
+ has-property-descriptors: 1.0.2
- /string.prototype.trimend@1.0.7:
- resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
+ string.prototype.trimend@1.0.9:
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.9
+ call-bound: 1.0.4
define-properties: 1.2.1
- es-abstract: 1.22.4
+ es-object-atoms: 1.1.2
- /string.prototype.trimstart@1.0.7:
- resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
+ string.prototype.trimstart@1.0.8:
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.9
define-properties: 1.2.1
- es-abstract: 1.22.4
+ es-object-atoms: 1.1.2
- /string_decoder@0.10.31:
- resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
+ string_decoder@0.10.31: {}
- /string_decoder@1.1.1:
- resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+ string_decoder@1.1.1:
dependencies:
safe-buffer: 5.1.2
- dev: false
- /string_decoder@1.3.0:
- resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+ string_decoder@1.3.0:
dependencies:
safe-buffer: 5.2.1
- /strip-ansi@3.0.1:
- resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
- engines: {node: '>=0.10.0'}
+ strip-ansi@3.0.1:
dependencies:
ansi-regex: 2.1.1
- /strip-ansi@4.0.0:
- resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==}
- engines: {node: '>=4'}
+ strip-ansi@4.0.0:
dependencies:
ansi-regex: 3.0.1
- dev: true
- /strip-ansi@5.2.0:
- resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==}
- engines: {node: '>=6'}
+ strip-ansi@5.2.0:
dependencies:
ansi-regex: 4.1.1
- dev: true
- /strip-ansi@6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
+ strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
- /strip-ansi@7.1.0:
- resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
- engines: {node: '>=12'}
+ strip-ansi@7.2.0:
dependencies:
- ansi-regex: 6.0.1
- dev: false
+ ansi-regex: 6.2.2
- /strip-bom@4.0.0:
- resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
- engines: {node: '>=8'}
+ strip-bom@4.0.0: {}
- /strip-eof@1.0.0:
- resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
- engines: {node: '>=0.10.0'}
- dev: true
+ strip-eof@1.0.0: {}
- /strip-final-newline@2.0.0:
- resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
- engines: {node: '>=6'}
+ strip-final-newline@2.0.0: {}
- /strip-indent@4.0.0:
- resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
- engines: {node: '>=12'}
- dependencies:
- min-indent: 1.0.1
- dev: true
+ strip-final-newline@4.0.0: {}
- /strip-json-comments@2.0.1:
- resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
- engines: {node: '>=0.10.0'}
- dev: true
+ strip-indent@4.1.1: {}
- /strip-json-comments@3.1.1:
- resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
- engines: {node: '>=8'}
- dev: true
+ strip-json-comments@2.0.1: {}
- /style-loader@2.0.0(webpack@5.89.0):
- resolution: {integrity: sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==}
- engines: {node: '>= 10.13.0'}
- peerDependencies:
- webpack: ^4.0.0 || ^5.0.0
+ strip-json-comments@3.1.1: {}
+
+ style-loader@2.0.0(webpack@5.107.2(postcss@8.5.15)):
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.89.0
+ webpack: 5.107.2(postcss@8.5.15)
- /style-search@0.1.0:
- resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==}
- dev: true
+ style-search@0.1.0: {}
- /styled_string@0.0.1:
- resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==}
- dev: true
+ styled_string@0.0.1: {}
- /stylelint-config-recommended@13.0.0(stylelint@15.11.0):
- resolution: {integrity: sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==}
- engines: {node: ^14.13.1 || >=16.0.0}
- peerDependencies:
- stylelint: ^15.10.0
+ stylelint-config-recommended@13.0.0(stylelint@15.11.0):
dependencies:
stylelint: 15.11.0
- dev: true
- /stylelint-config-standard@34.0.0(stylelint@15.11.0):
- resolution: {integrity: sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==}
- engines: {node: ^14.13.1 || >=16.0.0}
- peerDependencies:
- stylelint: ^15.10.0
+ stylelint-config-standard@34.0.0(stylelint@15.11.0):
dependencies:
stylelint: 15.11.0
stylelint-config-recommended: 13.0.0(stylelint@15.11.0)
- dev: true
- /stylelint-prettier@4.0.2(prettier@3.0.3)(stylelint@15.11.0):
- resolution: {integrity: sha512-EoHnR2PiaWgpGtoI4VW7AzneMfwmwQsNwQ+3/E2k/a+ju5yO6rfPfop4vzPQKcJN4ZM1YbspEOPu88D8538sbg==}
- engines: {node: ^14.17.0 || >=16.0.0}
- peerDependencies:
- prettier: '>=3.0.0'
- stylelint: '>=15.8.0'
+ stylelint-prettier@4.1.0(prettier@3.8.3)(stylelint@15.11.0):
dependencies:
- prettier: 3.0.3
- prettier-linter-helpers: 1.0.0
+ prettier: 3.8.3
+ prettier-linter-helpers: 1.0.1
stylelint: 15.11.0
- dev: true
- /stylelint@15.11.0:
- resolution: {integrity: sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==}
- engines: {node: ^14.13.1 || >=16.0.0}
- hasBin: true
+ stylelint@15.11.0:
dependencies:
- '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3)
- '@csstools/css-tokenizer': 2.2.3
- '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3)
- '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15)
+ '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
+ '@csstools/css-tokenizer': 2.4.1
+ '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)
+ '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2)
balanced-match: 2.0.0
colord: 2.9.3
cosmiconfig: 8.3.6
- css-functions-list: 3.2.1
+ css-functions-list: 3.3.3
css-tree: 2.3.1
- debug: 4.3.4
- fast-glob: 3.3.2
+ debug: 4.4.3
+ fast-glob: 3.3.3
fastest-levenshtein: 1.0.16
file-entry-cache: 7.0.2
global-modules: 2.0.0
globby: 11.1.0
globjoin: 0.1.4
html-tags: 3.3.1
- ignore: 5.3.1
+ ignore: 5.3.2
import-lazy: 4.0.0
imurmurhash: 0.1.4
is-plain-object: 5.0.0
known-css-properties: 0.29.0
mathml-tag-names: 2.1.3
meow: 10.1.5
- micromatch: 4.0.5
+ micromatch: 4.0.8
normalize-path: 3.0.0
- picocolors: 1.0.0
- postcss: 8.4.35
- postcss-resolve-nested-selector: 0.1.1
- postcss-safe-parser: 6.0.0(postcss@8.4.35)
- postcss-selector-parser: 6.0.15
+ picocolors: 1.1.1
+ postcss: 8.5.15
+ postcss-resolve-nested-selector: 0.1.6
+ postcss-safe-parser: 6.0.0(postcss@8.5.15)
+ postcss-selector-parser: 6.1.2
postcss-value-parser: 4.2.0
resolve-from: 5.0.0
string-width: 4.2.3
strip-ansi: 6.0.1
style-search: 0.1.0
- supports-hyperlinks: 3.0.0
+ supports-hyperlinks: 3.2.0
svg-tags: 1.0.0
- table: 6.8.1
+ table: 6.9.0
write-file-atomic: 5.0.1
transitivePeerDependencies:
- supports-color
- typescript
- dev: true
- /sucrase@3.35.0:
- resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
- engines: {node: '>=16 || 14 >=14.17'}
- hasBin: true
+ sucrase@3.35.1:
dependencies:
- '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/gen-mapping': 0.3.13
commander: 4.1.1
- glob: 10.3.10
lines-and-columns: 1.2.4
mz: 2.7.0
- pirates: 4.0.6
+ pirates: 4.0.7
+ tinyglobby: 0.2.17
ts-interface-checker: 0.1.13
- dev: false
- /sugarss@4.0.1(postcss@8.4.35):
- resolution: {integrity: sha512-WCjS5NfuVJjkQzK10s8WOBY+hhDxxNt/N6ZaGwxFZ+wN3/lKKFSaaKUNecULcTTvE4urLcKaZFQD8vO0mOZujw==}
- engines: {node: '>=12.0'}
- peerDependencies:
- postcss: ^8.3.3
+ sugarss@4.0.1(postcss@8.5.15):
dependencies:
- postcss: 8.4.35
- dev: false
+ postcss: 8.5.15
- /sum-up@1.0.3:
- resolution: {integrity: sha512-zw5P8gnhiqokJUWRdR6F4kIIIke0+ubQSGyYUY506GCbJWtV7F6Xuy0j6S125eSX2oF+a8KdivsZ8PlVEH0Mcw==}
+ sum-up@1.0.3:
dependencies:
chalk: 1.1.3
- dev: true
- /supports-color@2.0.0:
- resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
- engines: {node: '>=0.8.0'}
+ supports-color@2.0.0: {}
- /supports-color@5.5.0:
- resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
- engines: {node: '>=4'}
+ supports-color@5.5.0:
dependencies:
has-flag: 3.0.0
- /supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
+ supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
- /supports-color@8.1.1:
- resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
- engines: {node: '>=10'}
+ supports-color@8.1.1:
dependencies:
has-flag: 4.0.0
- /supports-hyperlinks@3.0.0:
- resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==}
- engines: {node: '>=14.18'}
+ supports-hyperlinks@3.2.0:
dependencies:
has-flag: 4.0.0
supports-color: 7.2.0
- dev: true
- /supports-preserve-symlinks-flag@1.0.0:
- resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
- engines: {node: '>= 0.4'}
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ svelte@5.56.1:
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0)
+ '@types/estree': 1.0.9
+ '@types/trusted-types': 2.0.7
+ acorn: 8.16.0
+ aria-query: 5.3.1
+ axobject-query: 4.1.0
+ clsx: 2.1.1
+ devalue: 5.8.1
+ esm-env: 1.2.2
+ esrap: 2.2.11
+ is-reference: 3.0.3
+ locate-character: 3.0.0
+ magic-string: 0.30.21
+ zimmerframe: 1.1.4
+ transitivePeerDependencies:
+ - '@typescript-eslint/types'
- /svg-tags@1.0.0:
- resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
- dev: true
+ svg-tags@1.0.0: {}
- /symlink-or-copy@1.3.1:
- resolution: {integrity: sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==}
+ symlink-or-copy@1.3.1: {}
- /sync-disk-cache@1.3.4:
- resolution: {integrity: sha512-GlkGeM81GPPEKz/lH7QUTbvqLq7K/IUTuaKDSMulP9XQ42glqNJIN/RKgSOw4y8vxL1gOVvj+W7ruEO4s36eCw==}
+ sync-disk-cache@1.3.4:
dependencies:
debug: 2.6.9
heimdalljs: 0.2.6
@@ -14476,11 +18976,9 @@ packages:
transitivePeerDependencies:
- supports-color
- /sync-disk-cache@2.1.0:
- resolution: {integrity: sha512-vngT2JmkSapgq0z7uIoYtB9kWOOzMihAAYq/D3Pjm/ODOGMgS4r++B+OZ09U4hWR6EaOdy9eqQ7/8ygbH3wehA==}
- engines: {node: 8.* || >= 10.*}
+ sync-disk-cache@2.1.0:
dependencies:
- debug: 4.3.4
+ debug: 4.4.3
heimdalljs: 0.2.6
mkdirp: 0.5.6
rimraf: 3.0.2
@@ -14488,91 +18986,68 @@ packages:
transitivePeerDependencies:
- supports-color
- /synckit@0.8.8:
- resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==}
- engines: {node: ^14.18.0 || >=16.0.0}
+ synckit@0.11.13:
dependencies:
- '@pkgr/core': 0.1.1
- tslib: 2.6.2
- dev: true
+ '@pkgr/core': 0.3.6
- /tabbable@5.3.3:
- resolution: {integrity: sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==}
- dev: false
+ tabbable@6.4.0: {}
- /table@6.8.1:
- resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==}
- engines: {node: '>=10.0.0'}
+ table@6.9.0:
dependencies:
- ajv: 8.12.0
+ ajv: 8.20.0
lodash.truncate: 4.4.2
slice-ansi: 4.0.0
string-width: 4.2.3
strip-ansi: 6.0.1
- dev: true
- /tailwindcss@3.4.1:
- resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
- engines: {node: '>=14.0.0'}
- hasBin: true
+ tailwindcss@3.4.19(yaml@2.9.0):
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2
chokidar: 3.6.0
didyoumean: 1.2.2
dlv: 1.1.3
- fast-glob: 3.3.2
+ fast-glob: 3.3.3
glob-parent: 6.0.2
is-glob: 4.0.3
- jiti: 1.21.0
- lilconfig: 2.1.0
- micromatch: 4.0.5
+ jiti: 1.21.7
+ lilconfig: 3.1.3
+ micromatch: 4.0.8
normalize-path: 3.0.0
object-hash: 3.0.0
- picocolors: 1.0.0
- postcss: 8.4.35
- postcss-import: 15.1.0(postcss@8.4.35)
- postcss-js: 4.0.1(postcss@8.4.35)
- postcss-load-config: 4.0.2(postcss@8.4.35)
- postcss-nested: 6.0.1(postcss@8.4.35)
- postcss-selector-parser: 6.0.15
- resolve: 1.22.8
- sucrase: 3.35.0
- transitivePeerDependencies:
- - ts-node
- dev: false
-
- /tap-parser@7.0.0:
- resolution: {integrity: sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA==}
- hasBin: true
+ picocolors: 1.1.1
+ postcss: 8.5.15
+ postcss-import: 15.1.0(postcss@8.5.15)
+ postcss-js: 4.1.0(postcss@8.5.15)
+ postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.15)(yaml@2.9.0)
+ postcss-nested: 6.2.0(postcss@8.5.15)
+ postcss-selector-parser: 6.1.2
+ resolve: 1.22.12
+ sucrase: 3.35.1
+ transitivePeerDependencies:
+ - tsx
+ - yaml
+
+ tap-parser@18.3.4:
dependencies:
- events-to-array: 1.1.2
- js-yaml: 3.14.1
- minipass: 2.9.0
- dev: true
+ events-to-array: 2.0.3
+ tap-yaml: 4.4.2
- /tapable@1.1.3:
- resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
- engines: {node: '>=6'}
- dev: false
+ tap-yaml@4.4.2:
+ dependencies:
+ yaml: 2.9.0
+ yaml-types: 0.4.0(yaml@2.9.0)
- /tapable@2.2.1:
- resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
- engines: {node: '>=6'}
+ tapable@1.1.3: {}
- /temp@0.9.4:
- resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==}
- engines: {node: '>=6.0.0'}
+ tapable@2.3.3: {}
+
+ temp@0.9.4:
dependencies:
mkdirp: 0.5.6
rimraf: 2.6.3
- dev: true
- /terser-webpack-plugin@1.4.5(webpack@4.47.0):
- resolution: {integrity: sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==}
- engines: {node: '>= 6.9.0'}
- peerDependencies:
- webpack: ^4.0.0
+ terser-webpack-plugin@1.4.6(webpack@4.47.0):
dependencies:
cacache: 12.0.4
find-cache-dir: 2.1.0
@@ -14584,90 +19059,61 @@ packages:
webpack: 4.47.0
webpack-sources: 1.4.3
worker-farm: 1.7.0
- dev: false
- /terser-webpack-plugin@5.3.10(webpack@5.89.0):
- resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
- engines: {node: '>= 10.13.0'}
- peerDependencies:
- '@swc/core': '*'
- esbuild: '*'
- uglify-js: '*'
- webpack: ^5.1.0
- peerDependenciesMeta:
- '@swc/core':
- optional: true
- esbuild:
- optional: true
- uglify-js:
- optional: true
+ terser-webpack-plugin@5.6.1(postcss@8.5.15)(webpack@5.107.2(postcss@8.5.15)):
dependencies:
- '@jridgewell/trace-mapping': 0.3.22
+ '@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
- schema-utils: 3.3.0
- serialize-javascript: 6.0.2
- terser: 5.27.1
- webpack: 5.89.0
+ schema-utils: 4.3.3
+ terser: 5.48.0
+ webpack: 5.107.2(postcss@8.5.15)
+ optionalDependencies:
+ postcss: 8.5.15
- /terser@4.8.1:
- resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==}
- engines: {node: '>=6.0.0'}
- hasBin: true
+ terser@4.8.1:
dependencies:
- acorn: 8.11.3
+ acorn: 8.16.0
commander: 2.20.3
source-map: 0.6.1
source-map-support: 0.5.21
- dev: false
- /terser@5.27.1:
- resolution: {integrity: sha512-29wAr6UU/oQpnTw5HoadwjUZnFQXGdOfj0LjZ4sVxzqwHh/QVkvr7m8y9WoR4iN3FRitVduTc6KdjcW38Npsug==}
- engines: {node: '>=10'}
- hasBin: true
+ terser@5.48.0:
dependencies:
- '@jridgewell/source-map': 0.3.5
- acorn: 8.11.3
+ '@jridgewell/source-map': 0.3.11
+ acorn: 8.16.0
commander: 2.20.3
source-map-support: 0.5.21
- /testem@3.11.0:
- resolution: {integrity: sha512-q0U126/nnRH54ZDrr6j1Ai5zK6vOm2rdY/5VJrbqcEPQgOWoLB6zrymWUs7BqN2/yRsdorocl9E9ZEwm7LLIZQ==}
- engines: {node: '>= 7.*'}
- hasBin: true
+ testem@3.20.1(@babel/core@7.29.7)(handlebars@4.7.9)(underscore@1.13.8):
dependencies:
- '@xmldom/xmldom': 0.8.10
- backbone: 1.6.0
- bluebird: 3.7.2
+ '@xmldom/xmldom': 0.9.10
+ backbone: 1.6.1
charm: 1.0.2
- commander: 2.20.3
- compression: 1.7.4
- consolidate: 0.16.0(mustache@4.2.0)
- execa: 1.0.0
- express: 4.18.2
- fireworm: 0.7.2
- glob: 7.2.3
+ chokidar: 5.0.0
+ commander: 14.0.3
+ compression: 1.8.1
+ consolidate: 1.0.4(@babel/core@7.29.7)(handlebars@4.7.9)(lodash@4.18.1)(mustache@4.2.0)(underscore@1.13.8)
+ execa: 9.6.1
+ express: 5.2.1
+ glob: 13.0.6
http-proxy: 1.18.1
- js-yaml: 3.14.1
- lodash.assignin: 4.2.0
- lodash.castarray: 4.4.0
- lodash.clonedeep: 4.5.0
- lodash.find: 4.6.0
- lodash.uniqby: 4.7.0
+ js-yaml: 4.2.0
+ lodash: 4.18.1
+ minimatch: 10.2.5
mkdirp: 3.0.1
mustache: 4.2.0
- node-notifier: 10.0.1
- npmlog: 6.0.2
printf: 0.6.1
- rimraf: 3.0.2
- socket.io: 4.7.4
+ proc-log: 6.1.0
+ rimraf: 6.1.3
+ socket.io: 4.8.3
spawn-args: 0.2.0
styled_string: 0.0.1
- tap-parser: 7.0.0
- tmp: 0.0.33
+ tap-parser: 18.3.4
+ toasted-notifier: 10.1.0
transitivePeerDependencies:
+ - '@babel/core'
- arc-templates
- atpl
- - babel-core
- bracket-template
- bufferutil
- coffee-script
@@ -14685,31 +19131,25 @@ packages:
- handlebars
- hogan.js
- htmling
- - jade
- jazz
- jqtpl
- just
- liquid-node
- liquor
- - lodash
- - marko
- mote
- nunjucks
- plates
- pug
- qejs
- ractive
- - razor-tmpl
- react
- react-dom
- slm
- - squirrelly
- supports-color
- swig
- swig-templates
- teacup
- templayed
- - then-jade
- then-pug
- tinyliquid
- toffee
@@ -14721,587 +19161,410 @@ packages:
- velocityjs
- walrus
- whiskers
- dev: true
- /text-table@0.2.0:
- resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
- dev: true
-
- /textextensions@2.6.0:
- resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==}
- engines: {node: '>=0.8'}
+ text-table@0.2.0: {}
- /thenify-all@1.6.0:
- resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
- engines: {node: '>=0.8'}
+ textextensions@2.6.0: {}
+
+ thenify-all@1.6.0:
dependencies:
thenify: 3.3.1
- dev: false
- /thenify@3.3.1:
- resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+ thenify@3.3.1:
dependencies:
any-promise: 1.3.0
- dev: false
- /through2@2.0.5:
- resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
+ through2@2.0.5:
dependencies:
readable-stream: 2.3.8
xtend: 4.0.2
- dev: false
- /through2@3.0.2:
- resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==}
+ through2@3.0.2:
dependencies:
inherits: 2.0.4
readable-stream: 3.6.2
- dev: true
- /through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- dev: true
+ through@2.3.8: {}
- /timers-browserify@2.0.12:
- resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==}
- engines: {node: '>=0.6.0'}
+ timers-browserify@2.0.12:
dependencies:
setimmediate: 1.0.5
- dev: false
- /tiny-glob@0.2.9:
- resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
+ tiny-glob@0.2.9:
dependencies:
globalyzer: 0.1.0
globrex: 0.1.2
- dev: true
- /tiny-lr@2.0.0:
- resolution: {integrity: sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q==}
+ tiny-lr@2.0.0:
dependencies:
body: 5.1.0
debug: 3.2.7
faye-websocket: 0.11.4
livereload-js: 3.4.1
object-assign: 4.1.1
- qs: 6.11.2
+ qs: 6.15.2
transitivePeerDependencies:
- supports-color
- dev: true
- /tmp@0.0.28:
- resolution: {integrity: sha512-c2mmfiBmND6SOVxzogm1oda0OJ1HZVIk/5n26N59dDTh80MUeavpiCls4PGAdkX1PFkKokLpcf7prSjCeXLsJg==}
- engines: {node: '>=0.4.0'}
+ tinyglobby@0.2.17:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.4)
+ picomatch: 4.0.4
+
+ tmp@0.0.28:
dependencies:
os-tmpdir: 1.0.2
- /tmp@0.0.33:
- resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
- engines: {node: '>=0.6.0'}
+ tmp@0.0.33:
dependencies:
os-tmpdir: 1.0.2
- /tmp@0.1.0:
- resolution: {integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==}
- engines: {node: '>=6'}
+ tmp@0.1.0:
dependencies:
rimraf: 2.7.1
- dev: true
- /tmp@0.2.1:
- resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==}
- engines: {node: '>=8.17.0'}
- dependencies:
- rimraf: 3.0.2
- dev: true
+ tmp@0.2.7: {}
- /tmpl@1.0.5:
- resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
- dev: true
+ tmpl@1.0.5: {}
- /to-arraybuffer@1.0.1:
- resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==}
- dev: false
+ to-arraybuffer@1.0.1: {}
- /to-fast-properties@1.0.3:
- resolution: {integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==}
- engines: {node: '>=0.10.0'}
- dev: false
+ to-buffer@1.2.2:
+ dependencies:
+ isarray: 2.0.5
+ safe-buffer: 5.2.1
+ typed-array-buffer: 1.0.3
- /to-fast-properties@2.0.0:
- resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
- engines: {node: '>=4'}
+ to-fast-properties@1.0.3: {}
- /to-object-path@0.3.0:
- resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
- engines: {node: '>=0.10.0'}
+ to-object-path@0.3.0:
dependencies:
kind-of: 3.2.2
- /to-readable-stream@1.0.0:
- resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==}
- engines: {node: '>=6'}
- dev: true
+ to-readable-stream@1.0.0: {}
- /to-regex-range@2.1.1:
- resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
- engines: {node: '>=0.10.0'}
+ to-regex-range@2.1.1:
dependencies:
is-number: 3.0.0
repeat-string: 1.6.1
- /to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
+ to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
- /to-regex@3.0.2:
- resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
- engines: {node: '>=0.10.0'}
+ to-regex@3.0.2:
dependencies:
define-property: 2.0.2
extend-shallow: 3.0.2
regex-not: 1.0.2
safe-regex: 1.1.0
- /toidentifier@1.0.1:
- resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
- engines: {node: '>=0.6'}
- dev: true
+ toasted-notifier@10.1.0:
+ dependencies:
+ growly: 1.3.0
+ is-wsl: 2.2.0
+ semver: 7.8.1
+ shellwords: 0.1.1
+ which: 2.0.2
- /tr46@0.0.3:
- resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
- dev: true
+ toidentifier@1.0.1: {}
+
+ tr46@0.0.3: {}
- /tracked-built-ins@3.3.0:
- resolution: {integrity: sha512-ewKFrW/AQs05oLPM5isOUb/1aOwBRfHfmF408CCzTk21FLAhKrKVOP5Q5ebX+zCT4kvg81PGBGwrBiEGND1nWA==}
+ tracked-built-ins@3.4.0(@babel/core@7.29.7):
dependencies:
- '@embroider/addon-shim': 1.8.7
- ember-tracked-storage-polyfill: 1.0.0
+ '@embroider/addon-shim': 1.10.2
+ decorator-transforms: 2.3.2(@babel/core@7.29.7)
+ ember-tracked-storage-polyfill: 1.0.1
transitivePeerDependencies:
+ - '@babel/core'
- supports-color
- dev: false
- /tree-kill@1.2.2:
- resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
- hasBin: true
- dev: true
+ tree-kill@1.2.2: {}
- /tree-sync@1.4.0:
- resolution: {integrity: sha512-YvYllqh3qrR5TAYZZTXdspnIhlKAYezPYw11ntmweoceu4VK+keN356phHRIIo1d+RDmLpHZrUlmxga2gc9kSQ==}
+ tree-sync@1.4.0:
dependencies:
debug: 2.6.9
fs-tree-diff: 0.5.9
mkdirp: 0.5.6
- quick-temp: 0.1.8
+ quick-temp: 0.1.9
walk-sync: 0.3.4
transitivePeerDependencies:
- supports-color
- /tree-sync@2.1.0:
- resolution: {integrity: sha512-OLWW+Nd99NOM53aZ8ilT/YpEiOo6mXD3F4/wLbARqybSZ3Jb8IxHK5UGVbZaae0wtXAyQshVV+SeqVBik+Fbmw==}
- engines: {node: '>=8'}
+ tree-sync@2.1.0:
dependencies:
- debug: 4.3.4
+ debug: 4.4.3
fs-tree-diff: 2.0.1
mkdirp: 0.5.6
- quick-temp: 0.1.8
+ quick-temp: 0.1.9
walk-sync: 0.3.4
transitivePeerDependencies:
- supports-color
- dev: true
- /trim-newlines@4.1.1:
- resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
- engines: {node: '>=12'}
- dev: true
+ trim-newlines@4.1.1: {}
- /trim-right@1.0.1:
- resolution: {integrity: sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==}
- engines: {node: '>=0.10.0'}
- dev: false
+ trim-right@1.0.1: {}
- /ts-interface-checker@0.1.13:
- resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
- dev: false
+ ts-interface-checker@0.1.13: {}
- /tslib@1.14.1:
- resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
- dev: true
+ tslib@1.14.1: {}
- /tslib@2.6.2:
- resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ tslib@2.8.1: {}
- /tty-browserify@0.0.0:
- resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==}
- dev: false
+ tty-browserify@0.0.0: {}
- /type-check@0.4.0:
- resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
- engines: {node: '>= 0.8.0'}
+ type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
- dev: true
- /type-fest@0.11.0:
- resolution: {integrity: sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==}
- engines: {node: '>=8'}
- dev: true
+ type-fest@0.11.0: {}
- /type-fest@0.20.2:
- resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
- engines: {node: '>=10'}
- dev: true
+ type-fest@0.20.2: {}
- /type-fest@0.21.3:
- resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
- engines: {node: '>=10'}
- dev: true
+ type-fest@0.21.3: {}
- /type-fest@1.4.0:
- resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
- engines: {node: '>=10'}
- dev: true
+ type-fest@1.4.0: {}
- /type-is@1.6.18:
- resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
- engines: {node: '>= 0.6'}
+ type-fest@4.41.0: {}
+
+ type-is@1.6.18:
dependencies:
media-typer: 0.3.0
mime-types: 2.1.35
- dev: true
- /typed-array-buffer@1.0.1:
- resolution: {integrity: sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==}
- engines: {node: '>= 0.4'}
+ type-is@2.1.0:
+ dependencies:
+ content-type: 2.0.0
+ media-typer: 1.1.0
+ mime-types: 3.0.2
+
+ typed-array-buffer@1.0.3:
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
es-errors: 1.3.0
- is-typed-array: 1.1.13
+ is-typed-array: 1.1.15
- /typed-array-byte-length@1.0.0:
- resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
- engines: {node: '>= 0.4'}
+ typed-array-byte-length@1.0.3:
dependencies:
- call-bind: 1.0.7
- for-each: 0.3.3
- has-proto: 1.0.1
- is-typed-array: 1.1.13
+ call-bind: 1.0.9
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
- /typed-array-byte-offset@1.0.1:
- resolution: {integrity: sha512-tcqKMrTRXjqvHN9S3553NPCaGL0VPgFI92lXszmrE8DMhiDPLBYLlvo8Uu4WZAAX/aGqp/T1sbA4ph8EWjDF9Q==}
- engines: {node: '>= 0.4'}
+ typed-array-byte-offset@1.0.4:
dependencies:
- available-typed-arrays: 1.0.6
- call-bind: 1.0.7
- for-each: 0.3.3
- gopd: 1.0.1
- has-proto: 1.0.1
- is-typed-array: 1.1.13
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.9
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+ reflect.getprototypeof: 1.0.10
- /typed-array-length@1.0.4:
- resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
+ typed-array-length@1.0.8:
dependencies:
- call-bind: 1.0.7
- for-each: 0.3.3
- is-typed-array: 1.1.13
+ call-bind: 1.0.9
+ for-each: 0.3.5
+ gopd: 1.2.0
+ is-typed-array: 1.1.15
+ possible-typed-array-names: 1.1.0
+ reflect.getprototypeof: 1.0.10
- /typedarray-to-buffer@3.1.5:
- resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
+ typedarray-to-buffer@3.1.5:
dependencies:
is-typedarray: 1.0.0
- dev: true
- /typedarray@0.0.6:
- resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
- dev: false
+ typedarray@0.0.6: {}
- /typescript-memoize@1.1.1:
- resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==}
+ typescript-memoize@1.1.1: {}
- /uc.micro@1.0.6:
- resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
- dev: true
+ uc.micro@1.0.6: {}
- /uglify-js@3.17.4:
- resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
- engines: {node: '>=0.8.0'}
- hasBin: true
- requiresBuild: true
+ uc.micro@2.1.0: {}
+
+ uglify-js@3.19.3:
optional: true
- /unbox-primitive@1.0.2:
- resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+ unbox-primitive@1.1.0:
dependencies:
- call-bind: 1.0.7
- has-bigints: 1.0.2
- has-symbols: 1.0.3
- which-boxed-primitive: 1.0.2
+ call-bound: 1.0.4
+ has-bigints: 1.1.0
+ has-symbols: 1.1.0
+ which-boxed-primitive: 1.1.1
- /underscore.string@3.3.6:
- resolution: {integrity: sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==}
+ underscore.string@3.3.6:
dependencies:
sprintf-js: 1.1.3
util-deprecate: 1.0.2
- /underscore@1.13.6:
- resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==}
- dev: true
+ underscore@1.13.8: {}
- /undici-types@5.26.5:
- resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ undici-types@7.24.6: {}
- /unicode-canonical-property-names-ecmascript@2.0.0:
- resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
- engines: {node: '>=4'}
+ unicode-canonical-property-names-ecmascript@2.0.1: {}
- /unicode-match-property-ecmascript@2.0.0:
- resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
- engines: {node: '>=4'}
+ unicode-match-property-ecmascript@2.0.0:
dependencies:
- unicode-canonical-property-names-ecmascript: 2.0.0
- unicode-property-aliases-ecmascript: 2.1.0
+ unicode-canonical-property-names-ecmascript: 2.0.1
+ unicode-property-aliases-ecmascript: 2.2.0
- /unicode-match-property-value-ecmascript@2.1.0:
- resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
- engines: {node: '>=4'}
+ unicode-match-property-value-ecmascript@2.2.1: {}
- /unicode-property-aliases-ecmascript@2.1.0:
- resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
- engines: {node: '>=4'}
+ unicode-property-aliases-ecmascript@2.2.0: {}
- /union-value@1.0.1:
- resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
- engines: {node: '>=0.10.0'}
+ unicorn-magic@0.3.0: {}
+
+ union-value@1.0.1:
dependencies:
arr-union: 3.1.0
get-value: 2.0.6
is-extendable: 0.1.1
set-value: 2.0.1
- /unique-filename@1.1.1:
- resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
+ unique-filename@1.1.1:
dependencies:
unique-slug: 2.0.2
- dev: false
- /unique-slug@2.0.2:
- resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
+ unique-slug@2.0.2:
dependencies:
imurmurhash: 0.1.4
- dev: false
- /unique-string@2.0.0:
- resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
- engines: {node: '>=8'}
+ unique-string@2.0.0:
dependencies:
crypto-random-string: 2.0.0
- dev: true
- /universalify@0.1.2:
- resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
- engines: {node: '>= 4.0.0'}
+ universalify@0.1.2: {}
- /universalify@2.0.1:
- resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
- engines: {node: '>= 10.0.0'}
+ universalify@2.0.1: {}
- /unpipe@1.0.0:
- resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
- engines: {node: '>= 0.8'}
- dev: true
+ unpipe@1.0.0: {}
- /unset-value@1.0.0:
- resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
- engines: {node: '>=0.10.0'}
+ unset-value@1.0.0:
dependencies:
has-value: 0.3.1
isobject: 3.0.1
- /upath@1.2.0:
- resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
- engines: {node: '>=4'}
- dev: false
+ upath@1.2.0:
optional: true
- /upath@2.0.1:
- resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==}
- engines: {node: '>=4'}
- dev: true
+ upath@2.0.1: {}
- /update-browserslist-db@1.0.13(browserslist@4.23.0):
- resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
- hasBin: true
- peerDependencies:
- browserslist: '>= 4.21.0'
+ update-browserslist-db@1.2.3(browserslist@4.28.2):
dependencies:
- browserslist: 4.23.0
- escalade: 3.1.2
- picocolors: 1.0.0
+ browserslist: 4.28.2
+ escalade: 3.2.0
+ picocolors: 1.1.1
- /uri-js@4.4.1:
- resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ uri-js@4.4.1:
dependencies:
punycode: 2.3.1
- /urix@0.1.0:
- resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
- deprecated: Please see https://github.com/lydell/urix#deprecated
+ urix@0.1.0: {}
- /url-parse-lax@3.0.0:
- resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==}
- engines: {node: '>=4'}
+ url-parse-lax@3.0.0:
dependencies:
prepend-http: 2.0.0
- dev: true
- /url@0.11.3:
- resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==}
+ url@0.11.4:
dependencies:
punycode: 1.4.1
- qs: 6.11.2
- dev: false
+ qs: 6.15.2
- /use@3.1.1:
- resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
- engines: {node: '>=0.10.0'}
+ use@3.1.1: {}
- /username-sync@1.0.3:
- resolution: {integrity: sha512-m/7/FSqjJNAzF2La448c/aEom0gJy7HY7Y509h6l0ePvEkFictAGptwWaj1msWJ38JbfEDOUoE8kqFee9EHKdA==}
+ username-sync@1.0.3: {}
- /util-deprecate@1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ util-deprecate@1.0.2: {}
- /util@0.10.4:
- resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==}
+ util@0.10.4:
dependencies:
inherits: 2.0.3
- dev: false
- /util@0.11.1:
- resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==}
+ util@0.11.1:
dependencies:
inherits: 2.0.3
- dev: false
- /utils-merge@1.0.1:
- resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
- engines: {node: '>= 0.4.0'}
- dev: true
+ utils-merge@1.0.1: {}
- /uuid@8.3.2:
- resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
- hasBin: true
+ uuid@8.3.2: {}
- /v8-compile-cache@2.4.0:
- resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==}
- dev: true
+ v8-compile-cache@2.4.0: {}
- /validate-npm-package-license@3.0.4:
- resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+ validate-npm-package-license@3.0.4:
dependencies:
spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1
- dev: true
- /validate-npm-package-name@5.0.0:
- resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- dependencies:
- builtins: 5.0.1
- dev: true
+ validate-npm-package-name@5.0.1: {}
- /validate-peer-dependencies@1.2.0:
- resolution: {integrity: sha512-nd2HUpKc6RWblPZQ2GDuI65sxJ2n/UqZwSBVtj64xlWjMx0m7ZB2m9b2JS3v1f+n9VWH/dd1CMhkHfP6pIdckA==}
+ validate-peer-dependencies@1.2.0:
dependencies:
resolve-package-path: 3.1.0
- semver: 7.6.0
- dev: true
+ semver: 7.8.1
- /vary@1.1.2:
- resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
- engines: {node: '>= 0.8'}
- dev: true
+ vary@1.1.2: {}
- /vinyl-buffer@1.0.1:
- resolution: {integrity: sha512-LRBE2/g3C1hSHL2k/FynSZcVTRhEw8sb08oKGt/0hukZXwrh2m8nfy+r5yLhGEk7eFFuclhyIuPct/Bxlxk6rg==}
+ vinyl-buffer@1.0.1:
dependencies:
bl: 1.2.3
through2: 2.0.5
- dev: false
- /vm-browserify@1.1.2:
- resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==}
- dev: false
+ vm-browserify@1.1.2: {}
- /walk-sync@0.2.7:
- resolution: {integrity: sha512-OH8GdRMowEFr0XSHQeX5fGweO6zSVHo7bG/0yJQx6LAj9Oukz0C8heI3/FYectT66gY0IPGe89kOvU410/UNpg==}
+ w3c-keyname@2.2.8: {}
+
+ walk-sync@0.2.7:
dependencies:
ensure-posix-path: 1.1.1
matcher-collection: 1.1.2
- dev: true
- /walk-sync@0.3.4:
- resolution: {integrity: sha512-ttGcuHA/OBnN2pcM6johpYlEms7XpO5/fyKIr48541xXedan4roO8cS1Q2S/zbbjGH/BarYDAMeS2Mi9HE5Tig==}
+ walk-sync@0.3.4:
dependencies:
ensure-posix-path: 1.1.1
matcher-collection: 1.1.2
- /walk-sync@1.1.4:
- resolution: {integrity: sha512-nowc9thB/Jg0KW4TgxoRjLLYRPvl3DB/98S89r4ZcJqq2B0alNcKDh6pzLkBSkPMzRSMsJghJHQi79qw0YWEkA==}
+ walk-sync@1.1.4:
dependencies:
'@types/minimatch': 3.0.5
ensure-posix-path: 1.1.1
matcher-collection: 1.1.2
- /walk-sync@2.2.0:
- resolution: {integrity: sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==}
- engines: {node: 8.* || >= 10.*}
+ walk-sync@2.2.0:
dependencies:
'@types/minimatch': 3.0.5
ensure-posix-path: 1.1.1
matcher-collection: 2.0.1
- minimatch: 3.1.2
+ minimatch: 3.1.5
- /walk-sync@3.0.0:
- resolution: {integrity: sha512-41TvKmDGVpm2iuH7o+DAOt06yyu/cSHpX3uzAwetzASvlNtVddgIjXIb2DfB/Wa20B1Jo86+1Dv1CraSU7hWdw==}
- engines: {node: 10.* || >= 12.*}
+ walk-sync@3.0.0:
dependencies:
'@types/minimatch': 3.0.5
ensure-posix-path: 1.1.1
matcher-collection: 2.0.1
- minimatch: 3.1.2
+ minimatch: 3.1.5
- /walker@1.0.8:
- resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+ walker@1.0.8:
dependencies:
makeerror: 1.0.12
- dev: true
- /watch-detector@1.0.2:
- resolution: {integrity: sha512-MrJK9z7kD5Gl3jHBnnBVHvr1saVGAfmkyyrvuNzV/oe0Gr1nwZTy5VSA0Gw2j2Or0Mu8HcjUa44qlBvC2Ofnpg==}
- engines: {node: '>= 8'}
+ watch-detector@1.0.2:
dependencies:
heimdalljs-logger: 0.1.10
silent-error: 1.1.1
tmp: 0.1.0
transitivePeerDependencies:
- supports-color
- dev: true
- /watchpack-chokidar2@2.0.1:
- resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==}
- requiresBuild: true
+ watchpack-chokidar2@2.0.1:
dependencies:
chokidar: 2.1.8
transitivePeerDependencies:
- supports-color
- dev: false
optional: true
- /watchpack@1.7.5:
- resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==}
+ watchpack@1.7.5:
dependencies:
graceful-fs: 4.2.11
neo-async: 2.6.2
@@ -15310,57 +19573,35 @@ packages:
watchpack-chokidar2: 2.0.1
transitivePeerDependencies:
- supports-color
- dev: false
- /watchpack@2.4.0:
- resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
- engines: {node: '>=10.13.0'}
+ watchpack@2.5.1:
dependencies:
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
- /wcwidth@1.0.1:
- resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+ wcwidth@1.0.1:
dependencies:
defaults: 1.0.4
- dev: true
- /webidl-conversions@3.0.1:
- resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
- dev: true
+ webidl-conversions@3.0.1: {}
- /webpack-sources@1.4.3:
- resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==}
+ webpack-sources@1.4.3:
dependencies:
source-list-map: 2.0.1
source-map: 0.6.1
- dev: false
- /webpack-sources@3.2.3:
- resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
- engines: {node: '>=10.13.0'}
+ webpack-sources@3.5.0: {}
- /webpack@4.47.0:
- resolution: {integrity: sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==}
- engines: {node: '>=6.11.5'}
- hasBin: true
- peerDependencies:
- webpack-cli: '*'
- webpack-command: '*'
- peerDependenciesMeta:
- webpack-cli:
- optional: true
- webpack-command:
- optional: true
+ webpack@4.47.0:
dependencies:
'@webassemblyjs/ast': 1.9.0
'@webassemblyjs/helper-module-context': 1.9.0
'@webassemblyjs/wasm-edit': 1.9.0
'@webassemblyjs/wasm-parser': 1.9.0
acorn: 6.4.2
- ajv: 6.12.6
- ajv-keywords: 3.5.2(ajv@6.12.6)
- chrome-trace-event: 1.0.3
+ ajv: 6.15.0
+ ajv-keywords: 3.5.2(ajv@6.15.0)
+ chrome-trace-event: 1.0.4
enhanced-resolve: 4.5.0
eslint-scope: 4.0.3
json-parse-better-errors: 1.0.2
@@ -15373,276 +19614,214 @@ packages:
node-libs-browser: 2.2.1
schema-utils: 1.0.0
tapable: 1.1.3
- terser-webpack-plugin: 1.4.5(webpack@4.47.0)
+ terser-webpack-plugin: 1.4.6(webpack@4.47.0)
watchpack: 1.7.5
webpack-sources: 1.4.3
transitivePeerDependencies:
- supports-color
- dev: false
- /webpack@5.89.0:
- resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==}
- engines: {node: '>=10.13.0'}
- hasBin: true
- peerDependencies:
- webpack-cli: '*'
- peerDependenciesMeta:
- webpack-cli:
- optional: true
+ webpack@5.107.2(postcss@8.5.15):
dependencies:
- '@types/eslint-scope': 3.7.7
- '@types/estree': 1.0.5
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/wasm-edit': 1.11.6
- '@webassemblyjs/wasm-parser': 1.11.6
- acorn: 8.11.3
- acorn-import-assertions: 1.9.0(acorn@8.11.3)
- browserslist: 4.23.0
- chrome-trace-event: 1.0.3
- enhanced-resolve: 5.15.0
- es-module-lexer: 1.4.1
+ '@types/estree': 1.0.9
+ '@types/json-schema': 7.0.15
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/wasm-edit': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ acorn: 8.16.0
+ acorn-import-phases: 1.0.4(acorn@8.16.0)
+ browserslist: 4.28.2
+ chrome-trace-event: 1.0.4
+ enhanced-resolve: 5.22.1
+ es-module-lexer: 2.1.0
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
- json-parse-even-better-errors: 2.3.1
- loader-runner: 4.3.0
- mime-types: 2.1.35
+ loader-runner: 4.3.2
+ mime-db: 1.54.0
neo-async: 2.6.2
- schema-utils: 3.3.0
- tapable: 2.2.1
- terser-webpack-plugin: 5.3.10(webpack@5.89.0)
- watchpack: 2.4.0
- webpack-sources: 3.2.3
+ schema-utils: 4.3.3
+ tapable: 2.3.3
+ terser-webpack-plugin: 5.6.1(postcss@8.5.15)(webpack@5.107.2(postcss@8.5.15))
+ watchpack: 2.5.1
+ webpack-sources: 3.5.0
transitivePeerDependencies:
+ - '@minify-html/node'
- '@swc/core'
+ - '@swc/css'
+ - '@swc/html'
+ - clean-css
+ - cssnano
+ - csso
- esbuild
+ - html-minifier-terser
+ - lightningcss
+ - postcss
- uglify-js
- /websocket-driver@0.7.4:
- resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
- engines: {node: '>=0.8.0'}
+ websocket-driver@0.7.4:
dependencies:
- http-parser-js: 0.5.8
+ http-parser-js: 0.5.10
safe-buffer: 5.2.1
websocket-extensions: 0.1.4
- dev: true
- /websocket-extensions@0.1.4:
- resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
- engines: {node: '>=0.8.0'}
- dev: true
+ websocket-extensions@0.1.4: {}
- /whatwg-url@5.0.0:
- resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+ whatwg-url@5.0.0:
dependencies:
tr46: 0.0.3
webidl-conversions: 3.0.1
- dev: true
- /which-boxed-primitive@1.0.2:
- resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
+ which-boxed-primitive@1.1.1:
dependencies:
- is-bigint: 1.0.4
- is-boolean-object: 1.1.2
- is-number-object: 1.0.7
- is-string: 1.0.7
- is-symbol: 1.0.4
+ is-bigint: 1.1.0
+ is-boolean-object: 1.2.2
+ is-number-object: 1.1.1
+ is-string: 1.1.1
+ is-symbol: 1.1.1
- /which-typed-array@1.1.14:
- resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==}
- engines: {node: '>= 0.4'}
+ which-builtin-type@1.2.1:
dependencies:
- available-typed-arrays: 1.0.6
- call-bind: 1.0.7
- for-each: 0.3.3
- gopd: 1.0.1
+ call-bound: 1.0.4
+ function.prototype.name: 1.1.8
has-tostringtag: 1.0.2
+ is-async-function: 2.1.1
+ is-date-object: 1.1.0
+ is-finalizationregistry: 1.1.1
+ is-generator-function: 1.1.2
+ is-regex: 1.2.1
+ is-weakref: 1.1.1
+ isarray: 2.0.5
+ which-boxed-primitive: 1.1.1
+ which-collection: 1.0.2
+ which-typed-array: 1.1.21
- /which@1.3.1:
- resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
- hasBin: true
+ which-collection@1.0.2:
dependencies:
- isexe: 2.0.0
- dev: true
+ is-map: 2.0.3
+ is-set: 2.0.3
+ is-weakmap: 2.0.2
+ is-weakset: 2.0.4
- /which@2.0.2:
- resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
- engines: {node: '>= 8'}
- hasBin: true
+ which-typed-array@1.1.21:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ which@1.3.1:
dependencies:
isexe: 2.0.0
- /wide-align@1.1.5:
- resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
+ which@2.0.2:
dependencies:
- string-width: 4.2.3
- dev: true
+ isexe: 2.0.0
- /wordwrap@1.0.0:
- resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
+ word-wrap@1.2.5: {}
- /worker-farm@1.7.0:
- resolution: {integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==}
+ wordwrap@1.0.0: {}
+
+ worker-farm@1.7.0:
dependencies:
errno: 0.1.8
- dev: false
- /workerpool@3.1.2:
- resolution: {integrity: sha512-WJFA0dGqIK7qj7xPTqciWBH5DlJQzoPjsANvc3Y4hNB0SScT+Emjvt0jPPkDBUjBNngX1q9hHgt1Gfwytu6pug==}
+ workerpool@3.1.2:
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.29.7
object-assign: 4.1.1
rsvp: 4.8.5
transitivePeerDependencies:
- supports-color
- /workerpool@6.5.1:
- resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==}
+ workerpool@6.5.1: {}
- /wrap-ansi@6.2.0:
- resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
- engines: {node: '>=8'}
+ wrap-ansi@6.2.0:
dependencies:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1
- dev: true
- /wrap-ansi@7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
+ wrap-ansi@7.0.0:
dependencies:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1
- /wrap-ansi@8.1.0:
- resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
- engines: {node: '>=12'}
+ wrap-ansi@8.1.0:
dependencies:
- ansi-styles: 6.2.1
+ ansi-styles: 6.2.3
string-width: 5.1.2
- strip-ansi: 7.1.0
- dev: false
+ strip-ansi: 7.2.0
- /wrappy@1.0.2:
- resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+ wrappy@1.0.2: {}
- /writable-consumable-stream@3.0.1:
- resolution: {integrity: sha512-rAOJTA/sMgXD/X6eMwbQJe49w+Fnkdx3iV5oUzdmiZ7Bwx03khqUnAKIpzp/hbI8q2EP5NfjXgIXN0MsipfHeg==}
+ writable-consumable-stream@3.0.1:
dependencies:
consumable-stream: 2.0.0
- dev: false
- /write-file-atomic@3.0.3:
- resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
+ write-file-atomic@3.0.3:
dependencies:
imurmurhash: 0.1.4
is-typedarray: 1.0.0
signal-exit: 3.0.7
typedarray-to-buffer: 3.1.5
- dev: true
- /write-file-atomic@5.0.1:
- resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ write-file-atomic@5.0.1:
dependencies:
imurmurhash: 0.1.4
signal-exit: 4.1.0
- dev: true
- /ws@8.11.0:
- resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ^5.0.2
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- dev: true
+ ws@8.20.1: {}
- /ws@8.16.0:
- resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: '>=5.0.2'
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- dev: false
+ ws@8.21.0: {}
- /xdg-basedir@4.0.0:
- resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==}
- engines: {node: '>=8'}
- dev: true
+ xdg-basedir@4.0.0: {}
- /xtend@4.0.2:
- resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
- engines: {node: '>=0.4'}
+ xtend@4.0.2: {}
- /y18n@4.0.3:
- resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
- dev: false
+ y18n@4.0.3: {}
- /y18n@5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- engines: {node: '>=10'}
- dev: true
+ y18n@5.0.8: {}
- /yallist@3.1.1:
- resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+ yallist@3.1.1: {}
- /yallist@4.0.0:
- resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+ yallist@4.0.0: {}
- /yam@1.0.0:
- resolution: {integrity: sha512-Hv9xxHtsJ9228wNhk03xnlDReUuWVvHwM4rIbjdAXYvHLs17xjuyF50N6XXFMN6N0omBaqgOok/MCK3At9fTAg==}
- engines: {node: ^4.5 || 6.* || >= 7.*}
+ yam@1.0.0:
dependencies:
fs-extra: 4.0.3
lodash.merge: 4.6.2
- dev: true
- /yaml@2.3.4:
- resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
- engines: {node: '>= 14'}
- dev: false
+ yaml-types@0.4.0(yaml@2.9.0):
+ dependencies:
+ yaml: 2.9.0
- /yargs-parser@20.2.9:
- resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
- engines: {node: '>=10'}
- dev: true
+ yaml@2.9.0: {}
- /yargs-parser@21.1.1:
- resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
- engines: {node: '>=12'}
- dev: true
+ yargs-parser@20.2.9: {}
- /yargs@17.7.2:
- resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
- engines: {node: '>=12'}
+ yargs-parser@21.1.1: {}
+
+ yargs@17.7.2:
dependencies:
cliui: 8.0.1
- escalade: 3.1.2
+ escalade: 3.2.0
get-caller-file: 2.0.5
require-directory: 2.1.1
string-width: 4.2.3
y18n: 5.0.8
yargs-parser: 21.1.1
- dev: true
- /yocto-queue@0.1.0:
- resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
- engines: {node: '>=10'}
+ yocto-queue@0.1.0: {}
- /yocto-queue@1.0.0:
- resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
- engines: {node: '>=12.20'}
- dev: true
+ yocto-queue@1.2.2: {}
+
+ yoctocolors-cjs@2.1.3: {}
+
+ yoctocolors@2.1.2: {}
+
+ zimmerframe@1.1.4: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 00000000..96b2ab7d
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,8 @@
+allowBuilds:
+ '@fortawesome/fontawesome-common-types': false
+ '@fortawesome/fontawesome-svg-core': false
+ '@fortawesome/free-brands-svg-icons': false
+ '@fortawesome/free-solid-svg-icons': false
+ core-js: false
+ fsevents: false
+minimumReleaseAge: 0
diff --git a/server/migrations/2023_11_15_023300_create_warehouses_table.php b/server/migrations/2023_11_15_023300_create_warehouses_table.php
new file mode 100644
index 00000000..e9cc315a
--- /dev/null
+++ b/server/migrations/2023_11_15_023300_create_warehouses_table.php
@@ -0,0 +1,88 @@
+increments('id');
+ $table->uuid('uuid')->nullable()->unique();
+ $table->string('public_id')->nullable()->unique();
+
+ // Ownership / authorship
+ $table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
+ $table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
+
+ // Geographic anchor — the Place record holds address, coordinates, and geocoding data
+ $table->foreignUuid('place_uuid')->nullable()->index()->references('uuid')->on('places');
+
+ // Core identity
+ $table->string('name')->nullable()->comment('Human-readable warehouse name');
+ $table->string('code')->nullable()->unique()->comment('Short warehouse code, e.g. WH-001');
+
+ // Classification
+ $table->string('type')->nullable()->default('standard')
+ ->comment('standard | cold-storage | hazmat | bonded | cross-dock | fulfillment-center');
+ $table->string('status')->nullable()->default('active')
+ ->comment('active | inactive | under-maintenance | closed');
+
+ // Physical capacity
+ $table->unsignedInteger('capacity')->nullable()
+ ->comment('Total storage capacity in arbitrary units (pallets, bins, m³, etc.)');
+ $table->unsignedInteger('current_utilization')->nullable()->default(0)
+ ->comment('Current used capacity in the same units as capacity');
+ $table->decimal('floor_area_sqm', 10, 2)->nullable()
+ ->comment('Total floor area in square metres');
+
+ // Operations
+ $table->json('operating_hours')->nullable()
+ ->comment('JSON map of weekday → { open, close } operating hours');
+ $table->string('timezone')->nullable()
+ ->comment('IANA timezone identifier, e.g. America/New_York');
+ $table->string('phone')->nullable();
+ $table->string('email')->nullable();
+ $table->string('manager_uuid')->nullable()->index()
+ ->comment('UUID of the user responsible for this warehouse');
+
+ // Dock count (denormalised for quick display; authoritative count via pallet_warehouse_docks)
+ $table->unsignedTinyInteger('total_docks')->nullable()->default(0);
+
+ // Flags
+ $table->boolean('is_active')->default(true);
+ $table->boolean('is_default')->default(false)
+ ->comment('Whether this is the company default warehouse');
+
+ // Flexible metadata
+ $table->json('meta')->nullable();
+
+ $table->timestamps();
+ $table->softDeletes();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('pallet_warehouses');
+ }
+};
diff --git a/server/migrations/2023_11_15_023305_create_products_tables.php b/server/migrations/2023_11_15_023305_create_products_tables.php
new file mode 100644
index 00000000..7158d654
--- /dev/null
+++ b/server/migrations/2023_11_15_023305_create_products_tables.php
@@ -0,0 +1,98 @@
+increments('id');
+ $table->uuid('uuid')->nullable()->unique();
+ $table->string('public_id')->nullable()->unique();
+ $table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
+ $table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
+ $table->foreignUuid('category_uuid')->nullable()->index()->references('uuid')->on('categories');
+ $table->foreignUuid('supplier_uuid')->nullable()->index()->references('uuid')->on('vendors');
+ $table->mediumText('photo_uuid')->nullable();
+ $table->string('internal_id')->nullable()->index();
+ $table->string('name')->nullable()->index();
+ $table->mediumText('description')->nullable();
+ $table->string('sku')->nullable()->index();
+ $table->mediumText('barcode')->nullable();
+ $table->string('currency', 3)->nullable();
+ $table->decimal('unit_cost', 12, 4)->nullable();
+ $table->decimal('unit_price', 12, 4)->nullable();
+ $table->decimal('sale_price', 12, 4)->nullable();
+ $table->decimal('declared_value', 12, 4)->nullable();
+ $table->decimal('weight', 12, 4)->nullable();
+ $table->string('weight_unit', 25)->nullable();
+ $table->decimal('length', 12, 4)->nullable();
+ $table->decimal('width', 12, 4)->nullable();
+ $table->decimal('height', 12, 4)->nullable();
+ $table->string('dimensions_unit', 25)->nullable();
+ $table->json('dimensions')->nullable();
+ $table->boolean('has_variants')->default(false);
+ $table->boolean('is_serialized')->default(false);
+ $table->boolean('is_lot_tracked')->default(false);
+ $table->boolean('is_kit')->default(false);
+ $table->boolean('is_perishable')->default(false);
+ $table->boolean('requires_quality_check')->default(false);
+ $table->integer('reorder_point')->nullable();
+ $table->integer('reorder_quantity')->nullable();
+ $table->integer('shelf_life_days')->nullable();
+ $table->string('status')->nullable()->default('active')->index();
+ $table->string('slug')->nullable()->index();
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->unique(['company_uuid', 'sku']);
+ });
+
+ Schema::create('pallet_product_variants', function (Blueprint $table) {
+ $table->increments('id');
+ $table->uuid('uuid')->nullable()->unique();
+ $table->string('public_id')->nullable()->unique();
+ $table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
+ $table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
+ $table->foreignUuid('product_uuid')->index()->references('uuid')->on('pallet_products')->onDelete('cascade');
+ $table->string('name')->nullable();
+ $table->string('sku')->nullable()->index();
+ $table->mediumText('barcode')->nullable();
+ $table->json('option_values')->nullable();
+ $table->string('currency', 3)->nullable();
+ $table->decimal('unit_cost', 12, 4)->nullable();
+ $table->decimal('unit_price', 12, 4)->nullable();
+ $table->decimal('sale_price', 12, 4)->nullable();
+ $table->decimal('declared_value', 12, 4)->nullable();
+ $table->decimal('weight', 12, 4)->nullable();
+ $table->string('weight_unit', 25)->nullable();
+ $table->string('status')->nullable()->default('active')->index();
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->unique(['company_uuid', 'sku']);
+ $table->index(['product_uuid', 'status']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('pallet_product_variants');
+ Schema::dropIfExists('pallet_products');
+ }
+};
diff --git a/server/migrations/2023_11_15_023331_create_audits_table.php b/server/migrations/2023_11_15_023331_create_audits_table.php
index 1b0588c3..8caac31c 100644
--- a/server/migrations/2023_11_15_023331_create_audits_table.php
+++ b/server/migrations/2023_11_15_023331_create_audits_table.php
@@ -4,7 +4,37 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateAuditsTable extends Migration
+/**
+ * Creates the pallet_audits table.
+ *
+ * This table serves as the immutable operational audit trail for the Pallet
+ * WMS module. It is distinct from the Spatie activity_log table, which records
+ * low-level model attribute changes automatically.
+ *
+ * The pallet_audits table records high-level, intentional warehouse business
+ * events such as stock adjustments, cycle count completions, purchase order
+ * receipts, sales order fulfilments, and stock transfers. Each entry is written
+ * programmatically by the system when a significant operational event occurs —
+ * it is never created, edited, or deleted directly by a user via the API.
+ *
+ * Key concepts:
+ * - `event_type` : Machine-readable category key for filtering
+ * e.g. stock_adjustment | cycle_count | po_received |
+ * so_fulfilled | stock_transfer | manual
+ * - `action` : Human-readable label for the event row
+ * e.g. "Stock Adjusted", "Cycle Count Completed"
+ * - `type` : Secondary classification within an event_type
+ * e.g. for stock_adjustment: add | remove | correction | damage | expiry
+ * - `reason` : Reason code or user-supplied explanation for the event
+ * - `auditable_uuid` : UUID of the primary subject model (polymorphic)
+ * - `auditable_type` : Fully-qualified class name of the subject model
+ * - `old_values` : Snapshot of relevant values before the event (optional)
+ * - `new_values` : Snapshot of relevant values after the event (optional)
+ * - `meta` : Arbitrary structured context data for the event
+ * - `scheduled_at` : When the event was scheduled (for planned operations)
+ * - `completed_at` : When the event was completed
+ */
+return new class extends Migration
{
/**
* Run the migrations.
@@ -15,25 +45,54 @@ public function up()
{
Schema::create('pallet_audits', function (Blueprint $table) {
$table->increments('id');
- $table->uuid('uuid')->nullable()->unique();
- $table->string('public_id')->nullable()->unique();
- $table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
- $table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
- $table->foreignUuid('performed_by_uuid')->nullable()->index()->references('uuid')->on('users');
- $table->uuid('auditable_uuid')->nullabe()->index();
- $table->string('auditable_type')->nullabe();
- $table->mediumText('reason')->nullabe();
- $table->mediumText('comments')->nullabe();
- $table->string('action')->nullabe();
- $table->string('type')->nullabe();
- $table->json('meta')->nullabe();
- $table->json('new_values')->nullabe();
- $table->json('old_values')->nullabe();
+ $table->string('uuid', 191)->nullable()->unique();
+ $table->string('public_id', 191)->nullable()->unique()->index();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('created_by_uuid', 191)->nullable()->index();
+ $table->string('performed_by_uuid', 191)->nullable()->index();
+
+ // Polymorphic subject: the primary model this event relates to
+ $table->string('auditable_uuid', 191)->nullable()->index();
+ $table->string('auditable_type', 191)->nullable();
+
+ // Machine-readable event category for filtering and grouping
+ $table->string('event_type', 100)->nullable()->index();
+
+ // Human-readable label for the event
+ $table->string('action', 191)->nullable()->index();
+
+ // Secondary classification within an event_type
+ $table->string('type', 100)->nullable()->index();
+
+ // Reason code or user-supplied explanation
+ $table->mediumText('reason')->nullable();
+
+ // Free-form notes attached to the event
+ $table->mediumText('comments')->nullable();
+
+ // State snapshots before and after the event
+ $table->json('old_values')->nullable();
+ $table->json('new_values')->nullable();
+
+ // Arbitrary structured context data
+ $table->json('meta')->nullable();
+
+ // Timestamps for scheduled and completed events
$table->timestamp('scheduled_at')->nullable();
$table->timestamp('completed_at')->nullable();
+
$table->timestamp('created_at')->nullable()->index();
$table->timestamp('updated_at')->nullable();
$table->softDeletes();
+
+ // Foreign key constraints
+ $table->foreign('company_uuid')->references('uuid')->on('companies')->onDelete('cascade');
+ $table->foreign('created_by_uuid')->references('uuid')->on('users')->onDelete('set null');
+ $table->foreign('performed_by_uuid')->references('uuid')->on('users')->onDelete('set null');
+
+ // Composite indexes for common query patterns
+ $table->index(['company_uuid', 'event_type', 'created_at']);
+ $table->index(['auditable_uuid', 'auditable_type']);
});
}
@@ -46,4 +105,4 @@ public function down()
{
Schema::dropIfExists('pallet_audits');
}
-}
+};
diff --git a/server/migrations/2023_11_15_023340_create_batches_table.php b/server/migrations/2023_11_15_023340_create_batches_table.php
index 4c53680e..9e5dbb74 100644
--- a/server/migrations/2023_11_15_023340_create_batches_table.php
+++ b/server/migrations/2023_11_15_023340_create_batches_table.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateBatchesTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -19,8 +19,9 @@ public function up()
$table->string('public_id')->nullable()->unique();
$table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
$table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
- $table->string('batch_number')->nullabe();
- $table->foreignUuid('product_uuid')->nullable()->index()->references('uuid')->on('entities');
+ $table->string('batch_number')->nullable();
+ $table->foreignUuid('product_uuid')->nullable()->index()->references('uuid')->on('pallet_products');
+ $table->foreignUuid('variant_uuid')->nullable()->index()->references('uuid')->on('pallet_product_variants');
$table->integer('quantity')->nullable();
$table->json('meta')->nullable();
$table->timestamp('manufacture_date_at')->nullable();
@@ -40,4 +41,4 @@ public function down()
{
Schema::dropIfExists('pallet_batches');
}
-}
+};
diff --git a/server/migrations/2023_11_15_023348_create_inventory_table.php b/server/migrations/2023_11_15_023348_create_inventory_table.php
index 491279d9..2a25ff81 100644
--- a/server/migrations/2023_11_15_023348_create_inventory_table.php
+++ b/server/migrations/2023_11_15_023348_create_inventory_table.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateInventoryTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -20,8 +20,9 @@ public function up()
$table->string('status')->nullable();
$table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
$table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
- $table->foreignUuid('product_uuid')->nullable()->index()->references('uuid')->on('entities');
- $table->foreignUuid('warehouse_uuid')->nullable()->index()->references('uuid')->on('places');
+ $table->foreignUuid('product_uuid')->nullable()->index()->references('uuid')->on('pallet_products');
+ $table->foreignUuid('variant_uuid')->nullable()->index()->references('uuid')->on('pallet_product_variants');
+ $table->foreignUuid('warehouse_uuid')->nullable()->index()->references('uuid')->on('pallet_warehouses');
$table->foreignUuid('supplier_uuid')->nullable()->index()->references('uuid')->on('vendors');
$table->foreignUuid('batch_uuid')->nullable()->index()->references('uuid')->on('pallet_batches');
$table->mediumText('comments')->nullable();
@@ -44,4 +45,4 @@ public function down()
{
Schema::dropIfExists('pallet_inventories');
}
-}
+};
diff --git a/server/migrations/2023_11_15_023356_create_purchase_orders_table.php b/server/migrations/2023_11_15_023356_create_purchase_orders_table.php
index 5ec83f9c..8868f8d6 100644
--- a/server/migrations/2023_11_15_023356_create_purchase_orders_table.php
+++ b/server/migrations/2023_11_15_023356_create_purchase_orders_table.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreatePurchaseOrdersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -47,4 +47,4 @@ public function down()
{
Schema::dropIfExists('pallet_purchase_orders');
}
-}
+};
diff --git a/server/migrations/2023_11_15_023404_create_sales_orders_table.php b/server/migrations/2023_11_15_023404_create_sales_orders_table.php
index 9662f7c6..f0b39caa 100644
--- a/server/migrations/2023_11_15_023404_create_sales_orders_table.php
+++ b/server/migrations/2023_11_15_023404_create_sales_orders_table.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateSalesOrdersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -48,4 +48,4 @@ public function down()
{
Schema::dropIfExists('pallet_sales_orders');
}
-}
+};
diff --git a/server/migrations/2023_11_15_023411_create_stock_transactions_table.php b/server/migrations/2023_11_15_023411_create_stock_transactions_table.php
index ef703ec9..5af0d8be 100644
--- a/server/migrations/2023_11_15_023411_create_stock_transactions_table.php
+++ b/server/migrations/2023_11_15_023411_create_stock_transactions_table.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateStockTransactionsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -19,15 +19,16 @@ public function up()
$table->string('public_id')->nullable()->unique();
$table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
$table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
- $table->foreignUuid('product_uuid')->nullable()->index()->references('uuid')->on('entities');
- $table->foreignUuid('destination_uuid')->nullable()->index()->references('uuid')->on('places');
+ $table->foreignUuid('product_uuid')->nullable()->index()->references('uuid')->on('pallet_products');
+ $table->foreignUuid('variant_uuid')->nullable()->index()->references('uuid')->on('pallet_product_variants');
+ $table->foreignUuid('destination_uuid')->nullable()->index()->references('uuid')->on('pallet_warehouses');
$table->foreignUuid('batch_uuid')->nullable()->index()->references('uuid')->on('pallet_batches');
$table->uuid('source_uuid')->nullable()->index();
- $table->string('source_type')->nullabe();
- $table->json('meta')->nullabe();
- $table->string('transaction_type')->nullabe();
- $table->integer('quantity')->nullabe();
- $table->timestamp('transaction_created_at')->nullabe();
+ $table->string('source_type')->nullable();
+ $table->json('meta')->nullable();
+ $table->string('transaction_type')->nullable();
+ $table->integer('quantity')->nullable();
+ $table->timestamp('transaction_created_at')->nullable();
$table->timestamp('created_at')->nullable()->index();
$table->timestamp('updated_at')->nullable();
$table->softDeletes();
@@ -43,4 +44,4 @@ public function down()
{
Schema::dropIfExists('pallet_stock_transactions');
}
-}
+};
diff --git a/server/migrations/2023_11_15_034937_create_stock_adjustment_table.php b/server/migrations/2023_11_15_034937_create_stock_adjustment_table.php
index 0c01a2a8..6f7b961e 100644
--- a/server/migrations/2023_11_15_034937_create_stock_adjustment_table.php
+++ b/server/migrations/2023_11_15_034937_create_stock_adjustment_table.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateStockAdjustmentTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -19,15 +19,16 @@ public function up()
$table->string('public_id')->nullable()->unique();
$table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
$table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
- $table->foreignUuid('product_uuid')->nullable()->index()->references('uuid')->on('entities');
+ $table->foreignUuid('product_uuid')->nullable()->index()->references('uuid')->on('pallet_products');
+ $table->foreignUuid('variant_uuid')->nullable()->index()->references('uuid')->on('pallet_product_variants');
$table->foreignUuid('assignee_uuid')->nullable()->index()->references('uuid')->on('users');
$table->json('meta')->nullable();
$table->string('type')->nullable();
- $table->string('reason')->nullabe();
- $table->string('approval_required')->nullable();
+ $table->string('reason')->nullable();
+ $table->string('approval_required')->nullable();
$table->integer('before_quantity')->nullable();
$table->integer('after_quantity')->nullable();
- $table->integer('quantity')->nullabe();
+ $table->integer('quantity')->nullable();
$table->timestamp('created_at')->nullable()->index();
$table->timestamp('updated_at')->nullable();
$table->softDeletes();
@@ -43,4 +44,4 @@ public function down()
{
Schema::dropIfExists('pallet_stock_adjustment');
}
-}
+};
diff --git a/server/migrations/2023_11_17_052709_create_pallet_warehouse_sections.php b/server/migrations/2023_11_17_052709_create_pallet_warehouse_sections.php
index b1fd7a97..e9477b8b 100644
--- a/server/migrations/2023_11_17_052709_create_pallet_warehouse_sections.php
+++ b/server/migrations/2023_11_17_052709_create_pallet_warehouse_sections.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreatePalletWarehouseSections extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -19,7 +19,7 @@ public function up()
$table->string('public_id')->nullable()->unique();
$table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
$table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
- $table->foreignUuid('warehouse_uuid')->nullable()->index()->references('uuid')->on('places');
+ $table->foreignUuid('warehouse_uuid')->nullable()->index()->references('uuid')->on('pallet_warehouses');
$table->string('name')->nullable();
$table->mediumText('description')->nullable();
$table->polygon('area')->nullable();
@@ -38,4 +38,4 @@ public function down()
{
Schema::dropIfExists('pallet_warehouse_sections');
}
-}
+};
diff --git a/server/migrations/2023_11_17_052759_create_pallet_warehouse_aisles.php b/server/migrations/2023_11_17_052759_create_pallet_warehouse_aisles.php
index 81337c0a..29521091 100644
--- a/server/migrations/2023_11_17_052759_create_pallet_warehouse_aisles.php
+++ b/server/migrations/2023_11_17_052759_create_pallet_warehouse_aisles.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreatePalletWarehouseAisles extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -37,4 +37,4 @@ public function down()
{
Schema::dropIfExists('pallet_warehouse_aisles');
}
-}
+};
diff --git a/server/migrations/2023_11_17_052815_create_pallet_warehouse_racks.php b/server/migrations/2023_11_17_052815_create_pallet_warehouse_racks.php
index 39ba329c..4e7b9fa7 100644
--- a/server/migrations/2023_11_17_052815_create_pallet_warehouse_racks.php
+++ b/server/migrations/2023_11_17_052815_create_pallet_warehouse_racks.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreatePalletWarehouseRacks extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -37,4 +37,4 @@ public function down()
{
Schema::dropIfExists('pallet_warehouse_racks');
}
-}
+};
diff --git a/server/migrations/2023_11_17_052827_create_pallet_warehouse_bins.php b/server/migrations/2023_11_17_052827_create_pallet_warehouse_bins.php
index 000ed572..5d29aee2 100644
--- a/server/migrations/2023_11_17_052827_create_pallet_warehouse_bins.php
+++ b/server/migrations/2023_11_17_052827_create_pallet_warehouse_bins.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreatePalletWarehouseBins extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -38,4 +38,4 @@ public function down()
{
Schema::dropIfExists('pallet_warehouse_bins');
}
-}
+};
diff --git a/server/migrations/2023_11_17_052843_create_pallet_warehouse_docks.php b/server/migrations/2023_11_17_052843_create_pallet_warehouse_docks.php
index 94334709..fdf7cdac 100644
--- a/server/migrations/2023_11_17_052843_create_pallet_warehouse_docks.php
+++ b/server/migrations/2023_11_17_052843_create_pallet_warehouse_docks.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreatePalletWarehouseDocks extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -19,7 +19,7 @@ public function up()
$table->string('public_id')->nullable()->unique();
$table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
$table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
- $table->foreignUuid('warehouse_uuid')->nullable()->index()->references('uuid')->on('places');
+ $table->foreignUuid('warehouse_uuid')->nullable()->index()->references('uuid')->on('pallet_warehouses');
$table->string('dock_number')->nullable();
$table->string('direction')->nullable();
$table->string('capacity')->nullable();
@@ -40,4 +40,4 @@ public function down()
{
Schema::dropIfExists('pallet_warehouse_docks');
}
-}
+};
diff --git a/server/migrations/2023_12_05_084834_modify-sales-orders-table.php b/server/migrations/2023_12_05_084834_modify-sales-orders-table.php
index 3884d79c..ea4ba6dc 100644
--- a/server/migrations/2023_12_05_084834_modify-sales-orders-table.php
+++ b/server/migrations/2023_12_05_084834_modify-sales-orders-table.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class ModifySalesOrdersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -36,4 +36,4 @@ public function down()
$table->dropColumn('supplier_uuid');
});
}
-}
+};
diff --git a/server/migrations/2023_12_06_090936_add_manufactured_date_column_on_inventory.php b/server/migrations/2023_12_06_090936_add_manufactured_date_column_on_inventory.php
index ca36aab6..c9dd20d6 100644
--- a/server/migrations/2023_12_06_090936_add_manufactured_date_column_on_inventory.php
+++ b/server/migrations/2023_12_06_090936_add_manufactured_date_column_on_inventory.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class AddManufacturedDateColumnOnInventory extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -25,6 +25,8 @@ public function up()
*/
public function down()
{
- Schema::dropIfExists('pallet_inventories');
+ Schema::table('pallet_inventories', function (Blueprint $table) {
+ $table->dropColumn('manufactured_date_at');
+ });
}
-}
+};
diff --git a/server/migrations/2024_11_06_create_wms_tables.php b/server/migrations/2024_11_06_create_wms_tables.php
new file mode 100644
index 00000000..e050b80a
--- /dev/null
+++ b/server/migrations/2024_11_06_create_wms_tables.php
@@ -0,0 +1,388 @@
+increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('kit_product_uuid', 191)->nullable()->index();
+ $table->string('component_product_uuid', 191)->nullable()->index();
+ $table->integer('quantity')->default(1);
+ $table->integer('sort_order')->default(0);
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->foreign('kit_product_uuid')->references('uuid')->on('pallet_products')->onDelete('cascade');
+ $table->foreign('component_product_uuid')->references('uuid')->on('pallet_products')->onDelete('cascade');
+ });
+
+ // Inventory Reservations
+ Schema::create('pallet_inventory_reservations', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('product_uuid', 191)->nullable()->index();
+ $table->string('variant_uuid', 191)->nullable()->index();
+ $table->string('inventory_uuid', 191)->nullable()->index();
+ $table->string('warehouse_uuid', 191)->nullable()->index();
+ $table->string('order_uuid', 191)->nullable()->index();
+ $table->string('sales_order_uuid', 191)->nullable()->index();
+ $table->string('pick_list_uuid', 191)->nullable()->index();
+ $table->integer('quantity')->default(0);
+ $table->timestamp('reserved_at')->nullable();
+ $table->timestamp('expires_at')->nullable();
+ $table->timestamp('released_at')->nullable();
+ $table->string('status', 50)->default('active');
+ $table->string('type', 50)->default('soft');
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->index(['status', 'expires_at']);
+ });
+
+ // Warehouse Zones
+ Schema::create('pallet_warehouse_zones', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('warehouse_uuid', 191)->nullable()->index();
+ $table->string('name', 191);
+ $table->string('code', 50)->nullable();
+ $table->string('type', 50)->default('general');
+ $table->string('status', 50)->default('active');
+ $table->boolean('temperature_controlled')->default(false);
+ $table->json('temperature_range')->nullable();
+ $table->decimal('capacity', 10, 2)->nullable();
+ $table->decimal('current_utilization', 10, 2)->default(0);
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->foreign('warehouse_uuid')->references('uuid')->on('pallet_warehouses')->onDelete('cascade');
+ });
+
+ // Bin Locations
+ Schema::create('pallet_bin_locations', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('warehouse_uuid', 191)->nullable()->index();
+ $table->string('zone_uuid', 191)->nullable()->index();
+ $table->string('aisle_uuid', 191)->nullable()->index();
+ $table->string('rack_uuid', 191)->nullable()->index();
+ $table->string('section_uuid', 191)->nullable()->index();
+ $table->string('bin_number', 100);
+ $table->string('barcode', 100)->nullable();
+ $table->string('type', 50)->default('standard');
+ $table->string('status', 50)->default('active');
+ $table->decimal('capacity', 10, 2)->nullable();
+ $table->decimal('current_volume', 10, 2)->default(0);
+ $table->json('dimensions')->nullable();
+ $table->boolean('is_pickable')->default(true);
+ $table->boolean('is_replenishable')->default(true);
+ $table->integer('priority')->default(5);
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->foreign('warehouse_uuid')->references('uuid')->on('pallet_warehouses')->onDelete('cascade');
+ $table->foreign('zone_uuid')->references('uuid')->on('pallet_warehouse_zones')->onDelete('set null');
+ $table->index(['warehouse_uuid', 'bin_number']);
+ });
+
+ // Waves
+ Schema::create('pallet_waves', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('warehouse_uuid', 191)->nullable()->index();
+ $table->string('wave_number', 100)->unique();
+ $table->string('type', 50)->default('standard');
+ $table->string('status', 50)->default('pending');
+ $table->integer('priority')->default(5);
+ $table->timestamp('scheduled_at')->nullable();
+ $table->timestamp('started_at')->nullable();
+ $table->timestamp('completed_at')->nullable();
+ $table->text('notes')->nullable();
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->foreign('warehouse_uuid')->references('uuid')->on('pallet_warehouses')->onDelete('cascade');
+ $table->index(['status', 'scheduled_at']);
+ });
+
+ // Pick Lists
+ Schema::create('pallet_pick_lists', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('warehouse_uuid', 191)->nullable()->index();
+ $table->string('sales_order_uuid', 191)->nullable()->index();
+ $table->string('wave_uuid', 191)->nullable()->index();
+ $table->string('assigned_to_uuid', 191)->nullable()->index();
+ $table->string('pick_list_number', 100)->unique();
+ $table->string('type', 50)->default('discrete');
+ $table->integer('priority')->default(5);
+ $table->string('status', 50)->default('pending');
+ $table->timestamp('started_at')->nullable();
+ $table->timestamp('completed_at')->nullable();
+ $table->text('notes')->nullable();
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->foreign('warehouse_uuid')->references('uuid')->on('pallet_warehouses')->onDelete('cascade');
+ $table->foreign('wave_uuid')->references('uuid')->on('pallet_waves')->onDelete('set null');
+ $table->index(['status', 'priority']);
+ });
+
+ // Pick List Items
+ Schema::create('pallet_pick_list_items', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('pick_list_uuid', 191)->nullable()->index();
+ $table->string('product_uuid', 191)->nullable()->index();
+ $table->string('variant_uuid', 191)->nullable()->index();
+ $table->string('inventory_uuid', 191)->nullable()->index();
+ $table->string('bin_location_uuid', 191)->nullable()->index();
+ $table->string('sales_order_item_uuid', 191)->nullable()->index();
+ $table->integer('quantity_requested')->default(0);
+ $table->integer('quantity_picked')->default(0);
+ $table->integer('sequence_number')->default(0);
+ $table->string('status', 50)->default('pending');
+ $table->timestamp('picked_at')->nullable();
+ $table->string('picked_by_uuid', 191)->nullable()->index();
+ $table->string('lot_number', 100)->nullable();
+ $table->string('serial_number', 100)->nullable();
+ $table->text('notes')->nullable();
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->foreign('pick_list_uuid')->references('uuid')->on('pallet_pick_lists')->onDelete('cascade');
+ $table->foreign('bin_location_uuid')->references('uuid')->on('pallet_bin_locations')->onDelete('set null');
+ });
+
+ // Cycle Counts
+ Schema::create('pallet_cycle_counts', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('warehouse_uuid', 191)->nullable()->index();
+ $table->string('zone_uuid', 191)->nullable()->index();
+ $table->string('assigned_to_uuid', 191)->nullable()->index();
+ $table->string('count_number', 100)->unique();
+ $table->string('type', 50)->default('standard');
+ $table->string('status', 50)->default('pending');
+ $table->timestamp('scheduled_at')->nullable();
+ $table->timestamp('started_at')->nullable();
+ $table->timestamp('completed_at')->nullable();
+ $table->text('notes')->nullable();
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->foreign('warehouse_uuid')->references('uuid')->on('pallet_warehouses')->onDelete('cascade');
+ $table->foreign('zone_uuid')->references('uuid')->on('pallet_warehouse_zones')->onDelete('set null');
+ $table->index(['status', 'scheduled_at']);
+ });
+
+ // Cycle Count Items
+ Schema::create('pallet_cycle_count_items', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('cycle_count_uuid', 191)->nullable()->index();
+ $table->string('product_uuid', 191)->nullable()->index();
+ $table->string('variant_uuid', 191)->nullable()->index();
+ $table->string('inventory_uuid', 191)->nullable()->index();
+ $table->string('bin_location_uuid', 191)->nullable()->index();
+ $table->integer('expected_quantity')->default(0);
+ $table->integer('counted_quantity')->default(0);
+ $table->integer('variance')->default(0);
+ $table->string('status', 50)->default('pending');
+ $table->timestamp('counted_at')->nullable();
+ $table->string('counted_by_uuid', 191)->nullable()->index();
+ $table->string('lot_number', 100)->nullable();
+ $table->string('serial_number', 100)->nullable();
+ $table->text('notes')->nullable();
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->foreign('cycle_count_uuid')->references('uuid')->on('pallet_cycle_counts')->onDelete('cascade');
+ $table->foreign('bin_location_uuid')->references('uuid')->on('pallet_bin_locations')->onDelete('set null');
+ });
+
+ // Stock Transfers
+ Schema::create('pallet_stock_transfers', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('from_warehouse_uuid', 191)->nullable()->index();
+ $table->string('to_warehouse_uuid', 191)->nullable()->index();
+ $table->string('transfer_number', 100)->unique();
+ $table->string('status', 50)->default('pending');
+ $table->string('type', 50)->default('standard');
+ $table->string('requested_by_uuid', 191)->nullable()->index();
+ $table->string('approved_by_uuid', 191)->nullable()->index();
+ $table->timestamp('shipped_at')->nullable();
+ $table->timestamp('received_at')->nullable();
+ $table->text('notes')->nullable();
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->foreign('from_warehouse_uuid')->references('uuid')->on('pallet_warehouses')->onDelete('cascade');
+ $table->foreign('to_warehouse_uuid')->references('uuid')->on('pallet_warehouses')->onDelete('cascade');
+ $table->index(['status', 'created_at']);
+ });
+
+ // Stock Transfer Items
+ Schema::create('pallet_stock_transfer_items', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('uuid', 191)->nullable()->index();
+ $table->string('public_id', 191)->nullable()->unique();
+ $table->string('company_uuid', 191)->nullable()->index();
+ $table->string('stock_transfer_uuid', 191)->nullable()->index();
+ $table->string('product_uuid', 191)->nullable()->index();
+ $table->string('variant_uuid', 191)->nullable()->index();
+ $table->integer('quantity')->default(0);
+ $table->integer('quantity_received')->nullable();
+ $table->string('lot_number', 100)->nullable();
+ $table->string('serial_number', 100)->nullable();
+ $table->text('notes')->nullable();
+ $table->json('meta')->nullable();
+ $table->timestamps();
+ $table->softDeletes();
+
+ $table->foreign('stock_transfer_uuid')->references('uuid')->on('pallet_stock_transfers')->onDelete('cascade');
+ });
+
+ // Add new columns to existing pallet_inventories table
+ Schema::table('pallet_inventories', function (Blueprint $table) {
+ if (!Schema::hasColumn('pallet_inventories', 'bin_location_uuid')) {
+ $table->string('bin_location_uuid', 191)->nullable()->index()->after('warehouse_uuid');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'zone_uuid')) {
+ $table->string('zone_uuid', 191)->nullable()->index()->after('bin_location_uuid');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'lot_number')) {
+ $table->string('lot_number', 100)->nullable()->index()->after('batch_uuid');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'serial_number')) {
+ $table->string('serial_number', 100)->nullable()->index()->after('lot_number');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'uom')) {
+ $table->string('uom', 50)->nullable()->after('serial_number');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'reserved_quantity')) {
+ $table->integer('reserved_quantity')->default(0)->after('quantity');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'available_quantity')) {
+ $table->integer('available_quantity')->nullable()->after('reserved_quantity');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'max_quantity')) {
+ $table->integer('max_quantity')->nullable()->after('min_quantity');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'reorder_point')) {
+ $table->integer('reorder_point')->nullable()->after('max_quantity');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'unit_cost')) {
+ $table->decimal('unit_cost', 10, 2)->nullable()->after('reorder_point');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'received_at')) {
+ $table->timestamp('received_at')->nullable()->after('expiry_date_at');
+ }
+ if (!Schema::hasColumn('pallet_inventories', 'last_counted_at')) {
+ $table->timestamp('last_counted_at')->nullable()->after('received_at');
+ }
+ });
+
+ // Add new columns to places table for warehouse enhancements
+ Schema::table('places', function (Blueprint $table) {
+ if (!Schema::hasColumn('places', 'capacity')) {
+ $table->decimal('capacity', 10, 2)->nullable()->after('name');
+ }
+ if (!Schema::hasColumn('places', 'current_utilization')) {
+ $table->decimal('current_utilization', 10, 2)->default(0)->after('capacity');
+ }
+ if (!Schema::hasColumn('places', 'is_3pl')) {
+ $table->boolean('is_3pl')->default(false)->after('current_utilization');
+ }
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('pallet_stock_transfer_items');
+ Schema::dropIfExists('pallet_stock_transfers');
+ Schema::dropIfExists('pallet_cycle_count_items');
+ Schema::dropIfExists('pallet_cycle_counts');
+ Schema::dropIfExists('pallet_pick_list_items');
+ Schema::dropIfExists('pallet_pick_lists');
+ Schema::dropIfExists('pallet_waves');
+ Schema::dropIfExists('pallet_bin_locations');
+ Schema::dropIfExists('pallet_warehouse_zones');
+ Schema::dropIfExists('pallet_inventory_reservations');
+ Schema::dropIfExists('pallet_product_kit_components');
+
+ // Remove added columns from pallet_inventories
+ Schema::table('pallet_inventories', function (Blueprint $table) {
+ $table->dropColumn([
+ 'bin_location_uuid',
+ 'zone_uuid',
+ 'lot_number',
+ 'serial_number',
+ 'uom',
+ 'reserved_quantity',
+ 'available_quantity',
+ 'max_quantity',
+ 'reorder_point',
+ 'unit_cost',
+ 'received_at',
+ 'last_counted_at',
+ ]);
+ });
+
+ // Remove added columns from places
+ Schema::table('places', function (Blueprint $table) {
+ $table->dropColumn([
+ 'capacity',
+ 'current_utilization',
+ 'is_3pl',
+ ]);
+ });
+ }
+};
diff --git a/server/migrations/2024_11_07_create_order_items_tables.php b/server/migrations/2024_11_07_create_order_items_tables.php
new file mode 100644
index 00000000..2979a2bb
--- /dev/null
+++ b/server/migrations/2024_11_07_create_order_items_tables.php
@@ -0,0 +1,146 @@
+increments('id');
+ $table->uuid('uuid')->nullable()->unique();
+ $table->string('public_id')->nullable()->unique();
+
+ // Parent order
+ $table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
+ $table->foreignUuid('purchase_order_uuid')->nullable()->index()->references('uuid')->on('pallet_purchase_orders');
+ $table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
+
+ // Product / variant reference
+ $table->foreignUuid('product_uuid')->nullable()->index()->references('uuid')->on('pallet_products');
+ $table->foreignUuid('variant_uuid')->nullable()->index()->references('uuid')->on('pallet_product_variants');
+
+ // Warehouse destination — warehouses extend fleetbase places, so the backing table is 'places'
+ $table->foreignUuid('warehouse_uuid')->nullable()->index()->references('uuid')->on('pallet_warehouses');
+
+ // Quantities
+ $table->unsignedInteger('quantity')->default(0)->comment('Ordered quantity');
+ $table->unsignedInteger('quantity_received')->default(0)->comment('Quantity actually received (set on PO receipt)');
+
+ // Pricing
+ $table->string('currency', 3)->nullable();
+ $table->decimal('unit_price', 12, 4)->nullable()->comment('Price per unit at time of order');
+ $table->decimal('unit_cost', 12, 4)->nullable()->comment('Cost per unit at time of order');
+ $table->decimal('total_price', 14, 4)->nullable()->comment('unit_price * quantity');
+
+ // Tracking
+ $table->string('unit_of_measure', 50)->nullable();
+ $table->string('sku')->nullable()->index();
+ $table->string('lot_number')->nullable();
+ $table->string('serial_number')->nullable();
+ $table->date('expiry_date')->nullable();
+
+ // Status: pending, partial, received, cancelled
+ $table->string('status', 50)->nullable()->default('pending')->index();
+
+ $table->mediumText('notes')->nullable();
+ $table->json('meta')->nullable();
+
+ $table->timestamp('received_at')->nullable();
+ $table->timestamp('created_at')->nullable()->index();
+ $table->timestamp('updated_at')->nullable();
+ $table->softDeletes();
+
+ $table->index(['purchase_order_uuid', 'status']);
+ });
+
+ /*
+ |----------------------------------------------------------------------
+ | Sales Order Items
+ |----------------------------------------------------------------------
+ | Each row is one product line on a Sales Order.
+ | On SO fulfilment, each item decrements the matching Inventory record.
+ */
+ Schema::create('pallet_sales_order_items', function (Blueprint $table) {
+ $table->increments('id');
+ $table->uuid('uuid')->nullable()->unique();
+ $table->string('public_id')->nullable()->unique();
+
+ // Parent order
+ $table->foreignUuid('company_uuid')->nullable()->index()->references('uuid')->on('companies');
+ $table->foreignUuid('sales_order_uuid')->nullable()->index()->references('uuid')->on('pallet_sales_orders');
+ $table->foreignUuid('created_by_uuid')->nullable()->index()->references('uuid')->on('users');
+
+ // Product / variant reference
+ $table->foreignUuid('product_uuid')->nullable()->index()->references('uuid')->on('pallet_products');
+ $table->foreignUuid('variant_uuid')->nullable()->index()->references('uuid')->on('pallet_product_variants');
+
+ // Source warehouse — warehouses extend fleetbase places, so the backing table is 'places'
+ $table->foreignUuid('warehouse_uuid')->nullable()->index()->references('uuid')->on('pallet_warehouses');
+ $table->foreignUuid('inventory_uuid')->nullable()->index()->references('uuid')->on('pallet_inventories');
+
+ // Quantities
+ $table->unsignedInteger('quantity')->default(0)->comment('Ordered quantity');
+ $table->unsignedInteger('quantity_fulfilled')->default(0)->comment('Quantity actually dispatched (set on SO fulfilment)');
+
+ // Pricing
+ $table->string('currency', 3)->nullable();
+ $table->decimal('unit_price', 12, 4)->nullable()->comment('Sale price per unit');
+ $table->decimal('total_price', 14, 4)->nullable()->comment('unit_price * quantity');
+
+ // Tracking
+ $table->string('unit_of_measure', 50)->nullable();
+ $table->string('sku')->nullable()->index();
+ $table->string('lot_number')->nullable();
+ $table->string('serial_number')->nullable();
+
+ // Status: pending, partial, fulfilled, cancelled
+ $table->string('status', 50)->nullable()->default('pending')->index();
+
+ $table->mediumText('notes')->nullable();
+ $table->json('meta')->nullable();
+
+ $table->timestamp('fulfilled_at')->nullable();
+ $table->timestamp('created_at')->nullable()->index();
+ $table->timestamp('updated_at')->nullable();
+ $table->softDeletes();
+
+ $table->index(['sales_order_uuid', 'status']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('pallet_sales_order_items');
+ Schema::dropIfExists('pallet_purchase_order_items');
+ }
+};
diff --git a/server/src/Http/Controllers/AuditController.php b/server/src/Http/Controllers/AuditController.php
index 3b19b651..d80a1718 100644
--- a/server/src/Http/Controllers/AuditController.php
+++ b/server/src/Http/Controllers/AuditController.php
@@ -2,12 +2,140 @@
namespace Fleetbase\Pallet\Http\Controllers;
+use Fleetbase\Pallet\Http\Resources\Audit as AuditResource;
+use Fleetbase\Pallet\Models\Audit;
+use Fleetbase\Pallet\Models\AuditEventType;
+use Illuminate\Http\Request;
+
+/**
+ * AuditController — Read-only controller for the WMS operational audit trail.
+ *
+ * This controller exposes only `index` and `show` endpoints. Audit entries are
+ * immutable — they are written programmatically by the system via the AuditService
+ * when significant warehouse operational events occur. No create, update, or
+ * delete operations are permitted via the API.
+ */
class AuditController extends PalletResourceController
{
+ /**
+ * The package namespace used to resolve from.
+ */
+ public string $namespace = '\\Fleetbase\\Pallet';
+
/**
* The resource to query.
*
* @var string
*/
public $resource = 'audit';
+
+ /**
+ * List all audit trail entries for the authenticated company.
+ *
+ * Supports filtering via query parameters:
+ * - event_type : Filter by event category (e.g. stock_adjustment, cycle_count)
+ * - type : Filter by secondary classification
+ * - auditable_uuid: Filter by the subject model UUID
+ * - auditable_type: Filter by the subject model class
+ * - performed_by : Filter by the user UUID who performed the action
+ * - search : Full-text search across action, reason, comments
+ * - sort : Sort field (default: created_at)
+ * - order : Sort direction (default: desc)
+ * - limit : Number of results per page (default: 30)
+ * - page : Page number
+ *
+ * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
+ */
+ public function index(Request $request)
+ {
+ $query = Audit::where('company_uuid', session('company'))
+ ->with(['performedBy', 'createdBy'])
+ ->orderBy('created_at', 'desc');
+
+ // Filter by event_type
+ if ($request->filled('event_type')) {
+ $query->where('event_type', $request->input('event_type'));
+ }
+
+ // Filter by secondary type
+ if ($request->filled('type')) {
+ $query->where('type', $request->input('type'));
+ }
+
+ // Filter by auditable subject UUID
+ if ($request->filled('auditable_uuid')) {
+ $query->where('auditable_uuid', $request->input('auditable_uuid'));
+ }
+
+ // Filter by auditable subject type
+ $auditableType = $request->input('auditable_type', $request->input('subject_type'));
+ if (filled($auditableType)) {
+ $query->where('auditable_type', $auditableType);
+ }
+
+ // Filter by the user who performed the action
+ if ($request->filled('performed_by')) {
+ $query->where('performed_by_uuid', $request->input('performed_by'));
+ }
+
+ // Full-text search
+ $search = $request->input('search', $request->input('query'));
+ if (filled($search)) {
+ $query->where(function ($q) use ($search) {
+ $q->where('action', 'like', "%{$search}%")
+ ->orWhere('reason', 'like', "%{$search}%")
+ ->orWhere('comments', 'like', "%{$search}%")
+ ->orWhere('event_type', 'like', "%{$search}%");
+ });
+ }
+
+ // Sorting
+ $sortField = $request->input('sort', 'created_at');
+ $sortOrder = $request->input('order', 'desc');
+ $allowedSorts = ['created_at', 'event_type', 'action', 'type', 'completed_at'];
+ if (in_array($sortField, $allowedSorts)) {
+ $query->orderBy($sortField, $sortOrder === 'asc' ? 'asc' : 'desc');
+ }
+
+ // Pagination
+ $limit = (int) $request->input('limit', 30);
+ $limit = min(max($limit, 1), 100);
+ $audits = $query->paginate($limit);
+
+ return AuditResource::collection($audits);
+ }
+
+ /**
+ * Show a single audit trail entry by its public_id or UUID.
+ *
+ * @return AuditResource|\Illuminate\Http\JsonResponse
+ */
+ public function show(string $id)
+ {
+ $audit = Audit::where('company_uuid', session('company'))
+ ->where(function ($q) use ($id) {
+ $q->where('public_id', $id)
+ ->orWhere('uuid', $id);
+ })
+ ->with(['performedBy', 'createdBy'])
+ ->first();
+
+ if (!$audit) {
+ return response()->json(['error' => 'Audit record not found.'], 404);
+ }
+
+ return new AuditResource($audit);
+ }
+
+ /**
+ * Return all available event type constants for use in frontend filter dropdowns.
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function eventTypes()
+ {
+ return response()->json([
+ 'eventTypes' => AuditEventType::all(),
+ ]);
+ }
}
diff --git a/server/src/Http/Controllers/InventoryController.php b/server/src/Http/Controllers/InventoryController.php
index b2bc61ad..704a64fa 100644
--- a/server/src/Http/Controllers/InventoryController.php
+++ b/server/src/Http/Controllers/InventoryController.php
@@ -2,26 +2,28 @@
namespace Fleetbase\Pallet\Http\Controllers;
-use Fleetbase\Pallet\Http\Resources\IndexInventory;
use Fleetbase\Exceptions\FleetbaseRequestValidationException;
+use Fleetbase\Pallet\Http\Resources\IndexInventory;
use Fleetbase\Pallet\Models\Batch;
use Fleetbase\Pallet\Models\Inventory;
+use Fleetbase\Pallet\Models\Product;
use Fleetbase\Support\Http;
+use Illuminate\Database\QueryException;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
-use Illuminate\Database\QueryException;
class InventoryController extends PalletResourceController
{
public $resource = 'inventory';
+
public function queryRecord(Request $request)
{
$single = $request->boolean('single');
// sort set null as we handle via custom query
$request->request->add(['sort' => null]);
- $data = $this->model->queryFromRequest($request, function ($query) {
+ $data = $this->model->queryFromRequest($request, function ($query) {
// hotfix! fix the selected columns
$queryBuilder = $query->getQuery();
array_shift($queryBuilder->columns);
@@ -45,6 +47,7 @@ public function queryRecord(Request $request)
return new IndexInventory($data);
}
+
if (Http::isInternalRequest($request)) {
IndexInventory::wrap($this->resourcePluralName);
@@ -58,38 +61,54 @@ public function createRecord(Request $request)
{
try {
$this->validateRequest($request);
- $data = $request->input('inventory');
+ $data = $request->input('inventory');
+ $product = Product::where('uuid', data_get($data, 'product_uuid'))->where('company_uuid', session('company'))->first();
+
+ if ($product?->has_variants && !data_get($data, 'variant_uuid')) {
+ return response()->error('Variant is required for inventory on products with variants.', 422);
+ }
+ // Create the batch record first
$batch = new Batch([
- 'company_uuid' => session('company'),
- 'created_by_uuid' => session('user'),
- 'product_uuid' => data_get($data, 'product_uuid'),
- 'batch_number' => data_get($data, 'batch_number', now()->format('Y-m-d')),
- 'quantity' => data_get($data, 'quantity', 0),
- 'expiry_date_at' => data_get($data, 'expiry_date_at'),
+ 'company_uuid' => session('company'),
+ 'created_by_uuid' => session('user'),
+ 'product_uuid' => data_get($data, 'product_uuid'),
+ 'variant_uuid' => data_get($data, 'variant_uuid'),
+ 'batch_number' => data_get($data, 'batch_number', now()->format('Y-m-d-') . strtoupper(Str::random(6))),
+ 'quantity' => data_get($data, 'quantity', 0),
+ 'expiry_date_at' => data_get($data, 'expiry_date_at'),
'manufacture_date_at' => data_get($data, 'manufacture_date_at'),
]);
$batch->save();
+ // Create the inventory record, explicitly setting batch_uuid
$inventory = new Inventory([
- 'company_uuid' => session('company'),
- 'created_by_uuid' => session('user'),
- 'product_uuid' => data_get($data, 'product_uuid'),
- 'supplier_uuid' => data_get($data, 'supplier_uuid'),
- 'warehouse_uuid' => data_get($data, 'warehouse_uuid'),
- 'status' => data_get($data, 'status'),
- 'quantity' => data_get($data, 'quantity', 0),
- 'min_quantity' => data_get($data, 'min_quantity', 0),
- 'comments' => data_get($data, 'comments'),
- 'expiry_date_at' => data_get($data, 'expiry_date_at'),
+ 'company_uuid' => session('company'),
+ 'created_by_uuid' => session('user'),
+ 'product_uuid' => data_get($data, 'product_uuid'),
+ 'variant_uuid' => data_get($data, 'variant_uuid'),
+ 'supplier_uuid' => data_get($data, 'supplier_uuid'),
+ 'warehouse_uuid' => data_get($data, 'warehouse_uuid'),
+ 'batch_uuid' => $batch->uuid,
+ 'status' => data_get($data, 'status', 'active'),
+ 'quantity' => data_get($data, 'quantity', 0),
+ 'min_quantity' => data_get($data, 'min_quantity', 0),
+ 'max_quantity' => data_get($data, 'max_quantity'),
+ 'reorder_point' => data_get($data, 'reorder_point'),
+ 'unit_cost' => data_get($data, 'unit_cost'),
+ 'lot_number' => data_get($data, 'lot_number'),
+ 'serial_number' => data_get($data, 'serial_number'),
+ 'uom' => data_get($data, 'uom'),
+ 'comments' => data_get($data, 'comments'),
+ 'expiry_date_at' => data_get($data, 'expiry_date_at'),
+ 'received_at' => now(),
]);
-
- $inventory->batch()->associate($batch);
$inventory->save();
if (Http::isInternalRequest($request)) {
$this->resource::wrap($this->resourceSingularlName);
}
+
return new $this->resource($inventory);
} catch (\Exception $e) {
return response()->error($e->getMessage());
diff --git a/server/src/Http/Controllers/MetricsController.php b/server/src/Http/Controllers/MetricsController.php
new file mode 100644
index 00000000..0501c047
--- /dev/null
+++ b/server/src/Http/Controllers/MetricsController.php
@@ -0,0 +1,254 @@
+where('min_quantity', '>', 0)
+ ->whereColumn('quantity', '<=', 'min_quantity');
+ }
+
+ /**
+ * GET pallet/metrics/inventory-summary.
+ *
+ * Returns top-level KPIs: total SKUs, total units, total stock value,
+ * warehouse count, and low-stock count.
+ */
+ public function inventorySummary(Request $request)
+ {
+ $companyUuid = session('company');
+
+ $totalSkus = Inventory::where('company_uuid', $companyUuid)
+ ->selectRaw('COUNT(DISTINCT COALESCE(variant_uuid, product_uuid)) as aggregate_count')
+ ->value('aggregate_count');
+
+ $totals = Inventory::where('company_uuid', $companyUuid)
+ ->selectRaw('SUM(quantity) as total_units, SUM(quantity * unit_cost) as total_value')
+ ->first();
+
+ $warehouseCount = Warehouse::where('company_uuid', $companyUuid)->count();
+
+ $lowStockCount = $this->lowStockQuery($companyUuid)->count();
+
+ return response()->json([
+ 'total_skus' => $totalSkus,
+ 'total_units' => (int) ($totals->total_units ?? 0),
+ 'total_value' => round((float) ($totals->total_value ?? 0), 2),
+ 'warehouse_count' => $warehouseCount,
+ 'low_stock_count' => $lowStockCount,
+ ]);
+ }
+
+ /**
+ * GET pallet/metrics/low-stock.
+ *
+ * Returns products at or below their minimum stock level.
+ */
+ public function lowStock(Request $request)
+ {
+ $companyUuid = session('company');
+ $limit = (int) $request->input('limit', 10);
+
+ $items = $this->lowStockQuery($companyUuid)
+ ->with(['product:uuid,name,sku', 'variant:uuid,name,sku'])
+ ->orderBy('quantity', 'asc')
+ ->limit($limit)
+ ->get()
+ ->map(function ($inv) {
+ return [
+ 'uuid' => $inv->uuid,
+ 'name' => $inv->variant->display_name ?? $inv->product->name ?? null,
+ 'sku' => $inv->variant->sku ?? $inv->product->sku ?? null,
+ 'quantity' => $inv->quantity,
+ 'min_stock' => $inv->min_quantity,
+ ];
+ });
+
+ return response()->json(['items' => $items]);
+ }
+
+ /**
+ * GET pallet/metrics/po-status.
+ *
+ * Returns purchase order counts by status and the 5 most recent orders.
+ */
+ public function poStatus(Request $request)
+ {
+ $companyUuid = session('company');
+
+ $counts = PurchaseOrder::where('company_uuid', $companyUuid)
+ ->selectRaw('status, COUNT(*) as count')
+ ->groupBy('status')
+ ->pluck('count', 'status')
+ ->toArray();
+
+ $recent = PurchaseOrder::where('company_uuid', $companyUuid)
+ ->with('supplier:uuid,name')
+ ->orderBy('created_at', 'desc')
+ ->limit(5)
+ ->get()
+ ->map(function ($po) {
+ return [
+ 'uuid' => $po->uuid,
+ 'public_id' => $po->public_id,
+ 'status' => $po->status,
+ 'supplier_name' => $po->supplier->name ?? null,
+ ];
+ });
+
+ return response()->json([
+ 'pending' => (int) ($counts['pending'] ?? 0),
+ 'partially_received' => (int) (($counts['partially_received'] ?? 0) + ($counts['partial'] ?? 0)),
+ 'received' => (int) ($counts['received'] ?? 0),
+ 'cancelled' => (int) ($counts['cancelled'] ?? 0),
+ 'recent' => $recent,
+ ]);
+ }
+
+ /**
+ * GET pallet/metrics/so-status.
+ *
+ * Returns sales order counts by status and the 5 most recent orders.
+ */
+ public function soStatus(Request $request)
+ {
+ $companyUuid = session('company');
+
+ $counts = SalesOrder::where('company_uuid', $companyUuid)
+ ->selectRaw('status, COUNT(*) as count')
+ ->groupBy('status')
+ ->pluck('count', 'status')
+ ->toArray();
+
+ $recent = SalesOrder::where('company_uuid', $companyUuid)
+ ->orderBy('created_at', 'desc')
+ ->limit(5)
+ ->get()
+ ->map(function ($so) {
+ return [
+ 'uuid' => $so->uuid,
+ 'public_id' => $so->public_id,
+ 'status' => $so->status,
+ 'supplier_name' => $so->supplier?->name,
+ ];
+ });
+
+ return response()->json([
+ 'pending' => (int) ($counts['pending'] ?? 0),
+ 'partially_fulfilled' => (int) (($counts['partially_fulfilled'] ?? 0) + ($counts['partial'] ?? 0)),
+ 'fulfilled' => (int) ($counts['fulfilled'] ?? 0),
+ 'cancelled' => (int) ($counts['cancelled'] ?? 0),
+ 'recent' => $recent,
+ ]);
+ }
+
+ /**
+ * GET pallet/metrics/stock-value.
+ *
+ * Returns total stock value broken down by warehouse.
+ */
+ public function stockValue(Request $request)
+ {
+ $companyUuid = session('company');
+
+ $warehouses = Inventory::where('pallet_inventories.company_uuid', $companyUuid)
+ ->join('pallet_warehouses', 'pallet_inventories.warehouse_uuid', '=', 'pallet_warehouses.uuid')
+ ->selectRaw('pallet_warehouses.name, SUM(pallet_inventories.quantity * pallet_inventories.unit_cost) as value')
+ ->groupBy('pallet_warehouses.uuid', 'pallet_warehouses.name')
+ ->orderByDesc('value')
+ ->get()
+ ->map(function ($row) {
+ return [
+ 'name' => $row->name,
+ 'value' => round((float) $row->value, 2),
+ ];
+ });
+
+ $totalValue = $warehouses->sum('value');
+
+ return response()->json([
+ 'warehouses' => $warehouses,
+ 'total_value' => round($totalValue, 2),
+ ]);
+ }
+
+ /**
+ * GET pallet/metrics/expiring-stock.
+ *
+ * Returns inventory batches expiring within the given number of days.
+ */
+ public function expiringStock(Request $request)
+ {
+ $companyUuid = session('company');
+ $days = (int) $request->input('days', 30);
+ $limit = (int) $request->input('limit', 10);
+
+ $items = Inventory::where('company_uuid', $companyUuid)
+ ->whereNotNull('expiry_date_at')
+ ->whereDate('expiry_date_at', '<=', now()->addDays($days))
+ ->whereDate('expiry_date_at', '>=', now())
+ ->where('quantity', '>', 0)
+ ->with(['product:uuid,name', 'variant:uuid,name,sku,option_values'])
+ ->orderBy('expiry_date_at', 'asc')
+ ->limit($limit)
+ ->get()
+ ->map(function ($inv) {
+ return [
+ 'uuid' => $inv->uuid,
+ 'product_name' => $inv->variant->display_name ?? $inv->product->name ?? null,
+ 'lot_number' => $inv->lot_number,
+ 'quantity' => $inv->quantity,
+ 'expiry_date' => $inv->expiry_date_at,
+ ];
+ });
+
+ return response()->json(['items' => $items]);
+ }
+
+ /**
+ * GET pallet/metrics/top-products.
+ *
+ * Returns the most frequently moved products based on stock transactions.
+ */
+ public function topProducts(Request $request)
+ {
+ $companyUuid = session('company');
+ $limit = (int) $request->input('limit', 10);
+
+ $products = DB::table('pallet_stock_transactions')
+ ->join('pallet_products', 'pallet_stock_transactions.product_uuid', '=', 'pallet_products.uuid')
+ ->leftJoin('pallet_product_variants', 'pallet_stock_transactions.variant_uuid', '=', 'pallet_product_variants.uuid')
+ ->where('pallet_stock_transactions.company_uuid', $companyUuid)
+ ->selectRaw('COALESCE(pallet_product_variants.name, pallet_products.name) as name, COALESCE(pallet_product_variants.sku, pallet_products.sku) as sku, COUNT(*) as movement_count')
+ ->groupBy('pallet_products.uuid', 'pallet_products.name', 'pallet_products.sku', 'pallet_product_variants.uuid', 'pallet_product_variants.name', 'pallet_product_variants.sku')
+ ->orderByDesc('movement_count')
+ ->limit($limit)
+ ->get()
+ ->map(function ($row) {
+ return [
+ 'name' => $row->name,
+ 'sku' => $row->sku,
+ 'movement_count' => (int) $row->movement_count,
+ ];
+ });
+
+ return response()->json(['products' => $products]);
+ }
+}
diff --git a/server/src/Http/Controllers/ProductController.php b/server/src/Http/Controllers/ProductController.php
index 9b5b0bf8..8d595f4c 100644
--- a/server/src/Http/Controllers/ProductController.php
+++ b/server/src/Http/Controllers/ProductController.php
@@ -2,6 +2,14 @@
namespace Fleetbase\Pallet\Http\Controllers;
+use Fleetbase\Exceptions\FleetbaseRequestValidationException;
+use Fleetbase\Pallet\Http\Resources\Product as ProductResource;
+use Fleetbase\Pallet\Models\Product;
+use Fleetbase\Pallet\Models\ProductVariant;
+use Fleetbase\Support\Http;
+use Illuminate\Database\QueryException;
+use Illuminate\Http\Request;
+
class ProductController extends PalletResourceController
{
/**
@@ -10,4 +18,79 @@ class ProductController extends PalletResourceController
* @var string
*/
public $resource = 'product';
+
+ public function createRecord(Request $request)
+ {
+ try {
+ $this->validateRequest($request);
+ $data = $request->input('product', []);
+
+ if ($this->skuExists(data_get($data, 'sku'))) {
+ return response()->error('The SKU is already in use by another Pallet product or variant.', 422);
+ }
+
+ $product = new Product(array_merge($data, [
+ 'company_uuid' => session('company'),
+ 'created_by_uuid' => session('user'),
+ 'status' => data_get($data, 'status', 'active'),
+ ]));
+ $product->save();
+
+ if (Http::isInternalRequest($request)) {
+ ProductResource::wrap($this->resourceSingularlName);
+ }
+
+ return new ProductResource($product->load(['supplier', 'category', 'variants']));
+ } catch (FleetbaseRequestValidationException $e) {
+ return response()->error($e->getErrors());
+ } catch (QueryException $e) {
+ return response()->error($e->getMessage());
+ } catch (\Exception $e) {
+ return response()->error($e->getMessage());
+ }
+ }
+
+ public function updateRecord(Request $request, string $id)
+ {
+ try {
+ $this->validateRequest($request);
+ $data = $request->input('product', []);
+ $product = Product::where('company_uuid', session('company'))
+ ->where(fn ($query) => $query->where('uuid', $id)->orWhere('public_id', $id))
+ ->firstOrFail();
+
+ if ($this->skuExists(data_get($data, 'sku'), $product->uuid)) {
+ return response()->error('The SKU is already in use by another Pallet product or variant.', 422);
+ }
+
+ $product->fill($data);
+ $product->save();
+
+ if (Http::isInternalRequest($request)) {
+ ProductResource::wrap($this->resourceSingularlName);
+ }
+
+ return new ProductResource($product->load(['supplier', 'category', 'variants']));
+ } catch (FleetbaseRequestValidationException $e) {
+ return response()->error($e->getErrors());
+ } catch (QueryException $e) {
+ return response()->error($e->getMessage());
+ } catch (\Exception $e) {
+ return response()->error($e->getMessage());
+ }
+ }
+
+ protected function skuExists(?string $sku, ?string $exceptProductUuid = null): bool
+ {
+ if (!$sku) {
+ return false;
+ }
+
+ $productQuery = Product::where('company_uuid', session('company'))->where('sku', $sku);
+ if ($exceptProductUuid) {
+ $productQuery->where('uuid', '!=', $exceptProductUuid);
+ }
+
+ return $productQuery->exists() || ProductVariant::where('company_uuid', session('company'))->where('sku', $sku)->exists();
+ }
}
diff --git a/server/src/Http/Controllers/ProductVariantController.php b/server/src/Http/Controllers/ProductVariantController.php
new file mode 100644
index 00000000..d75326c1
--- /dev/null
+++ b/server/src/Http/Controllers/ProductVariantController.php
@@ -0,0 +1,95 @@
+where(fn ($query) => $query->where('uuid', $product)->orWhere('public_id', $product))
+ ->firstOrFail();
+
+ return ProductVariantResource::collection($product->variants()->orderBy('created_at')->get());
+ }
+
+ public function store(Request $request, string $product)
+ {
+ $product = Product::where('company_uuid', session('company'))
+ ->where(fn ($query) => $query->where('uuid', $product)->orWhere('public_id', $product))
+ ->firstOrFail();
+
+ $input = $request->input('product_variant', $request->all());
+ if ($this->skuExists(data_get($input, 'sku'))) {
+ return response()->error('The SKU is already in use by another Pallet product or variant.', 422);
+ }
+
+ $variant = ProductVariant::create(array_merge($input, [
+ 'uuid' => Str::uuid(),
+ 'company_uuid' => session('company'),
+ 'created_by_uuid' => session('user'),
+ 'product_uuid' => $product->uuid,
+ 'status' => data_get($input, 'status', 'active'),
+ ]));
+
+ return new ProductVariantResource($variant->load('product'));
+ }
+
+ public function update(Request $request, string $product, string $variant)
+ {
+ $product = Product::where('company_uuid', session('company'))
+ ->where(fn ($query) => $query->where('uuid', $product)->orWhere('public_id', $product))
+ ->firstOrFail();
+
+ $variant = ProductVariant::where('product_uuid', $product->uuid)
+ ->where(fn ($query) => $query->where('uuid', $variant)->orWhere('public_id', $variant))
+ ->firstOrFail();
+
+ $input = $request->input('product_variant', $request->all());
+ if ($this->skuExists(data_get($input, 'sku'), $variant->uuid)) {
+ return response()->error('The SKU is already in use by another Pallet product or variant.', 422);
+ }
+
+ $variant->fill($input);
+ $variant->save();
+
+ return new ProductVariantResource($variant->load('product'));
+ }
+
+ public function destroy(string $product, string $variant)
+ {
+ $product = Product::where('company_uuid', session('company'))
+ ->where(fn ($query) => $query->where('uuid', $product)->orWhere('public_id', $product))
+ ->firstOrFail();
+
+ $variant = ProductVariant::where('product_uuid', $product->uuid)
+ ->where(fn ($query) => $query->where('uuid', $variant)->orWhere('public_id', $variant))
+ ->firstOrFail();
+
+ $variant->delete();
+
+ return response()->json(['status' => 'ok', 'message' => 'Product variant deleted.']);
+ }
+
+ protected function skuExists(?string $sku, ?string $exceptVariantUuid = null): bool
+ {
+ if (!$sku) {
+ return false;
+ }
+
+ $variantQuery = ProductVariant::where('company_uuid', session('company'))->where('sku', $sku);
+ if ($exceptVariantUuid) {
+ $variantQuery->where('uuid', '!=', $exceptVariantUuid);
+ }
+
+ return Product::where('company_uuid', session('company'))->where('sku', $sku)->exists() || $variantQuery->exists();
+ }
+}
diff --git a/server/src/Http/Controllers/PurchaseOrderController.php b/server/src/Http/Controllers/PurchaseOrderController.php
index 070d68d7..c8ad9f32 100644
--- a/server/src/Http/Controllers/PurchaseOrderController.php
+++ b/server/src/Http/Controllers/PurchaseOrderController.php
@@ -2,11 +2,15 @@
namespace Fleetbase\Pallet\Http\Controllers;
-use Fleetbase\Pallet\Models\PurchaseOrder;
use Fleetbase\Exceptions\FleetbaseRequestValidationException;
+use Fleetbase\Pallet\Http\Resources\PurchaseOrder as PurchaseOrderResource;
+use Fleetbase\Pallet\Models\Inventory;
+use Fleetbase\Pallet\Models\PurchaseOrder;
+use Fleetbase\Pallet\Models\PurchaseOrderItem;
use Fleetbase\Support\Http;
-use Illuminate\Http\Request;
use Illuminate\Database\QueryException;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
class PurchaseOrderController extends PalletResourceController
{
@@ -17,32 +21,42 @@ class PurchaseOrderController extends PalletResourceController
*/
public $resource = 'purchase-order';
+ /**
+ * Create a new Purchase Order.
+ *
+ * @return \Illuminate\Http\Response
+ */
public function createRecord(Request $request)
{
try {
$this->validateRequest($request);
- $data = $request->input('purchaseOrder');
-
- $salesOrder = new PurchaseOrder([
- 'company_uuid' => session('company'),
- 'created_by_uuid' => session('user'),
- 'supplier_uuid' => data_get($data, 'supplier_uuid'),
- 'transaction_uuid' => data_get($data, 'transaction_uuid'),
- 'assigned_to_uuid' => data_get($data, 'user'),
- 'status' => data_get($data, 'status'),
- 'reference_code' => data_get($data, 'reference_code'),
- 'reference_url' => data_get($data, 'reference_url'),
- 'description' => data_get($data, 'description'),
- 'comments' => data_get($data, 'comments'),
- 'expected_delivery_at' => data_get($data, 'expected_delivery_at'),
- 'order_date_at' => data_get($data, 'order_date_at'),
+ $data = $request->input('purchase_order');
+
+ $purchaseOrder = new PurchaseOrder([
+ 'company_uuid' => session('company'),
+ 'created_by_uuid' => session('user'),
+ 'supplier_uuid' => data_get($data, 'supplier_uuid'),
+ 'transaction_uuid' => data_get($data, 'transaction_uuid'),
+ 'assigned_to_uuid' => data_get($data, 'assigned_to_uuid'),
+ 'point_of_contact_uuid' => data_get($data, 'point_of_contact_uuid'),
+ 'status' => data_get($data, 'status', 'pending'),
+ 'reference_code' => data_get($data, 'reference_code'),
+ 'reference_url' => data_get($data, 'reference_url'),
+ 'description' => data_get($data, 'description'),
+ 'comments' => data_get($data, 'comments'),
+ 'currency' => data_get($data, 'currency'),
+ 'meta' => data_get($data, 'meta', []),
+ 'expected_delivery_at' => data_get($data, 'expected_delivery_at'),
+ 'order_created_at' => data_get($data, 'order_date_at', now()),
]);
- $salesOrder->save();
+
+ $purchaseOrder->save();
if (Http::isInternalRequest($request)) {
$this->resource::wrap($this->resourceSingularlName);
}
- return new $this->resource($salesOrder);
+
+ return new $this->resource($purchaseOrder);
} catch (\Exception $e) {
return response()->error($e->getMessage());
} catch (QueryException $e) {
@@ -51,4 +65,191 @@ public function createRecord(Request $request)
return response()->error($e->getErrors());
}
}
+
+ /**
+ * Receive a Purchase Order.
+ *
+ * Processes the receipt of goods against a PO. For each line item it either
+ * creates a new Inventory record or increments an existing one in the target
+ * warehouse. Supports full and partial receipts.
+ *
+ * Request body:
+ * {
+ * "items": [
+ * {
+ * "uuid": "",
+ * "quantity_received": 10,
+ * "lot_number": "LOT-001",
+ * "serial_number": "SN-001",
+ * "expiry_date": "2026-12-31",
+ * "bin_location_uuid": "",
+ * "zone_uuid": "",
+ * "notes": "Received in good condition"
+ * }
+ * ]
+ * }
+ *
+ * @param string $id The PO public_id or UUID
+ *
+ * @return \Illuminate\Http\Response
+ */
+ public function receive(Request $request, string $id)
+ {
+ try {
+ // Resolve the PO
+ $purchaseOrder = PurchaseOrder::where(function ($q) use ($id) {
+ $q->where('uuid', $id)->orWhere('public_id', $id);
+ })->where('company_uuid', session('company'))->firstOrFail();
+
+ // Guard: cannot receive an already-received or cancelled PO
+ if (in_array($purchaseOrder->status, ['received', 'cancelled'])) {
+ return response()->error(
+ "Purchase order [{$purchaseOrder->public_id}] cannot be received because its status is '{$purchaseOrder->status}'.",
+ 400
+ );
+ }
+
+ $itemsInput = $request->input('items', []);
+
+ if (empty($itemsInput)) {
+ return response()->error('No items provided for receipt.', 422);
+ }
+
+ $receivedSummary = [];
+
+ DB::transaction(function () use ($purchaseOrder, $itemsInput, &$receivedSummary) {
+ foreach ($itemsInput as $itemData) {
+ $itemUuid = data_get($itemData, 'uuid');
+ $qtyReceived = (int) data_get($itemData, 'quantity_received', 0);
+ $lotNumber = data_get($itemData, 'lot_number');
+ $serialNumber = data_get($itemData, 'serial_number');
+ $expiryDate = data_get($itemData, 'expiry_date');
+ $binLocationUuid = data_get($itemData, 'bin_location_uuid');
+ $zoneUuid = data_get($itemData, 'zone_uuid');
+ $notes = data_get($itemData, 'notes');
+
+ if ($qtyReceived <= 0) {
+ continue;
+ }
+
+ // Resolve the line item — must belong to this PO
+ $item = PurchaseOrderItem::where('uuid', $itemUuid)
+ ->where('purchase_order_uuid', $purchaseOrder->uuid)
+ ->first();
+
+ if (!$item) {
+ continue;
+ }
+
+ // Cap at outstanding quantity to prevent over-receiving
+ $outstanding = $item->outstanding_quantity;
+ $qtyToReceive = min($qtyReceived, $outstanding);
+
+ if ($qtyToReceive <= 0) {
+ continue;
+ }
+
+ // ----------------------------------------------------------
+ // Create or increment the Inventory record
+ // ----------------------------------------------------------
+ $warehouseUuid = $item->warehouse_uuid ?? $purchaseOrder->warehouse_uuid ?? null;
+
+ $inventoryQuery = Inventory::where('company_uuid', $purchaseOrder->company_uuid)
+ ->where('product_uuid', $item->product_uuid)
+ ->where('variant_uuid', $item->variant_uuid)
+ ->where('warehouse_uuid', $warehouseUuid);
+
+ if ($lotNumber) {
+ $inventoryQuery->where('lot_number', $lotNumber);
+ }
+ if ($serialNumber) {
+ $inventoryQuery->where('serial_number', $serialNumber);
+ }
+ if ($binLocationUuid) {
+ $inventoryQuery->where('bin_location_uuid', $binLocationUuid);
+ }
+
+ $inventory = $inventoryQuery->first();
+
+ if ($inventory) {
+ // Increment existing inventory
+ $inventory->add($qtyToReceive);
+ if ($notes) {
+ $inventory->comments = $notes;
+ $inventory->save();
+ }
+ } else {
+ // Create a new inventory record
+ $inventory = Inventory::create([
+ 'company_uuid' => $purchaseOrder->company_uuid,
+ 'created_by_uuid' => session('user'),
+ 'supplier_uuid' => $purchaseOrder->supplier_uuid,
+ 'product_uuid' => $item->product_uuid,
+ 'variant_uuid' => $item->variant_uuid,
+ 'warehouse_uuid' => $warehouseUuid,
+ 'bin_location_uuid' => $binLocationUuid,
+ 'zone_uuid' => $zoneUuid,
+ 'quantity' => $qtyToReceive,
+ 'available_quantity' => $qtyToReceive,
+ 'reserved_quantity' => 0,
+ 'unit_cost' => $item->unit_cost ?? $item->unit_price,
+ 'lot_number' => $lotNumber,
+ 'serial_number' => $serialNumber,
+ 'expiry_date_at' => $expiryDate,
+ 'received_at' => now(),
+ 'comments' => $notes,
+ 'status' => 'available',
+ ]);
+ }
+
+ // ----------------------------------------------------------
+ // Update the PO line item
+ // ----------------------------------------------------------
+ $newQtyReceived = $item->quantity_received + $qtyToReceive;
+ $item->quantity_received = $newQtyReceived;
+ $item->received_at = now();
+ $item->status = ($newQtyReceived >= $item->quantity) ? 'received' : 'partial';
+ $item->save();
+
+ $receivedSummary[] = [
+ 'item_uuid' => $item->uuid,
+ 'product_uuid' => $item->product_uuid,
+ 'variant_uuid' => $item->variant_uuid,
+ 'quantity_received' => $qtyToReceive,
+ 'inventory_uuid' => $inventory->uuid,
+ 'status' => $item->status,
+ ];
+ }
+
+ // ----------------------------------------------------------
+ // Update the PO status based on all items
+ // ----------------------------------------------------------
+ $purchaseOrder->load('items');
+ $allItems = $purchaseOrder->items;
+ $totalItems = $allItems->count();
+ $receivedItems = $allItems->where('status', 'received')->count();
+ $partialItems = $allItems->where('status', 'partial')->count();
+
+ if ($totalItems > 0 && $receivedItems === $totalItems) {
+ // All items fully received
+ $purchaseOrder->markAsReceived($receivedSummary);
+ } elseif ($receivedItems > 0 || $partialItems > 0) {
+ // Partial receipt
+ $purchaseOrder->status = 'partial';
+ $purchaseOrder->save();
+ }
+ });
+
+ // Return the refreshed PO with items
+ $purchaseOrder->load('items');
+
+ return new PurchaseOrderResource($purchaseOrder);
+ } catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) {
+ return response()->error('Purchase order not found.', 404);
+ } catch (\Exception $e) {
+ return response()->error($e->getMessage());
+ } catch (QueryException $e) {
+ return response()->error($e->getMessage());
+ }
+ }
}
diff --git a/server/src/Http/Controllers/PurchaseOrderItemController.php b/server/src/Http/Controllers/PurchaseOrderItemController.php
new file mode 100644
index 00000000..22b5fc74
--- /dev/null
+++ b/server/src/Http/Controllers/PurchaseOrderItemController.php
@@ -0,0 +1,122 @@
+with(['product', 'variant', 'warehouse'])
+ ->orderBy('created_at', 'asc')
+ ->get();
+
+ return PurchaseOrderItemResource::collection($items);
+ }
+
+ /**
+ * Create a new line item on a Purchase Order.
+ *
+ * POST /pallet/v1/purchase-orders/{purchaseOrder}/items
+ *
+ * @return PurchaseOrderItemResource
+ */
+ public function store(Request $request, string $purchaseOrderUuid)
+ {
+ $input = $request->input('purchase_order_item', $request->all());
+ $product = Product::where('uuid', data_get($input, 'product_uuid'))->where('company_uuid', session('company'))->first();
+ if ($product?->has_variants && !data_get($input, 'variant_uuid')) {
+ return response()->error('Variant is required for line items on products with variants.', 422);
+ }
+
+ $item = PurchaseOrderItem::create(array_merge($input, [
+ 'uuid' => Str::uuid(),
+ 'company_uuid' => session('company'),
+ 'created_by_uuid' => session('user'),
+ 'purchase_order_uuid' => $purchaseOrderUuid,
+ 'status' => $input['status'] ?? 'pending',
+ ]));
+
+ // Auto-calculate total_price if unit_price and quantity are provided
+ $item->recalculateTotalPrice();
+ $item->save();
+
+ $item->load(['product', 'variant', 'warehouse']);
+
+ return new PurchaseOrderItemResource($item);
+ }
+
+ /**
+ * Update an existing line item.
+ *
+ * PUT /pallet/v1/purchase-orders/{purchaseOrder}/items/{item}
+ *
+ * @return PurchaseOrderItemResource
+ */
+ public function update(Request $request, string $purchaseOrderUuid, string $itemUuid)
+ {
+ $item = PurchaseOrderItem::where('uuid', $itemUuid)
+ ->where('purchase_order_uuid', $purchaseOrderUuid)
+ ->firstOrFail();
+
+ $input = $request->input('purchase_order_item', $request->all());
+ $product = Product::where('uuid', data_get($input, 'product_uuid', $item->product_uuid))->where('company_uuid', session('company'))->first();
+ if ($product?->has_variants && !data_get($input, 'variant_uuid', $item->variant_uuid)) {
+ return response()->error('Variant is required for line items on products with variants.', 422);
+ }
+
+ $item->fill($input);
+
+ // Recalculate total_price if pricing fields changed
+ if (isset($input['unit_price']) || isset($input['quantity'])) {
+ $item->recalculateTotalPrice();
+ }
+
+ $item->save();
+ $item->load(['product', 'variant', 'warehouse']);
+
+ return new PurchaseOrderItemResource($item);
+ }
+
+ /**
+ * Delete a line item.
+ *
+ * DELETE /pallet/v1/purchase-orders/{purchaseOrder}/items/{item}
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function destroy(string $purchaseOrderUuid, string $itemUuid)
+ {
+ $item = PurchaseOrderItem::where('uuid', $itemUuid)
+ ->where('purchase_order_uuid', $purchaseOrderUuid)
+ ->firstOrFail();
+
+ $item->delete();
+
+ return response()->json(['status' => 'ok', 'message' => 'Line item deleted.']);
+ }
+}
diff --git a/server/src/Http/Controllers/SalesOrderController.php b/server/src/Http/Controllers/SalesOrderController.php
index 354eb974..c4ab9c69 100644
--- a/server/src/Http/Controllers/SalesOrderController.php
+++ b/server/src/Http/Controllers/SalesOrderController.php
@@ -2,11 +2,15 @@
namespace Fleetbase\Pallet\Http\Controllers;
-use Fleetbase\Pallet\Models\SalesOrder;
use Fleetbase\Exceptions\FleetbaseRequestValidationException;
+use Fleetbase\Pallet\Http\Resources\SalesOrder as SalesOrderResource;
+use Fleetbase\Pallet\Models\Inventory;
+use Fleetbase\Pallet\Models\SalesOrder;
+use Fleetbase\Pallet\Models\SalesOrderItem;
use Fleetbase\Support\Http;
-use Illuminate\Http\Request;
use Illuminate\Database\QueryException;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
class SalesOrderController extends PalletResourceController
{
@@ -17,31 +21,42 @@ class SalesOrderController extends PalletResourceController
*/
public $resource = 'sales-order';
+ /**
+ * Create a new Sales Order.
+ *
+ * @return \Illuminate\Http\Response
+ */
public function createRecord(Request $request)
{
try {
$this->validateRequest($request);
- $data = $request->input('salesOrder');
+ $data = $request->input('sales_order');
$salesOrder = new SalesOrder([
- 'company_uuid' => session('company'),
- 'created_by_uuid' => session('user'),
- 'supplier_uuid' => data_get($data, 'supplier_uuid'),
- 'transaction_uuid' => data_get($data, 'transaction_uuid'),
- 'assigned_to_uuid' => data_get($data, 'user'),
- 'status' => data_get($data, 'status'),
- 'reference_code' => data_get($data, 'reference_code'),
- 'reference_url' => data_get($data, 'reference_url'),
- 'description' => data_get($data, 'description'),
- 'comments' => data_get($data, 'comments'),
- 'expected_delivery_at' => data_get($data, 'expected_delivery_at'),
- 'order_date_at' => data_get($data, 'order_date_at'),
+ 'company_uuid' => session('company'),
+ 'created_by_uuid' => session('user'),
+ 'supplier_uuid' => data_get($data, 'supplier_uuid'),
+ 'transaction_uuid' => data_get($data, 'transaction_uuid'),
+ 'assigned_to_uuid' => data_get($data, 'assigned_to_uuid'),
+ 'point_of_contact_uuid' => data_get($data, 'point_of_contact_uuid'),
+ 'status' => data_get($data, 'status', 'pending'),
+ 'reference_code' => data_get($data, 'reference_code'),
+ 'reference_url' => data_get($data, 'reference_url'),
+ 'customer_reference_code' => data_get($data, 'customer_reference_code'),
+ 'description' => data_get($data, 'description'),
+ 'comments' => data_get($data, 'comments'),
+ 'currency' => data_get($data, 'currency'),
+ 'meta' => data_get($data, 'meta', []),
+ 'expected_delivery_at' => data_get($data, 'expected_delivery_at'),
+ 'order_date_at' => data_get($data, 'order_date_at', now()),
]);
+
$salesOrder->save();
if (Http::isInternalRequest($request)) {
$this->resource::wrap($this->resourceSingularlName);
}
+
return new $this->resource($salesOrder);
} catch (\Exception $e) {
return response()->error($e->getMessage());
@@ -51,4 +66,220 @@ public function createRecord(Request $request)
return response()->error($e->getErrors());
}
}
+
+ /**
+ * Fulfill a Sales Order.
+ *
+ * Processes the fulfillment of a SO by deducting inventory for each line item.
+ * Supports full and partial fulfillment. Validates that sufficient available
+ * stock exists before deducting. Releases any existing reservations.
+ *
+ * Request body:
+ * {
+ * "items": [
+ * {
+ * "uuid": "",
+ * "quantity_fulfilled": 5,
+ * "inventory_uuid": "", // optional: specific inventory record to deduct from
+ * "notes": "Shipped via DHL" // optional
+ * }
+ * ]
+ * }
+ *
+ * @param string $id The SO public_id or UUID
+ *
+ * @return \Illuminate\Http\Response
+ */
+ public function fulfill(Request $request, string $id)
+ {
+ try {
+ // Resolve the SO
+ $salesOrder = SalesOrder::where(function ($q) use ($id) {
+ $q->where('uuid', $id)->orWhere('public_id', $id);
+ })->where('company_uuid', session('company'))->firstOrFail();
+
+ // Guard: cannot fulfill an already-fulfilled or cancelled SO
+ if (in_array($salesOrder->status, ['fulfilled', 'cancelled'])) {
+ return response()->error(
+ "Sales order [{$salesOrder->public_id}] cannot be fulfilled because its status is '{$salesOrder->status}'.",
+ 400
+ );
+ }
+
+ $itemsInput = $request->input('items', []);
+
+ if (empty($itemsInput)) {
+ return response()->error('No items provided for fulfillment.', 422);
+ }
+
+ $fulfilledSummary = [];
+ $insufficientStock = [];
+
+ // ------------------------------------------------------------------
+ // Pre-flight stock check — validate before touching any inventory
+ // ------------------------------------------------------------------
+ foreach ($itemsInput as $itemData) {
+ $itemUuid = data_get($itemData, 'uuid');
+ $qtyFulfill = (int) data_get($itemData, 'quantity_fulfilled', 0);
+ $inventoryUuid = data_get($itemData, 'inventory_uuid');
+
+ if ($qtyFulfill <= 0) {
+ continue;
+ }
+
+ $item = SalesOrderItem::where('uuid', $itemUuid)
+ ->where('sales_order_uuid', $salesOrder->uuid)
+ ->first();
+
+ if (!$item) {
+ continue;
+ }
+
+ $warehouseUuid = $item->warehouse_uuid ?? $salesOrder->warehouse_uuid ?? null;
+
+ // Find the inventory to deduct from
+ if ($inventoryUuid) {
+ $inventory = Inventory::where('uuid', $inventoryUuid)
+ ->where('company_uuid', $salesOrder->company_uuid)
+ ->first();
+ } else {
+ $inventory = Inventory::where('company_uuid', $salesOrder->company_uuid)
+ ->where('product_uuid', $item->product_uuid)
+ ->where('variant_uuid', $item->variant_uuid)
+ ->where('warehouse_uuid', $warehouseUuid)
+ ->where('status', 'available')
+ ->orderBy('expiry_date_at', 'asc') // FEFO: First Expired, First Out
+ ->first();
+ }
+
+ if (!$inventory || $inventory->available_quantity < $qtyFulfill) {
+ $insufficientStock[] = [
+ 'item_uuid' => $itemUuid,
+ 'product_uuid' => $item->product_uuid,
+ 'variant_uuid' => $item->variant_uuid,
+ 'requested' => $qtyFulfill,
+ 'available' => $inventory ? $inventory->available_quantity : 0,
+ ];
+ }
+ }
+
+ if (!empty($insufficientStock)) {
+ return response()->json([
+ 'error' => 'Insufficient stock for one or more items.',
+ 'insufficient_stock' => $insufficientStock,
+ ], 422);
+ }
+
+ // ------------------------------------------------------------------
+ // All stock checks passed — process fulfillment in a transaction
+ // ------------------------------------------------------------------
+ DB::transaction(function () use ($salesOrder, $itemsInput, &$fulfilledSummary) {
+ foreach ($itemsInput as $itemData) {
+ $itemUuid = data_get($itemData, 'uuid');
+ $qtyFulfill = (int) data_get($itemData, 'quantity_fulfilled', 0);
+ $inventoryUuid = data_get($itemData, 'inventory_uuid');
+ $notes = data_get($itemData, 'notes');
+
+ if ($qtyFulfill <= 0) {
+ continue;
+ }
+
+ $item = SalesOrderItem::where('uuid', $itemUuid)
+ ->where('sales_order_uuid', $salesOrder->uuid)
+ ->first();
+
+ if (!$item) {
+ continue;
+ }
+
+ // Cap at outstanding quantity
+ $outstanding = max(0, $item->quantity - ($item->quantity_fulfilled ?? 0));
+ $qtyToFulfill = min($qtyFulfill, $outstanding);
+
+ if ($qtyToFulfill <= 0) {
+ continue;
+ }
+
+ $warehouseUuid = $item->warehouse_uuid ?? $salesOrder->warehouse_uuid ?? null;
+
+ // Resolve inventory record
+ if ($inventoryUuid) {
+ $inventory = Inventory::where('uuid', $inventoryUuid)
+ ->where('company_uuid', $salesOrder->company_uuid)
+ ->first();
+ } else {
+ $inventory = Inventory::where('company_uuid', $salesOrder->company_uuid)
+ ->where('product_uuid', $item->product_uuid)
+ ->where('variant_uuid', $item->variant_uuid)
+ ->where('warehouse_uuid', $warehouseUuid)
+ ->where('status', 'available')
+ ->orderBy('expiry_date_at', 'asc') // FEFO
+ ->first();
+ }
+
+ if (!$inventory) {
+ continue;
+ }
+
+ // Release any reservation for this item, then deduct
+ if ($item->inventory_uuid) {
+ $inventory->releaseReservation($qtyToFulfill);
+ }
+
+ $inventory->deduct($qtyToFulfill);
+
+ // Update the SO line item
+ $newQtyFulfilled = ($item->quantity_fulfilled ?? 0) + $qtyToFulfill;
+ $item->quantity_fulfilled = $newQtyFulfilled;
+ $item->fulfilled_at = now();
+ $item->inventory_uuid = $inventory->uuid;
+ $item->status = ($newQtyFulfilled >= $item->quantity) ? 'fulfilled' : 'partial';
+
+ if ($notes) {
+ $item->notes = $notes;
+ }
+
+ $item->save();
+
+ $fulfilledSummary[] = [
+ 'item_uuid' => $item->uuid,
+ 'product_uuid' => $item->product_uuid,
+ 'variant_uuid' => $item->variant_uuid,
+ 'quantity_fulfilled' => $qtyToFulfill,
+ 'inventory_uuid' => $inventory->uuid,
+ 'status' => $item->status,
+ ];
+ }
+
+ // ----------------------------------------------------------
+ // Update the SO status based on all items
+ // ----------------------------------------------------------
+ $salesOrder->load('items');
+ $allItems = $salesOrder->items;
+ $totalItems = $allItems->count();
+ $fulfilledItems = $allItems->where('status', 'fulfilled')->count();
+ $partialItems = $allItems->where('status', 'partial')->count();
+
+ if ($totalItems > 0 && $fulfilledItems === $totalItems) {
+ // All items fully fulfilled
+ $salesOrder->markAsFulfilled($fulfilledSummary);
+ } elseif ($fulfilledItems > 0 || $partialItems > 0) {
+ // Partial fulfillment
+ $salesOrder->status = 'partial';
+ $salesOrder->save();
+ }
+ });
+
+ // Return the refreshed SO with items
+ $salesOrder->load('items');
+
+ return new SalesOrderResource($salesOrder);
+ } catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) {
+ return response()->error('Sales order not found.', 404);
+ } catch (\Exception $e) {
+ return response()->error($e->getMessage());
+ } catch (QueryException $e) {
+ return response()->error($e->getMessage());
+ }
+ }
}
diff --git a/server/src/Http/Controllers/SalesOrderItemController.php b/server/src/Http/Controllers/SalesOrderItemController.php
new file mode 100644
index 00000000..55568617
--- /dev/null
+++ b/server/src/Http/Controllers/SalesOrderItemController.php
@@ -0,0 +1,122 @@
+with(['product', 'variant', 'warehouse', 'inventory'])
+ ->orderBy('created_at', 'asc')
+ ->get();
+
+ return SalesOrderItemResource::collection($items);
+ }
+
+ /**
+ * Create a new line item on a Sales Order.
+ *
+ * POST /pallet/v1/sales-orders/{salesOrder}/items
+ *
+ * @return SalesOrderItemResource
+ */
+ public function store(Request $request, string $salesOrderUuid)
+ {
+ $input = $request->input('sales_order_item', $request->all());
+ $product = Product::where('uuid', data_get($input, 'product_uuid'))->where('company_uuid', session('company'))->first();
+ if ($product?->has_variants && !data_get($input, 'variant_uuid')) {
+ return response()->error('Variant is required for line items on products with variants.', 422);
+ }
+
+ $item = SalesOrderItem::create(array_merge($input, [
+ 'uuid' => Str::uuid(),
+ 'company_uuid' => session('company'),
+ 'created_by_uuid' => session('user'),
+ 'sales_order_uuid' => $salesOrderUuid,
+ 'status' => $input['status'] ?? 'pending',
+ ]));
+
+ // Auto-calculate total_price if unit_price and quantity are provided
+ $item->recalculateTotalPrice();
+ $item->save();
+
+ $item->load(['product', 'variant', 'warehouse', 'inventory']);
+
+ return new SalesOrderItemResource($item);
+ }
+
+ /**
+ * Update an existing line item.
+ *
+ * PUT /pallet/v1/sales-orders/{salesOrder}/items/{item}
+ *
+ * @return SalesOrderItemResource
+ */
+ public function update(Request $request, string $salesOrderUuid, string $itemUuid)
+ {
+ $item = SalesOrderItem::where('uuid', $itemUuid)
+ ->where('sales_order_uuid', $salesOrderUuid)
+ ->firstOrFail();
+
+ $input = $request->input('sales_order_item', $request->all());
+ $product = Product::where('uuid', data_get($input, 'product_uuid', $item->product_uuid))->where('company_uuid', session('company'))->first();
+ if ($product?->has_variants && !data_get($input, 'variant_uuid', $item->variant_uuid)) {
+ return response()->error('Variant is required for line items on products with variants.', 422);
+ }
+
+ $item->fill($input);
+
+ // Recalculate total_price if pricing fields changed
+ if (isset($input['unit_price']) || isset($input['quantity'])) {
+ $item->recalculateTotalPrice();
+ }
+
+ $item->save();
+ $item->load(['product', 'variant', 'warehouse', 'inventory']);
+
+ return new SalesOrderItemResource($item);
+ }
+
+ /**
+ * Delete a line item.
+ *
+ * DELETE /pallet/v1/sales-orders/{salesOrder}/items/{item}
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function destroy(string $salesOrderUuid, string $itemUuid)
+ {
+ $item = SalesOrderItem::where('uuid', $itemUuid)
+ ->where('sales_order_uuid', $salesOrderUuid)
+ ->firstOrFail();
+
+ $item->delete();
+
+ return response()->json(['status' => 'ok', 'message' => 'Line item deleted.']);
+ }
+}
diff --git a/server/src/Http/Controllers/WarehouseController.php b/server/src/Http/Controllers/WarehouseController.php
index 99b5e568..a7424c99 100644
--- a/server/src/Http/Controllers/WarehouseController.php
+++ b/server/src/Http/Controllers/WarehouseController.php
@@ -3,6 +3,7 @@
namespace Fleetbase\Pallet\Http\Controllers;
use Fleetbase\Exceptions\FleetbaseRequestValidationException;
+use Fleetbase\Models\Place;
use Fleetbase\Pallet\Models\WarehouseAisle;
use Fleetbase\Pallet\Models\WarehouseBin;
use Fleetbase\Pallet\Models\WarehouseDock;
@@ -25,11 +26,37 @@ public function createRecord(Request $request)
{
try {
$this->validateRequest($request);
- $record = $this->model->createRecordFromRequest($request, null, function ($request, $warehouse) {
+ $record = $this->model->createRecordFromRequest($request, function ($request, &$input) {
+ // Build place data from address fields and create a linked Place
+ $placeData = $request->input('warehouse.place', []);
+ if (empty($placeData)) {
+ $placeData = array_filter([
+ 'name' => $request->input('warehouse.name'),
+ 'street1' => $request->input('warehouse.street1'),
+ 'street2' => $request->input('warehouse.street2'),
+ 'city' => $request->input('warehouse.city'),
+ 'province' => $request->input('warehouse.province'),
+ 'postal_code' => $request->input('warehouse.postal_code'),
+ 'country' => $request->input('warehouse.country'),
+ 'neighborhood' => $request->input('warehouse.neighborhood'),
+ 'district' => $request->input('warehouse.district'),
+ 'building' => $request->input('warehouse.building'),
+ 'location' => $request->input('warehouse.location'),
+ ]);
+ }
+ if (!empty($placeData)) {
+ $place = Place::create(array_merge($placeData, [
+ 'company_uuid' => session('company'),
+ 'created_by_uuid' => session('user'),
+ 'type' => 'pallet-warehouse',
+ ]));
+ $input['place_uuid'] = $place->uuid;
+ }
+ }, function ($request, $warehouse) {
$docks = $request->array('warehouse.docks', []);
foreach ($docks as $dock) {
WarehouseDock::create(array_merge($dock, [
- 'warehouse_uuid' => data_get($warehouse, 'uuid'),
+ 'warehouse_uuid' => $warehouse->uuid,
'company_uuid' => session('company'),
'created_by_uuid' => session('user'),
]));
@@ -38,7 +65,7 @@ public function createRecord(Request $request)
$sections = $request->array('warehouse.sections', []);
foreach ($sections as $section) {
$createdSection = WarehouseSection::create(array_merge($section, [
- 'warehouse_uuid' => data_get($warehouse, 'uuid'),
+ 'warehouse_uuid' => $warehouse->uuid,
'company_uuid' => session('company'),
'created_by_uuid' => session('user'),
]));
@@ -92,27 +119,72 @@ public function updateRecord(Request $request, string $id)
{
try {
$this->validateRequest($request);
- $record = $this->model->updateRecordFromRequest($request, $id, null, function ($request, $warehouse) {
+ $record = $this->model->updateRecordFromRequest($request, $id, function ($request, &$input, $warehouse) {
+ // Update or create the linked Place
+ $placeData = $request->input('warehouse.place', []);
+ if (empty($placeData)) {
+ $placeData = array_filter([
+ 'name' => $request->input('warehouse.name'),
+ 'street1' => $request->input('warehouse.street1'),
+ 'street2' => $request->input('warehouse.street2'),
+ 'city' => $request->input('warehouse.city'),
+ 'province' => $request->input('warehouse.province'),
+ 'postal_code' => $request->input('warehouse.postal_code'),
+ 'country' => $request->input('warehouse.country'),
+ 'neighborhood' => $request->input('warehouse.neighborhood'),
+ 'district' => $request->input('warehouse.district'),
+ 'building' => $request->input('warehouse.building'),
+ 'location' => $request->input('warehouse.location'),
+ ]);
+ }
+ if (!empty($placeData)) {
+ if ($warehouse->place_uuid) {
+ Place::where('uuid', $warehouse->place_uuid)->update($placeData);
+ } else {
+ $place = Place::create(array_merge($placeData, [
+ 'company_uuid' => session('company'),
+ 'created_by_uuid' => session('user'),
+ 'type' => 'pallet-warehouse',
+ ]));
+ $input['place_uuid'] = $place->uuid;
+ }
+ }
+ }, function ($request, $warehouse) {
$docks = $request->array('warehouse.docks', []);
foreach ($docks as $dock) {
- WarehouseDock::updateOrCreate(['uuid' => data_get($dock, 'uuid')], array_merge($dock, ['warehouse_uuid' => $warehouse->uuid, 'company_uuid' => session('company'), 'created_by_uuid' => session('user')]));
+ WarehouseDock::updateOrCreate(
+ ['uuid' => data_get($dock, 'uuid')],
+ array_merge($dock, ['warehouse_uuid' => $warehouse->uuid, 'company_uuid' => session('company'), 'created_by_uuid' => session('user')])
+ );
}
$sections = $request->array('warehouse.sections', []);
foreach ($sections as $section) {
- WarehouseSection::updateOrCreate(['uuid' => data_get($section, 'uuid')], array_merge($section, ['warehouse_uuid' => $warehouse->uuid, 'company_uuid' => session('company'), 'created_by_uuid' => session('user')]));
+ WarehouseSection::updateOrCreate(
+ ['uuid' => data_get($section, 'uuid')],
+ array_merge($section, ['warehouse_uuid' => $warehouse->uuid, 'company_uuid' => session('company'), 'created_by_uuid' => session('user')])
+ );
$aisles = data_get($section, 'aisles', []);
foreach ($aisles as $aisle) {
- WarehouseAisle::updateOrCreate(['uuid' => data_get($aisle, 'uuid')], array_merge($aisle, ['section_uuid' => data_get($section, 'uuid'), 'company_uuid' => session('company'), 'created_by_uuid' => session('user')]));
+ WarehouseAisle::updateOrCreate(
+ ['uuid' => data_get($aisle, 'uuid')],
+ array_merge($aisle, ['section_uuid' => data_get($section, 'uuid'), 'company_uuid' => session('company'), 'created_by_uuid' => session('user')])
+ );
$racks = data_get($aisle, 'racks', []);
foreach ($racks as $rack) {
- WarehouseRack::updateOrCreate(['uuid' => data_get($rack, 'uuid')], array_merge($rack, ['aisle_uuid' => data_get($aisle, 'uuid'), 'company_uuid' => session('company'), 'created_by_uuid' => session('user')]));
+ WarehouseRack::updateOrCreate(
+ ['uuid' => data_get($rack, 'uuid')],
+ array_merge($rack, ['aisle_uuid' => data_get($aisle, 'uuid'), 'company_uuid' => session('company'), 'created_by_uuid' => session('user')])
+ );
$bins = data_get($rack, 'bins', []);
foreach ($bins as $bin) {
- WarehouseBin::updateOrCreate(['uuid' => data_get($bin, 'uuid')], array_merge($bin, ['rack_uuid' => data_get($rack, 'uuid'), 'company_uuid' => session('company'), 'created_by_uuid' => session('user')]));
+ WarehouseBin::updateOrCreate(
+ ['uuid' => data_get($bin, 'uuid')],
+ array_merge($bin, ['rack_uuid' => data_get($rack, 'uuid'), 'company_uuid' => session('company'), 'created_by_uuid' => session('user')])
+ );
}
}
}
diff --git a/server/src/Http/Controllers/WarehouseDockController.php b/server/src/Http/Controllers/WarehouseDockController.php
index 5d2bd4d5..d3a1f0ca 100644
--- a/server/src/Http/Controllers/WarehouseDockController.php
+++ b/server/src/Http/Controllers/WarehouseDockController.php
@@ -2,7 +2,7 @@
namespace Fleetbase\Pallet\Http\Controllers;
-class WarehouseSectionController extends PalletResourceController
+class WarehouseDockController extends PalletResourceController
{
/**
* The resource to query.
diff --git a/server/src/Http/Filter/InventoryFilter.php b/server/src/Http/Filter/InventoryFilter.php
index 7b8ff869..30cc809e 100644
--- a/server/src/Http/Filter/InventoryFilter.php
+++ b/server/src/Http/Filter/InventoryFilter.php
@@ -4,8 +4,6 @@
use Fleetbase\Http\Filter\Filter;
use Fleetbase\Pallet\Support\Utils;
-use Illuminate\Support\Facades\DB;
-
class InventoryFilter extends Filter
{
diff --git a/server/src/Http/Filter/ProductFilter.php b/server/src/Http/Filter/ProductFilter.php
index ccd6280f..9fc49c10 100644
--- a/server/src/Http/Filter/ProductFilter.php
+++ b/server/src/Http/Filter/ProductFilter.php
@@ -10,13 +10,11 @@ class ProductFilter extends Filter
public function queryForInternal()
{
$this->builder->where('company_uuid', $this->session->get('company'));
- $this->builder->where('type', 'pallet-product');
}
public function query(?string $query)
{
$this->builder->search($query);
- $this->builder->where('type', 'pallet-product');
}
public function name(?string $name)
@@ -41,7 +39,7 @@ public function sku(?string $sku)
public function price(?string $price)
{
- $this->builder->searchWhere('price', $price);
+ $this->builder->searchWhere('unit_price', $price);
}
public function salePrice(?string $salePrice)
diff --git a/server/src/Http/Filter/SuplierFilter.php b/server/src/Http/Filter/SupplierFilter.php
similarity index 100%
rename from server/src/Http/Filter/SuplierFilter.php
rename to server/src/Http/Filter/SupplierFilter.php
diff --git a/server/src/Http/Filter/WarehouseFilter.php b/server/src/Http/Filter/WarehouseFilter.php
index b16f32b3..3c62b01e 100644
--- a/server/src/Http/Filter/WarehouseFilter.php
+++ b/server/src/Http/Filter/WarehouseFilter.php
@@ -9,12 +9,40 @@ class WarehouseFilter extends Filter
public function queryForInternal()
{
$this->builder->where('company_uuid', $this->session->get('company'));
- $this->builder->where('type', 'pallet-warehouse');
+ }
+
+ public function queryForPublic()
+ {
+ $this->builder->where('company_uuid', $this->session->get('company'));
}
public function query(?string $query)
{
- $this->builder->search($query);
- $this->builder->where('type', 'pallet-warehouse');
+ $this->builder->where(function ($q) use ($query) {
+ $q->where('name', 'like', "%{$query}%")
+ ->orWhere('code', 'like', "%{$query}%")
+ ->orWhere('type', 'like', "%{$query}%");
+ });
+ }
+
+ public function type(?string $type)
+ {
+ if ($type) {
+ $this->builder->where('type', $type);
+ }
+ }
+
+ public function status(?string $status)
+ {
+ if ($status) {
+ $this->builder->where('status', $status);
+ }
+ }
+
+ public function isActive(?bool $isActive)
+ {
+ if ($isActive !== null) {
+ $this->builder->where('is_active', $isActive);
+ }
}
}
diff --git a/server/src/Http/Resources/Audit.php b/server/src/Http/Resources/Audit.php
new file mode 100644
index 00000000..515ca226
--- /dev/null
+++ b/server/src/Http/Resources/Audit.php
@@ -0,0 +1,69 @@
+ $this->when(Http::isInternalRequest(), $this->incrementing_id, $this->public_id),
+ 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
+ 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
+ 'company_uuid' => $this->when(Http::isInternalRequest(), $this->company_uuid),
+
+ // Who performed the action
+ 'performed_by_uuid' => $this->performed_by_uuid,
+ 'performed_by' => $this->whenLoaded('performedBy', fn () => $this->performedBy ? [
+ 'uuid' => $this->performedBy->uuid,
+ 'name' => $this->performedBy->name,
+ 'email' => $this->performedBy->email,
+ 'avatar' => $this->performedBy->avatar_url ?? null,
+ ] : null),
+
+ // Who created the record (usually same as performed_by)
+ 'created_by_uuid' => $this->when(Http::isInternalRequest(), $this->created_by_uuid),
+ 'created_by' => $this->whenLoaded('createdBy', fn () => $this->createdBy ? [
+ 'uuid' => $this->createdBy->uuid,
+ 'name' => $this->createdBy->name,
+ ] : null),
+
+ // Polymorphic subject
+ 'auditable_uuid' => $this->auditable_uuid,
+ 'auditable_type' => $this->auditable_type,
+ 'subject_uuid' => $this->auditable_uuid,
+ 'subject_type' => $this->auditable_type,
+ 'subject_label' => $this->subject_label,
+ 'description' => $this->action,
+
+ // Event classification
+ 'event_type' => $this->event_type,
+ 'action' => $this->action,
+ 'type' => $this->type,
+
+ // Operational context
+ 'reason' => $this->reason,
+ 'comments' => $this->comments,
+ 'meta' => $this->meta ?? [],
+ 'old_values' => $this->old_values ?? [],
+ 'new_values' => $this->new_values ?? [],
+
+ // Timestamps
+ 'scheduled_at' => $this->scheduled_at,
+ 'completed_at' => $this->completed_at,
+ 'updated_at' => $this->updated_at,
+ 'created_at' => $this->created_at,
+ 'performed_by_name' => $this->performedBy?->name,
+ ];
+ }
+}
diff --git a/server/src/Http/Resources/Batch.php b/server/src/Http/Resources/Batch.php
index e822dc89..5751f966 100644
--- a/server/src/Http/Resources/Batch.php
+++ b/server/src/Http/Resources/Batch.php
@@ -20,8 +20,12 @@ public function toArray($request)
'id' => $this->when(Http::isInternalRequest(), $this->incrementing_id, $this->public_id),
'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
+ 'product_uuid' => $this->product_uuid,
+ 'variant_uuid' => $this->variant_uuid,
+ 'product' => $this->whenLoaded('product', fn () => new Product($this->product)),
+ 'variant' => $this->whenLoaded('variant', fn () => new ProductVariant($this->variant)),
'batch_number' => $this->batch_number,
- 'batch_quantity' => $this->batch_quantity,
+ 'quantity' => $this->quantity,
'updated_at' => $this->updated_at,
'created_at' => $this->created_at,
'expiry_date_at' => $this->expiry_date_at,
diff --git a/server/src/Http/Resources/IndexInventory.php b/server/src/Http/Resources/IndexInventory.php
index 7115dea5..cd1a0c50 100644
--- a/server/src/Http/Resources/IndexInventory.php
+++ b/server/src/Http/Resources/IndexInventory.php
@@ -19,7 +19,9 @@ public function toArray($request)
'uuid' => $this->latest_uuid,
'public_id' => $this->latest_public_id,
'product_uuid' => $this->product_uuid,
+ 'variant_uuid' => $this->variant_uuid,
'product' => $this->whenLoaded('product', $this->product),
+ 'variant' => $this->whenLoaded('variant', $this->variant),
'batch' => $this->whenLoaded('batch', new Batch($this->batch)),
'batch_uuid' => $this->batch_uuid,
'supplier_uuid' => $this->supplier_uuid,
diff --git a/server/src/Http/Resources/Inventory.php b/server/src/Http/Resources/Inventory.php
index db766e17..060f5452 100644
--- a/server/src/Http/Resources/Inventory.php
+++ b/server/src/Http/Resources/Inventory.php
@@ -21,17 +21,32 @@ public function toArray($request)
'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
'product_uuid' => $this->product_uuid,
+ 'variant_uuid' => $this->variant_uuid,
'batch_uuid' => $this->batch_uuid,
'warehouse_uuid' => $this->warehouse_uuid,
+ 'bin_location_uuid' => $this->bin_location_uuid,
+ 'zone_uuid' => $this->zone_uuid,
'supplier_uuid' => $this->supplier_uuid,
'supplier' => $this->whenLoaded('supplier', $this->supplier),
- 'product' => $this->whenLoaded('product', $this->product),
+ 'product' => $this->whenLoaded('product', fn () => new Product($this->product)),
+ 'variant' => $this->whenLoaded('variant', fn () => new ProductVariant($this->variant)),
'batch' => $this->whenLoaded('batch', new Batch($this->batch)),
'warehouse' => $this->whenLoaded('warehouse', new Warehouse($this->warehouse)),
+ 'status' => $this->status,
'quantity' => (int) $this->quantity,
+ 'reserved_quantity' => (int) $this->reserved_quantity,
+ 'available_quantity' => (int) $this->available_quantity,
'min_quantity' => (int) $this->min_quantity,
+ 'max_quantity' => (int) $this->max_quantity,
+ 'reorder_point' => (int) $this->reorder_point,
+ 'unit_cost' => $this->unit_cost,
+ 'lot_number' => $this->lot_number,
+ 'serial_number' => $this->serial_number,
+ 'uom' => $this->uom,
'comments' => $this->comments,
'expiry_date_at' => $this->expiry_date_at,
+ 'received_at' => $this->received_at,
+ 'last_counted_at' => $this->last_counted_at,
'updated_at' => $this->updated_at,
'created_at' => $this->created_at,
];
diff --git a/server/src/Http/Resources/Product.php b/server/src/Http/Resources/Product.php
new file mode 100644
index 00000000..c9990fc7
--- /dev/null
+++ b/server/src/Http/Resources/Product.php
@@ -0,0 +1,61 @@
+ $this->when(Http::isInternalRequest(), $this->public_id, $this->public_id),
+ 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
+ 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
+ 'company_uuid' => $this->company_uuid,
+ 'created_by_uuid' => $this->created_by_uuid,
+ 'category_uuid' => $this->category_uuid,
+ 'supplier_uuid' => $this->supplier_uuid,
+ 'photo_uuid' => $this->photo_uuid,
+ 'photo_url' => $this->photo_url,
+ 'supplier' => $this->whenLoaded('supplier', $this->supplier),
+ 'category' => $this->whenLoaded('category', $this->category),
+ 'variants' => $this->whenLoaded('variants', fn () => ProductVariant::collection($this->variants)),
+ 'internal_id' => $this->internal_id,
+ 'name' => $this->name,
+ 'description' => $this->description,
+ 'sku' => $this->sku,
+ 'barcode' => $this->barcode,
+ 'currency' => $this->currency,
+ 'unit_cost' => $this->unit_cost,
+ 'unit_price' => $this->unit_price,
+ 'sale_price' => $this->sale_price,
+ 'declared_value' => $this->declared_value,
+ 'weight' => $this->weight,
+ 'weight_unit' => $this->weight_unit,
+ 'length' => $this->length,
+ 'width' => $this->width,
+ 'height' => $this->height,
+ 'dimensions_unit' => $this->dimensions_unit,
+ 'dimensions' => $this->dimensions,
+ 'has_variants' => (bool) $this->has_variants,
+ 'variant_count' => (int) $this->variant_count,
+ 'is_serialized' => (bool) $this->is_serialized,
+ 'is_lot_tracked' => (bool) $this->is_lot_tracked,
+ 'is_kit' => (bool) $this->is_kit,
+ 'is_perishable' => (bool) $this->is_perishable,
+ 'requires_quality_check' => (bool) $this->requires_quality_check,
+ 'reorder_point' => (int) $this->reorder_point,
+ 'reorder_quantity' => (int) $this->reorder_quantity,
+ 'shelf_life_days' => (int) $this->shelf_life_days,
+ 'total_stock' => (int) $this->total_stock,
+ 'available_stock' => (int) $this->available_stock,
+ 'status' => $this->status,
+ 'slug' => $this->slug,
+ 'meta' => $this->meta,
+ 'updated_at' => $this->updated_at,
+ 'created_at' => $this->created_at,
+ ];
+ }
+}
diff --git a/server/src/Http/Resources/ProductVariant.php b/server/src/Http/Resources/ProductVariant.php
new file mode 100644
index 00000000..a9f38317
--- /dev/null
+++ b/server/src/Http/Resources/ProductVariant.php
@@ -0,0 +1,40 @@
+ $this->when(Http::isInternalRequest(), $this->public_id, $this->public_id),
+ 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
+ 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
+ 'company_uuid' => $this->company_uuid,
+ 'created_by_uuid' => $this->created_by_uuid,
+ 'product_uuid' => $this->product_uuid,
+ 'product' => $this->whenLoaded('product', fn () => new Product($this->product)),
+ 'name' => $this->name,
+ 'display_name' => $this->display_name,
+ 'sku' => $this->sku,
+ 'barcode' => $this->barcode,
+ 'option_values' => $this->option_values,
+ 'currency' => $this->currency,
+ 'unit_cost' => $this->unit_cost,
+ 'unit_price' => $this->unit_price,
+ 'sale_price' => $this->sale_price,
+ 'declared_value' => $this->declared_value,
+ 'weight' => $this->weight,
+ 'weight_unit' => $this->weight_unit,
+ 'total_stock' => (int) $this->total_stock,
+ 'available_stock' => (int) $this->available_stock,
+ 'status' => $this->status,
+ 'meta' => $this->meta,
+ 'updated_at' => $this->updated_at,
+ 'created_at' => $this->created_at,
+ ];
+ }
+}
diff --git a/server/src/Http/Resources/PurchaseOrder.php b/server/src/Http/Resources/PurchaseOrder.php
index 1d35f47d..93fe3e4c 100644
--- a/server/src/Http/Resources/PurchaseOrder.php
+++ b/server/src/Http/Resources/PurchaseOrder.php
@@ -17,19 +17,30 @@ class PurchaseOrder extends FleetbaseResource
public function toArray($request)
{
return [
- 'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
- 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
- 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
- 'supplier_uuid' => $this->supplier_uuid,
- 'supplier' => $this->whenLoaded('supplier', $this->supplier),
- 'status' => $this->status,
- 'comments' => $this->comments,
- 'description' => $this->description,
- 'reference_code' => $this->reference_code,
- 'reference_url' => $this->reference_url,
- 'customer_reference_code' => $this->customer_reference_code,
- 'order_date_at' => $this->orde_date_at,
- 'expected_delivery_at' => $this->expected_delivery_at,
+ 'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
+ 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
+ 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
+ 'order_number' => $this->public_id,
+ 'supplier_uuid' => $this->supplier_uuid,
+ 'supplier' => $this->whenLoaded('supplier', $this->supplier),
+ 'assigned_to_uuid' => $this->assigned_to_uuid,
+ 'assigned_to' => $this->whenLoaded('assignedTo', $this->assignedTo),
+ 'point_of_contact_uuid' => $this->point_of_contact_uuid,
+ 'point_of_contact' => $this->whenLoaded('pointOfContact', $this->pointOfContact),
+ 'status' => $this->status,
+ 'comments' => $this->comments,
+ 'description' => $this->description,
+ 'reference_code' => $this->reference_code,
+ 'reference_url' => $this->reference_url,
+ 'customer_reference_code' => $this->customer_reference_code,
+ 'currency' => $this->currency,
+ 'meta' => $this->meta ?? [],
+ 'order_date_at' => $this->order_created_at,
+ 'expected_delivery_at' => $this->expected_delivery_at,
+ // Line items — always included so the frontend can render the items tab
+ 'items' => PurchaseOrderItem::collection($this->whenLoaded('items', $this->items ?? [])),
+ 'item_count' => $this->item_count,
+ 'total_value' => $this->total_value,
'updated_at' => $this->updated_at,
'created_at' => $this->created_at,
];
diff --git a/server/src/Http/Resources/PurchaseOrderItem.php b/server/src/Http/Resources/PurchaseOrderItem.php
new file mode 100644
index 00000000..a7eb0007
--- /dev/null
+++ b/server/src/Http/Resources/PurchaseOrderItem.php
@@ -0,0 +1,48 @@
+ $this->public_id,
+ 'uuid' => $this->uuid,
+ 'purchase_order_uuid' => $this->purchase_order_uuid,
+ 'product_uuid' => $this->product_uuid,
+ 'variant_uuid' => $this->variant_uuid,
+ 'warehouse_uuid' => $this->warehouse_uuid,
+ 'product' => $this->whenLoaded('product', fn () => new Product($this->product)),
+ 'variant' => $this->whenLoaded('variant', fn () => new ProductVariant($this->variant)),
+ 'warehouse' => $this->whenLoaded('warehouse', fn () => new Warehouse($this->warehouse)),
+ 'quantity' => $this->quantity,
+ 'quantity_received' => $this->quantity_received,
+ 'outstanding_quantity' => $this->outstanding_quantity,
+ 'currency' => $this->currency,
+ 'unit_price' => $this->unit_price,
+ 'unit_cost' => $this->unit_cost,
+ 'total_price' => $this->total_price,
+ 'unit_of_measure' => $this->unit_of_measure,
+ 'sku' => $this->sku,
+ 'lot_number' => $this->lot_number,
+ 'serial_number' => $this->serial_number,
+ 'expiry_date' => $this->expiry_date,
+ 'status' => $this->status,
+ 'notes' => $this->notes,
+ 'meta' => $this->meta,
+ 'received_at' => $this->received_at,
+ 'created_at' => $this->created_at,
+ 'updated_at' => $this->updated_at,
+ ];
+ }
+}
diff --git a/server/src/Http/Resources/SalesOrder.php b/server/src/Http/Resources/SalesOrder.php
index d3725878..1659decf 100644
--- a/server/src/Http/Resources/SalesOrder.php
+++ b/server/src/Http/Resources/SalesOrder.php
@@ -17,19 +17,30 @@ class SalesOrder extends FleetbaseResource
public function toArray($request)
{
return [
- 'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
- 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
- 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
- 'supplier_uuid' => $this->supplier_uuid,
- 'supplier' => $this->whenLoaded('supplier', $this->supplier),
- 'status' => $this->status,
- 'comments' => $this->comments,
- 'description' => $this->description,
- 'reference_code' => $this->reference_code,
- 'reference_url' => $this->reference_url,
- 'customer_reference_code' => $this->customer_reference_code,
- 'order_date_at' => $this->orde_date_at,
- 'expected_delivery_at' => $this->expected_delivery_at,
+ 'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
+ 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
+ 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
+ 'order_number' => $this->public_id,
+ 'supplier_uuid' => $this->supplier_uuid,
+ 'supplier' => $this->whenLoaded('supplier', $this->supplier),
+ 'assigned_to_uuid' => $this->assigned_to_uuid,
+ 'assigned_to' => $this->whenLoaded('assignedTo', $this->assignedTo),
+ 'point_of_contact_uuid' => $this->point_of_contact_uuid,
+ 'point_of_contact' => $this->whenLoaded('pointOfContact', $this->pointOfContact),
+ 'status' => $this->status,
+ 'comments' => $this->comments,
+ 'description' => $this->description,
+ 'reference_code' => $this->reference_code,
+ 'reference_url' => $this->reference_url,
+ 'customer_reference_code' => $this->customer_reference_code,
+ 'currency' => $this->currency,
+ 'meta' => $this->meta ?? [],
+ 'order_date_at' => $this->order_date_at,
+ 'expected_delivery_at' => $this->expected_delivery_at,
+ // Line items — always included so the frontend can render the items tab
+ 'items' => SalesOrderItem::collection($this->whenLoaded('items', $this->items ?? [])),
+ 'item_count' => $this->item_count,
+ 'total_value' => $this->total_value,
'updated_at' => $this->updated_at,
'created_at' => $this->created_at,
];
diff --git a/server/src/Http/Resources/SalesOrderItem.php b/server/src/Http/Resources/SalesOrderItem.php
new file mode 100644
index 00000000..d7a1c14b
--- /dev/null
+++ b/server/src/Http/Resources/SalesOrderItem.php
@@ -0,0 +1,48 @@
+ $this->public_id,
+ 'uuid' => $this->uuid,
+ 'sales_order_uuid' => $this->sales_order_uuid,
+ 'product_uuid' => $this->product_uuid,
+ 'variant_uuid' => $this->variant_uuid,
+ 'warehouse_uuid' => $this->warehouse_uuid,
+ 'inventory_uuid' => $this->inventory_uuid,
+ 'product' => $this->whenLoaded('product', fn () => new Product($this->product)),
+ 'variant' => $this->whenLoaded('variant', fn () => new ProductVariant($this->variant)),
+ 'warehouse' => $this->whenLoaded('warehouse', fn () => new Warehouse($this->warehouse)),
+ 'inventory' => $this->whenLoaded('inventory', fn () => new Inventory($this->inventory)),
+ 'quantity' => $this->quantity,
+ 'quantity_fulfilled' => $this->quantity_fulfilled,
+ 'outstanding_quantity' => $this->outstanding_quantity,
+ 'currency' => $this->currency,
+ 'unit_price' => $this->unit_price,
+ 'total_price' => $this->total_price,
+ 'unit_of_measure' => $this->unit_of_measure,
+ 'sku' => $this->sku,
+ 'lot_number' => $this->lot_number,
+ 'serial_number' => $this->serial_number,
+ 'status' => $this->status,
+ 'notes' => $this->notes,
+ 'meta' => $this->meta,
+ 'fulfilled_at' => $this->fulfilled_at,
+ 'created_at' => $this->created_at,
+ 'updated_at' => $this->updated_at,
+ ];
+ }
+}
diff --git a/server/src/Http/Resources/StockAdjustment.php b/server/src/Http/Resources/StockAdjustment.php
index c8edc8ec..781b8aad 100644
--- a/server/src/Http/Resources/StockAdjustment.php
+++ b/server/src/Http/Resources/StockAdjustment.php
@@ -17,11 +17,18 @@ class StockAdjustment extends FleetbaseResource
public function toArray($request)
{
return [
- 'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
+ 'id' => $this->when(Http::isInternalRequest(), $this->incrementing_id, $this->public_id),
'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
'product_uuid' => $this->product_uuid,
- 'product' => $this->whenLoaded('product', $this->product),
+ 'variant_uuid' => $this->variant_uuid,
+ 'product' => $this->whenLoaded('product', fn () => new Product($this->product)),
+ 'variant' => $this->whenLoaded('variant', fn () => new ProductVariant($this->variant)),
+ 'assignee_uuid' => $this->assignee_uuid,
+ 'reason' => $this->reason,
+ 'type' => $this->type,
+ 'approval_required' => $this->approval_required,
+ 'comments' => $this->comments,
'quantity' => (int) $this->quantity,
'before_quantity' => (int) $this->before_quantity,
'after_quantity' => (int) $this->after_quantity,
diff --git a/server/src/Http/Resources/Warehouse.php b/server/src/Http/Resources/Warehouse.php
index 821a249a..cfe401ec 100644
--- a/server/src/Http/Resources/Warehouse.php
+++ b/server/src/Http/Resources/Warehouse.php
@@ -4,8 +4,6 @@
use Fleetbase\Http\Resources\FleetbaseResource;
use Fleetbase\Support\Http;
-use Fleetbase\Support\Resolve;
-use Fleetbase\LaravelMysqlSpatial\Types\Point;
class Warehouse extends FleetbaseResource
{
@@ -18,34 +16,62 @@ class Warehouse extends FleetbaseResource
*/
public function toArray($request)
{
+ // Resolve the linked Place for address/location fields
+ $place = $this->place;
+
return [
- 'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
- 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
- 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
- 'name' => $this->name,
- 'location' => data_get($this, 'location', new Point(0, 0)),
- 'address' => $this->address,
- 'address_html' => $this->when(Http::isInternalRequest(), $this->address_html),
- 'street1' => data_get($this, 'street1'),
- 'street2' => data_get($this, 'street2'),
- 'city' => data_get($this, 'city'),
- 'province' => data_get($this, 'province'),
- 'postal_code' => data_get($this, 'postal_code'),
- 'neighborhood' => data_get($this, 'neighborhood'),
- 'district' => data_get($this, 'district'),
- 'building' => data_get($this, 'building'),
- 'security_access_code' => data_get($this, 'security_access_code'),
- 'country' => data_get($this, 'country'),
- 'country_name' => $this->when(Http::isInternalRequest(), $this->country_name),
- 'phone' => data_get($this, 'phone'),
- 'owner' => $this->when(!Http::isInternalRequest(), Resolve::resourceForMorph($this->owner_type, $this->owner_uuid)),
- 'tracking_number' => $this->whenLoaded('trackingNumber', $this->trackingNumber),
- 'type' => data_get($this, 'type'),
- 'meta' => data_get($this, 'meta', []),
- 'sections' => $this->whenLoaded('sections', $this->sections, []),
- 'docks' => $this->whenLoaded('docks', $this->docks, []),
- 'updated_at' => $this->updated_at,
- 'created_at' => $this->created_at,
+ // Identity
+ 'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
+ 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
+ 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
+
+ // Warehouse-specific fields
+ 'name' => $this->name,
+ 'code' => $this->code,
+ 'type' => $this->type,
+ 'status' => $this->status,
+ 'capacity' => $this->capacity,
+ 'current_utilization' => $this->current_utilization,
+ 'utilization_percentage' => $this->utilization_percentage,
+ 'floor_area_sqm' => $this->floor_area_sqm,
+ 'operating_hours' => $this->operating_hours ?? [],
+ 'timezone' => $this->timezone,
+ 'phone' => $this->phone,
+ 'email' => $this->email,
+ 'total_docks' => $this->total_docks,
+ 'is_active' => $this->is_active,
+ 'is_default' => $this->is_default,
+ 'meta' => $this->meta ?? [],
+
+ // Place / address fields (proxied from the linked Place)
+ 'place_uuid' => $this->when(Http::isInternalRequest(), $this->place_uuid),
+ 'place' => $this->whenLoaded('place', $place),
+ 'address' => $this->address,
+ 'address_html' => $this->when(Http::isInternalRequest(), $place?->address_html),
+ 'location' => $place?->location,
+ 'street1' => $place?->street1,
+ 'street2' => $place?->street2,
+ 'city' => $place?->city,
+ 'province' => $place?->province,
+ 'postal_code' => $place?->postal_code,
+ 'neighborhood' => $place?->neighborhood,
+ 'district' => $place?->district,
+ 'building' => $place?->building,
+ 'country' => $place?->country,
+ 'country_name' => $this->when(Http::isInternalRequest(), $place?->country_name),
+ 'latitude' => $place?->latitude ?? null,
+ 'longitude' => $place?->longitude ?? null,
+
+ // Sub-resources
+ 'sections' => $this->whenLoaded('sections', $this->sections, []),
+ 'zones' => $this->whenLoaded('zones', $this->zones, []),
+ 'docks' => $this->whenLoaded('docks', $this->docks, []),
+ 'total_zones' => $this->total_zones,
+ 'total_bins' => $this->total_bins,
+
+ // Timestamps
+ 'updated_at' => $this->updated_at,
+ 'created_at' => $this->created_at,
];
}
@@ -56,29 +82,31 @@ public function toArray($request)
*/
public function toWebhookPayload()
{
+ $place = $this->place;
+
return [
- 'id' => $this->public_id,
- 'internal_id' => $this->internal_id,
- 'name' => $this->name,
- 'latitude' => $this->latitude ?? null,
- 'longitude' => $this->longitude ?? null,
- 'street1' => $this->street1 ?? null,
- 'street2' => $this->street2 ?? null,
- 'city' => $this->city ?? null,
- 'province' => $this->province ?? null,
- 'postal_code' => $this->postal_code ?? null,
- 'neighborhood' => $this->neighborhood ?? null,
- 'district' => $this->district ?? null,
- 'building' => $this->building ?? null,
- 'security_access_code' => $this->security_access_code ?? null,
- 'country' => $this->country ?? null,
- 'phone' => $this->phone ?? null,
- 'owner' => Resolve::resourceForMorph($this->owner_type, $this->owner_uuid),
- 'type' => $this->type ?? null,
- 'meta' => $this->meta ?? [],
- 'sections' => $this->sections ?? [],
- 'updated_at' => $this->updated_at,
- 'created_at' => $this->created_at,
+ 'id' => $this->public_id,
+ 'name' => $this->name,
+ 'code' => $this->code,
+ 'type' => $this->type,
+ 'status' => $this->status,
+ 'capacity' => $this->capacity,
+ 'current_utilization' => $this->current_utilization,
+ 'is_active' => $this->is_active,
+ 'latitude' => $place?->latitude ?? null,
+ 'longitude' => $place?->longitude ?? null,
+ 'street1' => $place?->street1 ?? null,
+ 'street2' => $place?->street2 ?? null,
+ 'city' => $place?->city ?? null,
+ 'province' => $place?->province ?? null,
+ 'postal_code' => $place?->postal_code ?? null,
+ 'country' => $place?->country ?? null,
+ 'phone' => $this->phone ?? null,
+ 'email' => $this->email ?? null,
+ 'meta' => $this->meta ?? [],
+ 'sections' => $this->sections ?? [],
+ 'updated_at' => $this->updated_at,
+ 'created_at' => $this->created_at,
];
}
}
diff --git a/server/src/Http/Resources/WarehouseAisle.php b/server/src/Http/Resources/WarehouseAisle.php
index 471e8ee3..839bcf82 100644
--- a/server/src/Http/Resources/WarehouseAisle.php
+++ b/server/src/Http/Resources/WarehouseAisle.php
@@ -3,7 +3,7 @@
namespace Fleetbase\Pallet\Http\Resources;
use Fleetbase\Http\Resources\FleetbaseResource;
-use Fleetbase\Pallet\Models\WarehouseRack;
+use Fleetbase\Pallet\Http\Resources\WarehouseRack as WarehouseRackResource;
use Fleetbase\Support\Http;
class WarehouseAisle extends FleetbaseResource
@@ -22,7 +22,7 @@ public function toArray($request)
'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
'aisle_number' => $this->aisle_number,
- 'racks' => WarehouseRack::collection($this->racks),
+ 'racks' => WarehouseRackResource::collection($this->racks),
'updated_at' => $this->updated_at,
'created_at' => $this->created_at,
];
diff --git a/server/src/Http/Resources/WarehouesDock.php b/server/src/Http/Resources/WarehouseDock.php
similarity index 100%
rename from server/src/Http/Resources/WarehouesDock.php
rename to server/src/Http/Resources/WarehouseDock.php
diff --git a/server/src/Http/Resources/WarehouseRack.php b/server/src/Http/Resources/WarehouseRack.php
index 7bd5ded2..cd0ba3dd 100644
--- a/server/src/Http/Resources/WarehouseRack.php
+++ b/server/src/Http/Resources/WarehouseRack.php
@@ -3,7 +3,7 @@
namespace Fleetbase\Pallet\Http\Resources;
use Fleetbase\Http\Resources\FleetbaseResource;
-use Fleetbase\Pallet\Models\WarehouseBin;
+use Fleetbase\Pallet\Http\Resources\WarehouseBin as WarehouseBinResource;
use Fleetbase\Support\Http;
class WarehouseRack extends FleetbaseResource
@@ -21,7 +21,7 @@ public function toArray($request)
'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
- 'bins' => WarehouseBin::collection($this->bins),
+ 'bins' => WarehouseBinResource::collection($this->bins),
'capacity' => $this->capacity,
'rack_number' => $this->rack_number,
'updated_at' => $this->updated_at,
diff --git a/server/src/Imports/ProductsImport.php b/server/src/Imports/ProductsImport.php
index 07152746..1c65800d 100644
--- a/server/src/Imports/ProductsImport.php
+++ b/server/src/Imports/ProductsImport.php
@@ -9,7 +9,7 @@
class ProductsImport implements ToCollection, WithHeadingRow
{
/**
- * @return \Illuminate\Support\Collection
+ * @return Collection
*/
public function collection(Collection $rows)
{
diff --git a/server/src/Models/Audit.php b/server/src/Models/Audit.php
index e3667bae..fe58adb4 100644
--- a/server/src/Models/Audit.php
+++ b/server/src/Models/Audit.php
@@ -2,15 +2,65 @@
namespace Fleetbase\Pallet\Models;
+use Fleetbase\Casts\Json;
use Fleetbase\Models\Model;
+use Fleetbase\Models\User;
use Fleetbase\Traits\HasApiModelBehavior;
+use Fleetbase\Traits\HasPublicId;
use Fleetbase\Traits\HasUuid;
+use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Illuminate\Database\Eloquent\Relations\MorphTo;
+use Illuminate\Database\Eloquent\SoftDeletes;
+/**
+ * Audit — Immutable WMS Operational Audit Trail Record.
+ *
+ * This model represents a single entry in the Pallet operational audit trail.
+ * It is distinct from the Spatie activity_log, which records low-level model
+ * attribute changes automatically. The Audit model records high-level,
+ * intentional warehouse business events such as:
+ *
+ * - Stock adjustments (with reason codes)
+ * - Cycle count completions and approvals
+ * - Purchase order receipts
+ * - Sales order fulfilments
+ * - Stock transfers (initiated and completed)
+ * - Manual operational notes
+ *
+ * Audit records are NEVER created, updated, or deleted by users directly via
+ * the API. They are written programmatically by the system via the AuditService
+ * or the HasOperationalAuditTrail trait when a significant operational event occurs.
+ *
+ * The API exposes only read-only endpoints (index, show) for this resource.
+ *
+ * @property string $uuid
+ * @property string $public_id
+ * @property string $company_uuid
+ * @property string $created_by_uuid
+ * @property string $performed_by_uuid
+ * @property string $auditable_uuid
+ * @property string $auditable_type
+ * @property string $event_type
+ * @property string $action
+ * @property string $type
+ * @property string $reason
+ * @property string $comments
+ * @property array $old_values
+ * @property array $new_values
+ * @property array $meta
+ * @property \Carbon\Carbon $scheduled_at
+ * @property \Carbon\Carbon $completed_at
+ * @property \Carbon\Carbon $created_at
+ * @property \Carbon\Carbon $updated_at
+ * @property \Carbon\Carbon $deleted_at
+ */
class Audit extends Model
{
use HasUuid;
+ use HasPublicId;
use HasApiModelBehavior;
+ use SoftDeletes;
/**
* The database table used by the model.
@@ -20,14 +70,14 @@ class Audit extends Model
protected $table = 'pallet_audits';
/**
- * The primary key for the model.
+ * The type of public Id to generate.
*
* @var string
*/
- protected $primaryKey = 'uuid';
+ protected $publicIdType = 'audit';
/**
- * The singularName overwrite.
+ * The singular name used for payload keys.
*
* @var string
*/
@@ -38,21 +88,42 @@ class Audit extends Model
*
* @var array
*/
- protected $searchableColumns = ['uuid', 'user_uuid', 'action', 'auditable_type', 'auditable_uuid', 'created_at'];
+ protected $searchableColumns = [
+ 'action',
+ 'event_type',
+ 'type',
+ 'reason',
+ 'comments',
+ 'auditable_type',
+ 'auditable_uuid',
+ ];
/**
* The attributes that are mass assignable.
*
+ * Note: this model is written to programmatically via AuditService.
+ * Direct user creation via the API is not permitted.
+ *
* @var array
*/
protected $fillable = [
'uuid',
- 'user_uuid',
- 'action',
- 'auditable_type',
+ 'public_id',
+ 'company_uuid',
+ 'created_by_uuid',
+ 'performed_by_uuid',
'auditable_uuid',
+ 'auditable_type',
+ 'event_type',
+ 'action',
+ 'type',
+ 'reason',
+ 'comments',
'old_values',
'new_values',
+ 'meta',
+ 'scheduled_at',
+ 'completed_at',
'created_at',
'updated_at',
];
@@ -62,21 +133,27 @@ class Audit extends Model
*
* @var array
*/
- protected $casts = [];
+ protected $casts = [
+ 'meta' => Json::class,
+ 'old_values' => Json::class,
+ 'new_values' => Json::class,
+ 'scheduled_at' => 'datetime',
+ 'completed_at' => 'datetime',
+ ];
/**
* The relationships to be eager loaded.
*
* @var array
*/
- protected $with = ['user'];
+ protected $with = ['performedBy'];
/**
* Dynamic attributes that are appended to object.
*
* @var array
*/
- protected $appends = [];
+ protected $appends = ['subject_label'];
/**
* The attributes excluded from the model's JSON form.
@@ -86,12 +163,131 @@ class Audit extends Model
protected $hidden = [];
/**
- * Get the user that performed the audit.
+ * The dates that should be mutated to Carbon instances.
*
- * @return BelongsTo
+ * @var array
+ */
+ protected $dates = [
+ 'scheduled_at',
+ 'completed_at',
+ 'created_at',
+ 'updated_at',
+ 'deleted_at',
+ ];
+
+ // -------------------------------------------------------------------------
+ // Relationships
+ // -------------------------------------------------------------------------
+
+ /**
+ * Get the user who performed the audited action.
+ */
+ public function performedBy(): BelongsTo
+ {
+ return $this->belongsTo(User::class, 'performed_by_uuid');
+ }
+
+ /**
+ * Get the user who created the audit record (system user or API caller).
+ */
+ public function createdBy(): BelongsTo
+ {
+ return $this->belongsTo(User::class, 'created_by_uuid');
+ }
+
+ /**
+ * Get the polymorphic subject model that this audit event relates to.
+ */
+ public function auditable(): MorphTo
+ {
+ return $this->morphTo(__FUNCTION__, 'auditable_type', 'auditable_uuid');
+ }
+
+ // -------------------------------------------------------------------------
+ // Accessors
+ // -------------------------------------------------------------------------
+
+ /**
+ * Get a human-readable label for the auditable subject type.
+ * Extracts the short class name from the fully-qualified auditable_type.
+ */
+ public function getSubjectLabelAttribute(): ?string
+ {
+ if (!$this->auditable_type) {
+ return null;
+ }
+
+ $parts = explode('\\', $this->auditable_type);
+
+ return end($parts);
+ }
+
+ // -------------------------------------------------------------------------
+ // Scopes
+ // -------------------------------------------------------------------------
+
+ /**
+ * Scope to filter by event type.
+ */
+ public function scopeOfEventType(Builder $query, string $eventType): Builder
+ {
+ return $query->where('event_type', $eventType);
+ }
+
+ /**
+ * Scope to filter by the auditable subject model.
+ */
+ public function scopeForSubject(Builder $query, string $uuid, string $type): Builder
+ {
+ return $query->where('auditable_uuid', $uuid)
+ ->where('auditable_type', $type);
+ }
+
+ /**
+ * Scope to filter by the user who performed the action.
+ */
+ public function scopePerformedByUser(Builder $query, string $userUuid): Builder
+ {
+ return $query->where('performed_by_uuid', $userUuid);
+ }
+
+ /**
+ * Scope to filter stock adjustment events.
+ */
+ public function scopeStockAdjustments(Builder $query): Builder
+ {
+ return $query->where('event_type', AuditEventType::STOCK_ADJUSTMENT);
+ }
+
+ /**
+ * Scope to filter cycle count events.
+ */
+ public function scopeCycleCounts(Builder $query): Builder
+ {
+ return $query->where('event_type', AuditEventType::CYCLE_COUNT);
+ }
+
+ /**
+ * Scope to filter purchase order received events.
+ */
+ public function scopePurchaseOrders(Builder $query): Builder
+ {
+ return $query->where('event_type', AuditEventType::PO_RECEIVED);
+ }
+
+ /**
+ * Scope to filter sales order fulfilled events.
+ */
+ public function scopeSalesOrders(Builder $query): Builder
+ {
+ return $query->where('event_type', AuditEventType::SO_FULFILLED);
+ }
+
+ /**
+ * Scope to filter stock transfer events.
*/
- public function user()
+ public function scopeStockTransfers(Builder $query): Builder
{
- return $this->belongsTo(\App\Models\User::class, 'user_uuid');
+ return $query->where('event_type', AuditEventType::STOCK_TRANSFER);
}
}
diff --git a/server/src/Models/AuditEventType.php b/server/src/Models/AuditEventType.php
new file mode 100644
index 00000000..e8809e0d
--- /dev/null
+++ b/server/src/Models/AuditEventType.php
@@ -0,0 +1,115 @@
+
+ */
+ public static function all(): array
+ {
+ return [
+ 'stock_adjustment' => self::STOCK_ADJUSTMENT,
+ 'cycle_count' => self::CYCLE_COUNT,
+ 'po_received' => self::PO_RECEIVED,
+ 'so_fulfilled' => self::SO_FULFILLED,
+ 'stock_transfer' => self::STOCK_TRANSFER,
+ 'inventory_created' => self::INVENTORY_CREATED,
+ 'inventory_updated' => self::INVENTORY_UPDATED,
+ 'batch_created' => self::BATCH_CREATED,
+ 'batch_expired' => self::BATCH_EXPIRED,
+ 'manual' => self::MANUAL,
+ ];
+ }
+
+ /**
+ * Returns all event type values as a flat array.
+ *
+ * @return array
+ */
+ public static function values(): array
+ {
+ return array_values(self::all());
+ }
+}
diff --git a/server/src/Models/Batch.php b/server/src/Models/Batch.php
index f432ffb0..73d38f03 100644
--- a/server/src/Models/Batch.php
+++ b/server/src/Models/Batch.php
@@ -7,12 +7,15 @@
use Fleetbase\Traits\HasApiModelBehavior;
use Fleetbase\Traits\HasPublicId;
use Fleetbase\Traits\HasUuid;
+use Spatie\Activitylog\LogOptions;
+use Spatie\Activitylog\Traits\LogsActivity;
class Batch extends Model
{
use HasUuid;
use HasPublicId;
use HasApiModelBehavior;
+ use LogsActivity;
/**
* The database table used by the model.
@@ -52,6 +55,7 @@ class Batch extends Model
'uuid',
'batch_number',
'product_uuid',
+ 'variant_uuid',
'manufacture_date_at',
'expiry_date_at',
'quantity',
@@ -88,10 +92,8 @@ class Batch extends Model
protected $with = [];
- /**
- * @return null|int
- */
- public function getIncrementingIdAttribute(): ?int {
+ public function getIncrementingIdAttribute(): ?int
+ {
return static::select('id')->where('uuid', $this->uuid)->value('id');
}
@@ -122,7 +124,12 @@ public function createdBy()
*/
public function product()
{
- return $this->belongsTo(Product::class);
+ return $this->belongsTo(Product::class, 'product_uuid', 'uuid');
+ }
+
+ public function variant()
+ {
+ return $this->belongsTo(ProductVariant::class, 'variant_uuid', 'uuid');
}
protected static function boot()
@@ -130,8 +137,27 @@ protected static function boot()
parent::boot();
static::creating(function ($model) {
- $model->created_at = now();
+ $model->created_at = now();
$model->manufacture_date_at = now();
});
}
+
+ /**
+ * Configure Spatie activity log options.
+ * Logs only the specified attributes when they change (dirty only).
+ */
+ public function getActivitylogOptions(): LogOptions
+ {
+ return LogOptions::defaults()
+ ->logOnly([
+ 'batch_number',
+ 'quantity',
+ 'status',
+ 'expiry_date_at',
+ 'product_uuid',
+ 'variant_uuid',
+ ])
+ ->logOnlyDirty()
+ ->dontSubmitEmptyLogs();
+ }
}
diff --git a/server/src/Models/BinLocation.php b/server/src/Models/BinLocation.php
new file mode 100644
index 00000000..1ca7645e
--- /dev/null
+++ b/server/src/Models/BinLocation.php
@@ -0,0 +1,243 @@
+ Json::class,
+ 'dimensions' => Json::class,
+ 'capacity' => 'decimal:2',
+ 'current_volume' => 'decimal:2',
+ 'priority' => 'integer',
+ 'is_pickable' => 'boolean',
+ 'is_replenishable' => 'boolean',
+ ];
+
+ /**
+ * Dynamic attributes that are appended to object.
+ *
+ * @var array
+ */
+ protected $appends = ['utilization_percentage', 'available_capacity'];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['warehouse', 'zone'];
+
+ /**
+ * Searchable columns.
+ *
+ * @var array
+ */
+ protected $searchableColumns = ['bin_number', 'barcode', 'type', 'status'];
+
+ /**
+ * Get the warehouse.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function warehouse()
+ {
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get the zone.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function zone()
+ {
+ return $this->belongsTo(WarehouseZone::class, 'zone_uuid');
+ }
+
+ /**
+ * Get the aisle.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function aisle()
+ {
+ return $this->belongsTo(WarehouseAisle::class, 'aisle_uuid');
+ }
+
+ /**
+ * Get the rack.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function rack()
+ {
+ return $this->belongsTo(WarehouseRack::class, 'rack_uuid');
+ }
+
+ /**
+ * Get the section.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function section()
+ {
+ return $this->belongsTo(WarehouseSection::class, 'section_uuid');
+ }
+
+ /**
+ * Get inventory items in this bin.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function inventoryItems()
+ {
+ return $this->hasMany(Inventory::class, 'bin_location_uuid');
+ }
+
+ /**
+ * Get utilization percentage.
+ *
+ * @return float
+ */
+ public function getUtilizationPercentageAttribute()
+ {
+ if (!$this->capacity || $this->capacity == 0) {
+ return 0;
+ }
+
+ return round(($this->current_volume / $this->capacity) * 100, 2);
+ }
+
+ /**
+ * Get available capacity.
+ *
+ * @return float
+ */
+ public function getAvailableCapacityAttribute()
+ {
+ return max(0, $this->capacity - $this->current_volume);
+ }
+
+ /**
+ * Check if bin has available capacity.
+ *
+ * @param float $requiredVolume
+ *
+ * @return bool
+ */
+ public function hasCapacity($requiredVolume = 0)
+ {
+ return $this->available_capacity >= $requiredVolume;
+ }
+
+ /**
+ * Add volume to bin.
+ *
+ * @param float $volume
+ *
+ * @return bool
+ */
+ public function addVolume($volume)
+ {
+ $this->current_volume += $volume;
+
+ return $this->save();
+ }
+
+ /**
+ * Remove volume from bin.
+ *
+ * @param float $volume
+ *
+ * @return bool
+ */
+ public function removeVolume($volume)
+ {
+ $this->current_volume = max(0, $this->current_volume - $volume);
+
+ return $this->save();
+ }
+
+ /**
+ * Boot the model.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ if (!$model->status) {
+ $model->status = 'active';
+ }
+ if (!$model->type) {
+ $model->type = 'standard'; // standard, bulk, pallet, shelf
+ }
+ if (!$model->current_volume) {
+ $model->current_volume = 0;
+ }
+ if (!isset($model->is_pickable)) {
+ $model->is_pickable = true;
+ }
+ if (!isset($model->is_replenishable)) {
+ $model->is_replenishable = true;
+ }
+ });
+ }
+}
diff --git a/server/src/Models/CycleCount.php b/server/src/Models/CycleCount.php
new file mode 100644
index 00000000..9e49e117
--- /dev/null
+++ b/server/src/Models/CycleCount.php
@@ -0,0 +1,271 @@
+ Json::class,
+ 'scheduled_at' => 'datetime',
+ 'started_at' => 'datetime',
+ 'completed_at' => 'datetime',
+ ];
+
+ /**
+ * Dynamic attributes that are appended to object.
+ *
+ * @var array
+ */
+ protected $appends = ['total_items', 'counted_items', 'discrepancies_count', 'accuracy_percentage'];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['warehouse', 'zone', 'assignedTo', 'items'];
+
+ /**
+ * Searchable columns.
+ *
+ * @var array
+ */
+ protected $searchableColumns = ['count_number', 'status', 'type', 'notes'];
+
+ /**
+ * Get the warehouse.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function warehouse()
+ {
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get the zone.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function zone()
+ {
+ return $this->belongsTo(WarehouseZone::class, 'zone_uuid');
+ }
+
+ /**
+ * Get the assigned user.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function assignedTo()
+ {
+ return $this->belongsTo(\Fleetbase\Models\User::class, 'assigned_to_uuid');
+ }
+
+ /**
+ * Get the cycle count items.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function items()
+ {
+ return $this->hasMany(CycleCountItem::class, 'cycle_count_uuid');
+ }
+
+ /**
+ * Get total items count.
+ *
+ * @return int
+ */
+ public function getTotalItemsAttribute()
+ {
+ return $this->items()->count();
+ }
+
+ /**
+ * Get counted items count.
+ *
+ * @return int
+ */
+ public function getCountedItemsAttribute()
+ {
+ return $this->items()->where('status', 'counted')->count();
+ }
+
+ /**
+ * Get discrepancies count.
+ *
+ * @return int
+ */
+ public function getDiscrepanciesCountAttribute()
+ {
+ return $this->items()->whereRaw('expected_quantity != counted_quantity')->count();
+ }
+
+ /**
+ * Get accuracy percentage.
+ *
+ * @return float
+ */
+ public function getAccuracyPercentageAttribute()
+ {
+ if ($this->total_items === 0) {
+ return 100;
+ }
+
+ $accurate = $this->total_items - $this->discrepancies_count;
+
+ return round(($accurate / $this->total_items) * 100, 2);
+ }
+
+ /**
+ * Start counting.
+ *
+ * @return bool
+ */
+ public function start()
+ {
+ $this->status = 'in_progress';
+ $this->started_at = now();
+
+ return $this->save();
+ }
+
+ /**
+ * Complete counting.
+ *
+ * @return bool
+ */
+ public function complete()
+ {
+ $this->status = 'completed';
+ $this->completed_at = now();
+ $result = $this->save();
+
+ // Log operational audit event
+ $this->logAuditEvent(
+ AuditEventType::CYCLE_COUNT,
+ 'Cycle Count Completed',
+ 'completed',
+ null,
+ [
+ 'count_number' => $this->count_number,
+ 'warehouse_uuid' => $this->warehouse_uuid,
+ 'total_items' => $this->total_items,
+ 'discrepancies_count' => $this->discrepancies_count,
+ 'accuracy_percentage' => $this->accuracy_percentage,
+ ]
+ );
+
+ return $result;
+ }
+
+ /**
+ * Approve count and apply adjustments.
+ *
+ * @return bool
+ */
+ public function approve()
+ {
+ // Apply inventory adjustments for discrepancies
+ foreach ($this->items as $item) {
+ if ($item->expected_quantity != $item->counted_quantity) {
+ $item->applyAdjustment();
+ }
+ }
+
+ $this->status = 'approved';
+ $result = $this->save();
+
+ // Log operational audit event
+ $this->logAuditEvent(
+ AuditEventType::CYCLE_COUNT,
+ 'Cycle Count Approved',
+ 'approved',
+ null,
+ [
+ 'count_number' => $this->count_number,
+ 'warehouse_uuid' => $this->warehouse_uuid,
+ 'discrepancies_count' => $this->discrepancies_count,
+ 'accuracy_percentage' => $this->accuracy_percentage,
+ ]
+ );
+
+ return $result;
+ }
+
+ /**
+ * Boot the model.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ if (!$model->count_number) {
+ $model->count_number = 'CC-' . strtoupper(uniqid());
+ }
+ if (!$model->status) {
+ $model->status = 'pending';
+ }
+ if (!$model->type) {
+ $model->type = 'standard'; // standard, full, spot, abc
+ }
+ });
+ }
+}
diff --git a/server/src/Models/CycleCountItem.php b/server/src/Models/CycleCountItem.php
new file mode 100644
index 00000000..504fa651
--- /dev/null
+++ b/server/src/Models/CycleCountItem.php
@@ -0,0 +1,215 @@
+ Json::class,
+ 'expected_quantity' => 'integer',
+ 'counted_quantity' => 'integer',
+ 'variance' => 'integer',
+ 'counted_at' => 'datetime',
+ ];
+
+ /**
+ * Dynamic attributes that are appended to object.
+ *
+ * @var array
+ */
+ protected $appends = ['has_discrepancy'];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['product', 'variant', 'binLocation'];
+
+ /**
+ * Get the cycle count.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function cycleCount()
+ {
+ return $this->belongsTo(CycleCount::class, 'cycle_count_uuid');
+ }
+
+ /**
+ * Get the product.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function product()
+ {
+ return $this->belongsTo(Product::class, 'product_uuid', 'uuid');
+ }
+
+ public function variant()
+ {
+ return $this->belongsTo(ProductVariant::class, 'variant_uuid', 'uuid');
+ }
+
+ /**
+ * Get the inventory record.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function inventory()
+ {
+ return $this->belongsTo(Inventory::class, 'inventory_uuid');
+ }
+
+ /**
+ * Get the bin location.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function binLocation()
+ {
+ return $this->belongsTo(BinLocation::class, 'bin_location_uuid');
+ }
+
+ /**
+ * Get the user who counted this item.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function countedBy()
+ {
+ return $this->belongsTo(\Fleetbase\Models\User::class, 'counted_by_uuid');
+ }
+
+ /**
+ * Check if there's a discrepancy.
+ *
+ * @return bool
+ */
+ public function getHasDiscrepancyAttribute()
+ {
+ return $this->expected_quantity != $this->counted_quantity;
+ }
+
+ /**
+ * Record count.
+ *
+ * @param int $quantity
+ * @param string|null $userUuid
+ *
+ * @return bool
+ */
+ public function recordCount($quantity, $userUuid = null)
+ {
+ $this->counted_quantity = $quantity;
+ $this->variance = $quantity - $this->expected_quantity;
+ $this->status = 'counted';
+ $this->counted_at = now();
+ if ($userUuid) {
+ $this->counted_by_uuid = $userUuid;
+ }
+
+ return $this->save();
+ }
+
+ /**
+ * Apply inventory adjustment for discrepancy.
+ *
+ * @return StockAdjustment|null
+ */
+ public function applyAdjustment()
+ {
+ if (!$this->has_discrepancy) {
+ return null;
+ }
+
+ return StockAdjustment::create([
+ 'company_uuid' => $this->company_uuid,
+ 'product_uuid' => $this->product_uuid,
+ 'variant_uuid' => $this->variant_uuid,
+ 'inventory_uuid' => $this->inventory_uuid,
+ 'warehouse_uuid' => $this->inventory->warehouse_uuid ?? null,
+ 'quantity' => $this->variance,
+ 'type' => $this->variance > 0 ? 'increase' : 'decrease',
+ 'reason' => 'cycle_count',
+ 'reference_uuid' => $this->cycle_count_uuid,
+ 'notes' => "Cycle count adjustment: {$this->cycleCount->count_number}",
+ ]);
+ }
+
+ /**
+ * Boot the model.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ if (!$model->status) {
+ $model->status = 'pending';
+ }
+ if (!$model->counted_quantity) {
+ $model->counted_quantity = 0;
+ }
+ });
+
+ static::saving(function ($model) {
+ if ($model->isDirty(['expected_quantity', 'counted_quantity'])) {
+ $model->variance = $model->counted_quantity - $model->expected_quantity;
+ }
+ });
+ }
+}
diff --git a/server/src/Models/Inventory.php b/server/src/Models/Inventory.php
index 8f04a239..222210be 100644
--- a/server/src/Models/Inventory.php
+++ b/server/src/Models/Inventory.php
@@ -5,14 +5,17 @@
use Fleetbase\Casts\Json;
use Fleetbase\Models\Model;
use Fleetbase\Traits\HasApiModelBehavior;
+use Fleetbase\Traits\HasMetaAttributes;
use Fleetbase\Traits\HasPublicId;
use Fleetbase\Traits\HasUuid;
+use Spatie\Activitylog\LogOptions;
class Inventory extends Model
{
use HasUuid;
use HasPublicId;
use HasApiModelBehavior;
+ use HasMetaAttributes;
/**
* The database table used by the model.
@@ -40,7 +43,7 @@ class Inventory extends Model
*
* @var array
*/
- protected $searchableColumns = ['product.name', 'warehouse.address', 'comments'];
+ protected $searchableColumns = ['product.name', 'variant.name', 'variant.sku', 'warehouse.address', 'comments', 'lot_number', 'serial_number'];
/**
* The attributes that are mass assignable.
@@ -52,30 +55,51 @@ class Inventory extends Model
'supplier_uuid',
'company_uuid',
'created_by_uuid',
- 'manufactured_date_at',
- 'expiry_date_at',
- 'created_at',
- 'updated_at',
'product_uuid',
+ 'variant_uuid',
'warehouse_uuid',
'batch_uuid',
+ 'bin_location_uuid',
+ 'zone_uuid',
'quantity',
+ 'reserved_quantity',
+ 'available_quantity',
'min_quantity',
+ 'max_quantity',
+ 'reorder_point',
+ 'lot_number',
+ 'serial_number',
+ 'uom',
+ 'unit_cost',
+ 'manufactured_date_at',
+ 'expiry_date_at',
+ 'received_at',
+ 'last_counted_at',
'comments',
'status',
+ 'meta',
];
public $timestamps = true;
- protected $dates = ['expiry_date_at'];
-
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
- 'meta' => Json::class,
+ 'meta' => Json::class,
+ 'quantity' => 'integer',
+ 'reserved_quantity' => 'integer',
+ 'available_quantity' => 'integer',
+ 'min_quantity' => 'integer',
+ 'max_quantity' => 'integer',
+ 'reorder_point' => 'integer',
+ 'unit_cost' => 'decimal:2',
+ 'expiry_date_at' => 'datetime',
+ 'manufactured_date_at'=> 'datetime',
+ 'received_at' => 'datetime',
+ 'last_counted_at' => 'datetime',
];
/**
@@ -83,7 +107,15 @@ class Inventory extends Model
*
* @var array
*/
- protected $appends = ['incrementing_id'];
+ protected $appends = [
+ 'incrementing_id',
+ 'is_low_stock',
+ 'is_out_of_stock',
+ 'is_expired',
+ 'is_expiring_soon',
+ 'days_until_expiry',
+ 'total_value',
+ ];
/**
* The attributes excluded from the model's JSON form.
@@ -92,13 +124,21 @@ class Inventory extends Model
*/
protected $hidden = [];
- protected $with = ['product', 'batch', 'warehouse', 'supplier'];
+ protected $with = ['product', 'variant', 'batch', 'warehouse', 'supplier', 'binLocation'];
- protected $filterParams = ['comments', 'expiry_date_at', 'status', 'company', 'createdBy',];
+ protected $filterParams = [
+ 'comments',
+ 'expiry_date_at',
+ 'status',
+ 'company',
+ 'createdBy',
+ 'lot_number',
+ 'serial_number',
+ 'warehouse',
+ 'product',
+ 'variant',
+ ];
- /**
- * @return null|int
- */
public function getIncrementingIdAttribute(): ?int
{
return static::select('id')->where('uuid', $this->uuid)->value('id');
@@ -109,7 +149,12 @@ public function getIncrementingIdAttribute(): ?int
*/
public function product()
{
- return $this->belongsTo(Product::class);
+ return $this->belongsTo(Product::class, 'product_uuid', 'uuid');
+ }
+
+ public function variant()
+ {
+ return $this->belongsTo(ProductVariant::class, 'variant_uuid', 'uuid');
}
/**
@@ -125,7 +170,7 @@ public function supplier()
*/
public function warehouse()
{
- return $this->belongsTo(\Fleetbase\FleetOps\Models\Place::class);
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid');
}
/**
@@ -136,6 +181,178 @@ public function batch()
return $this->belongsTo(Batch::class);
}
+ /**
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function binLocation()
+ {
+ return $this->belongsTo(BinLocation::class, 'bin_location_uuid');
+ }
+
+ /**
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function zone()
+ {
+ return $this->belongsTo(WarehouseZone::class, 'zone_uuid');
+ }
+
+ /**
+ * Get inventory reservations.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function reservations()
+ {
+ return $this->hasMany(InventoryReservation::class, 'inventory_uuid');
+ }
+
+ /**
+ * Get stock transactions for this inventory.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function transactions()
+ {
+ return $this->hasMany(StockTransaction::class, 'inventory_uuid');
+ }
+
+ /**
+ * Check if stock is low.
+ *
+ * @return bool
+ */
+ public function getIsLowStockAttribute()
+ {
+ return $this->available_quantity <= $this->min_quantity;
+ }
+
+ /**
+ * Check if out of stock.
+ *
+ * @return bool
+ */
+ public function getIsOutOfStockAttribute()
+ {
+ return $this->available_quantity <= 0;
+ }
+
+ /**
+ * Check if expired.
+ *
+ * @return bool
+ */
+ public function getIsExpiredAttribute()
+ {
+ return $this->expiry_date_at && $this->expiry_date_at->isPast();
+ }
+
+ /**
+ * Check if expiring soon (within 30 days).
+ *
+ * @return bool
+ */
+ public function getIsExpiringSoonAttribute()
+ {
+ if (!$this->expiry_date_at) {
+ return false;
+ }
+
+ return $this->expiry_date_at->isFuture() && $this->expiry_date_at->diffInDays(now()) <= 30;
+ }
+
+ /**
+ * Get days until expiry.
+ *
+ * @return int|null
+ */
+ public function getDaysUntilExpiryAttribute()
+ {
+ if (!$this->expiry_date_at) {
+ return null;
+ }
+
+ if ($this->is_expired) {
+ return 0;
+ }
+
+ return $this->expiry_date_at->diffInDays(now());
+ }
+
+ /**
+ * Get total inventory value.
+ *
+ * @return float
+ */
+ public function getTotalValueAttribute()
+ {
+ return $this->quantity * ($this->unit_cost ?? $this->product->unit_cost ?? 0);
+ }
+
+ /**
+ * Reserve quantity.
+ *
+ * @param int $quantity
+ *
+ * @return bool
+ */
+ public function reserve($quantity)
+ {
+ if ($this->available_quantity < $quantity) {
+ return false;
+ }
+
+ $this->reserved_quantity += $quantity;
+ $this->available_quantity -= $quantity;
+
+ return $this->save();
+ }
+
+ /**
+ * Release reservation.
+ *
+ * @param int $quantity
+ *
+ * @return bool
+ */
+ public function releaseReservation($quantity)
+ {
+ $this->reserved_quantity = max(0, $this->reserved_quantity - $quantity);
+ $this->available_quantity = $this->quantity - $this->reserved_quantity;
+
+ return $this->save();
+ }
+
+ /**
+ * Deduct quantity (for picks/shipments).
+ *
+ * @param int $quantity
+ *
+ * @return bool
+ */
+ public function deduct($quantity)
+ {
+ $this->quantity -= $quantity;
+ $this->available_quantity = $this->quantity - $this->reserved_quantity;
+
+ return $this->save();
+ }
+
+ /**
+ * Add quantity (for receiving/adjustments).
+ *
+ * @param int $quantity
+ *
+ * @return bool
+ */
+ public function add($quantity)
+ {
+ $this->quantity += $quantity;
+ $this->available_quantity = $this->quantity - $this->reserved_quantity;
+
+ return $this->save();
+ }
+
/**
* Undocumented function.
*
@@ -148,6 +365,7 @@ public function scopeSummarizeByProduct($query)
return $query
->selectRaw('
pallet_inventories.product_uuid,
+ pallet_inventories.variant_uuid,
pallet_inventories.batch_uuid,
pallet_inventories.supplier_uuid,
pallet_inventories.warehouse_uuid,
@@ -159,11 +377,52 @@ public function scopeSummarizeByProduct($query)
(SELECT GROUP_CONCAT(DISTINCT pallet_batches.uuid) FROM pallet_batches WHERE pallet_batches.uuid = pallet_inventories.batch_uuid) as batch_uuids,
(SELECT GROUP_CONCAT(DISTINCT pallet_batches.batch_number) FROM pallet_batches WHERE pallet_batches.uuid = pallet_inventories.batch_uuid) as batch_numbers,
SUM(pallet_inventories.quantity) as total_quantity,
+ SUM(pallet_inventories.available_quantity) as total_available_quantity,
MAX(pallet_inventories.min_quantity) as minimum_quantity,
MAX(pallet_inventories.expiry_date_at) as latest_expiry_date_at
')
->leftJoin('pallet_batches', 'pallet_inventories.batch_uuid', '=', 'pallet_batches.uuid')
- ->groupBy('pallet_inventories.product_uuid', 'pallet_inventories.batch_uuid', 'pallet_inventories.supplier_uuid', 'pallet_inventories.warehouse_uuid');
+ ->groupBy('pallet_inventories.product_uuid', 'pallet_inventories.variant_uuid', 'pallet_inventories.batch_uuid', 'pallet_inventories.supplier_uuid', 'pallet_inventories.warehouse_uuid');
+ }
+
+ /**
+ * Scope to get low stock items.
+ *
+ * @param \Illuminate\Database\Eloquent\Builder $query
+ *
+ * @return \Illuminate\Database\Eloquent\Builder
+ */
+ public function scopeLowStock($query)
+ {
+ return $query->whereRaw('available_quantity <= min_quantity');
+ }
+
+ /**
+ * Scope to get expired items.
+ *
+ * @param \Illuminate\Database\Eloquent\Builder $query
+ *
+ * @return \Illuminate\Database\Eloquent\Builder
+ */
+ public function scopeExpired($query)
+ {
+ return $query->whereNotNull('expiry_date_at')
+ ->where('expiry_date_at', '<', now());
+ }
+
+ /**
+ * Scope to get expiring soon items.
+ *
+ * @param \Illuminate\Database\Eloquent\Builder $query
+ * @param int $days
+ *
+ * @return \Illuminate\Database\Eloquent\Builder
+ */
+ public function scopeExpiringSoon($query, $days = 30)
+ {
+ return $query->whereNotNull('expiry_date_at')
+ ->where('expiry_date_at', '>', now())
+ ->where('expiry_date_at', '<=', now()->addDays($days));
}
protected static function boot()
@@ -172,6 +431,42 @@ protected static function boot()
static::creating(function ($model) {
$model->created_at = now();
+ if (!$model->received_at) {
+ $model->received_at = now();
+ }
+ if (!isset($model->reserved_quantity)) {
+ $model->reserved_quantity = 0;
+ }
+ if (!isset($model->available_quantity)) {
+ $model->available_quantity = $model->quantity ?? 0;
+ }
});
+
+ static::saving(function ($model) {
+ // Ensure available quantity is calculated correctly
+ if ($model->isDirty(['quantity', 'reserved_quantity'])) {
+ $model->available_quantity = max(0, $model->quantity - $model->reserved_quantity);
+ }
+ });
+ }
+
+ /**
+ * Configure Spatie activity log options.
+ * Logs only the specified attributes when they change (dirty only).
+ */
+ public function getActivitylogOptions(): LogOptions
+ {
+ return LogOptions::defaults()
+ ->logOnly([
+ 'quantity',
+ 'unit_price',
+ 'status',
+ 'warehouse_uuid',
+ 'product_uuid',
+ 'variant_uuid',
+ 'batch_uuid',
+ ])
+ ->logOnlyDirty()
+ ->dontSubmitEmptyLogs();
}
}
diff --git a/server/src/Models/InventoryReservation.php b/server/src/Models/InventoryReservation.php
new file mode 100644
index 00000000..24492dcb
--- /dev/null
+++ b/server/src/Models/InventoryReservation.php
@@ -0,0 +1,225 @@
+ Json::class,
+ 'quantity' => 'integer',
+ 'reserved_at' => 'datetime',
+ 'expires_at' => 'datetime',
+ 'released_at' => 'datetime',
+ ];
+
+ /**
+ * Dynamic attributes that are appended to object.
+ *
+ * @var array
+ */
+ protected $appends = ['is_expired', 'is_active'];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['product', 'variant', 'warehouse', 'salesOrder'];
+
+ /**
+ * Searchable columns.
+ *
+ * @var array
+ */
+ protected $searchableColumns = ['status', 'type'];
+
+ /**
+ * Get the product.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function product()
+ {
+ return $this->belongsTo(Product::class, 'product_uuid', 'uuid');
+ }
+
+ public function variant()
+ {
+ return $this->belongsTo(ProductVariant::class, 'variant_uuid', 'uuid');
+ }
+
+ /**
+ * Get the inventory record.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function inventory()
+ {
+ return $this->belongsTo(Inventory::class, 'inventory_uuid');
+ }
+
+ /**
+ * Get the warehouse.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function warehouse()
+ {
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get the sales order.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function salesOrder()
+ {
+ return $this->belongsTo(SalesOrder::class, 'sales_order_uuid');
+ }
+
+ /**
+ * Get the pick list.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function pickList()
+ {
+ return $this->belongsTo(PickList::class, 'pick_list_uuid');
+ }
+
+ /**
+ * Check if reservation is expired.
+ *
+ * @return bool
+ */
+ public function getIsExpiredAttribute()
+ {
+ return $this->expires_at && $this->expires_at->isPast();
+ }
+
+ /**
+ * Check if reservation is active.
+ *
+ * @return bool
+ */
+ public function getIsActiveAttribute()
+ {
+ return $this->status === 'active' && !$this->is_expired;
+ }
+
+ /**
+ * Release the reservation.
+ *
+ * @return bool
+ */
+ public function release()
+ {
+ $this->status = 'released';
+ $this->released_at = now();
+
+ return $this->save();
+ }
+
+ /**
+ * Fulfill the reservation.
+ *
+ * @return bool
+ */
+ public function fulfill()
+ {
+ $this->status = 'fulfilled';
+
+ return $this->save();
+ }
+
+ /**
+ * Scope to get active reservations.
+ *
+ * @param \Illuminate\Database\Eloquent\Builder $query
+ *
+ * @return \Illuminate\Database\Eloquent\Builder
+ */
+ public function scopeActive($query)
+ {
+ return $query->where('status', 'active')
+ ->where(function ($q) {
+ $q->whereNull('expires_at')
+ ->orWhere('expires_at', '>', now());
+ });
+ }
+
+ /**
+ * Boot the model.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ if (!$model->reserved_at) {
+ $model->reserved_at = now();
+ }
+ if (!$model->status) {
+ $model->status = 'active';
+ }
+ if (!$model->type) {
+ $model->type = 'soft'; // soft or hard reservation
+ }
+ });
+ }
+}
diff --git a/server/src/Models/PickList.php b/server/src/Models/PickList.php
new file mode 100644
index 00000000..283bf549
--- /dev/null
+++ b/server/src/Models/PickList.php
@@ -0,0 +1,260 @@
+ Json::class,
+ 'started_at' => 'datetime',
+ 'completed_at' => 'datetime',
+ 'priority' => 'integer',
+ ];
+
+ /**
+ * Dynamic attributes that are appended to object.
+ *
+ * @var array
+ */
+ protected $appends = ['total_items', 'picked_items', 'completion_percentage'];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['warehouse', 'salesOrder', 'assignedTo', 'items'];
+
+ /**
+ * Searchable columns.
+ *
+ * @var array
+ */
+ protected $searchableColumns = ['pick_list_number', 'status', 'type', 'notes'];
+
+ /**
+ * Get the warehouse.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function warehouse()
+ {
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get the sales order.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function salesOrder()
+ {
+ return $this->belongsTo(SalesOrder::class, 'sales_order_uuid');
+ }
+
+ /**
+ * Get the wave.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function wave()
+ {
+ return $this->belongsTo(Wave::class, 'wave_uuid');
+ }
+
+ /**
+ * Get the assigned user.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function assignedTo()
+ {
+ return $this->belongsTo(\Fleetbase\Models\User::class, 'assigned_to_uuid');
+ }
+
+ /**
+ * Get the pick list items.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function items()
+ {
+ return $this->hasMany(PickListItem::class, 'pick_list_uuid');
+ }
+
+ /**
+ * Get total items count.
+ *
+ * @return int
+ */
+ public function getTotalItemsAttribute()
+ {
+ return $this->items()->count();
+ }
+
+ /**
+ * Get picked items count.
+ *
+ * @return int
+ */
+ public function getPickedItemsAttribute()
+ {
+ return $this->items()->where('status', 'picked')->count();
+ }
+
+ /**
+ * Get completion percentage.
+ *
+ * @return float
+ */
+ public function getCompletionPercentageAttribute()
+ {
+ if ($this->total_items === 0) {
+ return 0;
+ }
+
+ return round(($this->picked_items / $this->total_items) * 100, 2);
+ }
+
+ /**
+ * Start picking.
+ *
+ * @return bool
+ */
+ public function start()
+ {
+ $this->status = 'in_progress';
+ $this->started_at = now();
+
+ return $this->save();
+ }
+
+ /**
+ * Complete picking.
+ *
+ * @return bool
+ */
+ public function complete()
+ {
+ $this->status = 'completed';
+ $this->completed_at = now();
+
+ return $this->save();
+ }
+
+ /**
+ * Assign to user.
+ *
+ * @param string $userUuid
+ *
+ * @return bool
+ */
+ public function assignTo($userUuid)
+ {
+ $this->assigned_to_uuid = $userUuid;
+ $this->status = 'assigned';
+
+ return $this->save();
+ }
+
+ /**
+ * Scope to get pending pick lists.
+ *
+ * @param \Illuminate\Database\Eloquent\Builder $query
+ *
+ * @return \Illuminate\Database\Eloquent\Builder
+ */
+ public function scopePending($query)
+ {
+ return $query->where('status', 'pending');
+ }
+
+ /**
+ * Scope to get in progress pick lists.
+ *
+ * @param \Illuminate\Database\Eloquent\Builder $query
+ *
+ * @return \Illuminate\Database\Eloquent\Builder
+ */
+ public function scopeInProgress($query)
+ {
+ return $query->where('status', 'in_progress');
+ }
+
+ /**
+ * Boot the model.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ if (!$model->pick_list_number) {
+ $model->pick_list_number = 'PL-' . strtoupper(uniqid());
+ }
+ if (!$model->status) {
+ $model->status = 'pending';
+ }
+ if (!$model->type) {
+ $model->type = 'discrete'; // discrete, batch, zone, wave
+ }
+ if (!$model->priority) {
+ $model->priority = 5; // 1-10 scale
+ }
+ });
+ }
+}
diff --git a/server/src/Models/PickListItem.php b/server/src/Models/PickListItem.php
new file mode 100644
index 00000000..0a28ddec
--- /dev/null
+++ b/server/src/Models/PickListItem.php
@@ -0,0 +1,167 @@
+ Json::class,
+ 'quantity_requested' => 'integer',
+ 'quantity_picked' => 'integer',
+ 'sequence_number' => 'integer',
+ 'picked_at' => 'datetime',
+ ];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['product', 'variant', 'binLocation'];
+
+ /**
+ * Get the pick list.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function pickList()
+ {
+ return $this->belongsTo(PickList::class, 'pick_list_uuid');
+ }
+
+ /**
+ * Get the product.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function product()
+ {
+ return $this->belongsTo(Product::class, 'product_uuid', 'uuid');
+ }
+
+ public function variant()
+ {
+ return $this->belongsTo(ProductVariant::class, 'variant_uuid', 'uuid');
+ }
+
+ /**
+ * Get the inventory record.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function inventory()
+ {
+ return $this->belongsTo(Inventory::class, 'inventory_uuid');
+ }
+
+ /**
+ * Get the bin location.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function binLocation()
+ {
+ return $this->belongsTo(BinLocation::class, 'bin_location_uuid');
+ }
+
+ /**
+ * Get the user who picked this item.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function pickedBy()
+ {
+ return $this->belongsTo(\Fleetbase\Models\User::class, 'picked_by_uuid');
+ }
+
+ /**
+ * Mark as picked.
+ *
+ * @param int $quantity
+ * @param string|null $userUuid
+ *
+ * @return bool
+ */
+ public function markPicked($quantity, $userUuid = null)
+ {
+ $this->quantity_picked = $quantity;
+ $this->status = 'picked';
+ $this->picked_at = now();
+ if ($userUuid) {
+ $this->picked_by_uuid = $userUuid;
+ }
+
+ return $this->save();
+ }
+
+ /**
+ * Boot the model.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ if (!$model->status) {
+ $model->status = 'pending';
+ }
+ if (!$model->quantity_picked) {
+ $model->quantity_picked = 0;
+ }
+ });
+ }
+}
diff --git a/server/src/Models/Product.php b/server/src/Models/Product.php
index 5fff75de..6017e31c 100644
--- a/server/src/Models/Product.php
+++ b/server/src/Models/Product.php
@@ -2,28 +2,235 @@
namespace Fleetbase\Pallet\Models;
-use Fleetbase\FleetOps\Models\Entity;
+use Fleetbase\Casts\Json;
+use Fleetbase\Models\Model;
+use Fleetbase\Traits\HasApiModelBehavior;
+use Fleetbase\Traits\HasInternalId;
+use Fleetbase\Traits\HasMetaAttributes;
+use Fleetbase\Traits\HasPublicId;
+use Fleetbase\Traits\HasUuid;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Illuminate\Database\Eloquent\Relations\HasMany;
+use Spatie\Activitylog\LogOptions;
+use Spatie\Activitylog\Traits\LogsActivity;
-class Product extends Entity
+class Product extends Model
{
- /**
- * Overwrite both entity resource name with `payloadKey`.
- *
- * @var string
- */
+ use HasUuid;
+ use HasPublicId;
+ use HasInternalId;
+ use HasApiModelBehavior;
+ use HasMetaAttributes;
+ use LogsActivity;
+
+ protected $table = 'pallet_products';
+
protected $payloadKey = 'product';
- /**
- * The type of public Id to generate.
- *
- * @var string
- */
public $publicIdType = 'product';
- /**
- * Filterable parameters.
- *
- * @var array
- */
- protected $filterParams = ['facilitator', 'facilitator_type'];
+ protected $fillable = [
+ 'company_uuid',
+ 'created_by_uuid',
+ 'category_uuid',
+ 'supplier_uuid',
+ 'photo_uuid',
+ 'internal_id',
+ 'name',
+ 'description',
+ 'sku',
+ 'barcode',
+ 'currency',
+ 'unit_cost',
+ 'unit_price',
+ 'sale_price',
+ 'declared_value',
+ 'weight',
+ 'weight_unit',
+ 'length',
+ 'width',
+ 'height',
+ 'dimensions_unit',
+ 'dimensions',
+ 'has_variants',
+ 'is_serialized',
+ 'is_lot_tracked',
+ 'is_kit',
+ 'is_perishable',
+ 'requires_quality_check',
+ 'reorder_point',
+ 'reorder_quantity',
+ 'shelf_life_days',
+ 'status',
+ 'slug',
+ 'meta',
+ ];
+
+ protected $filterParams = [
+ 'category',
+ 'supplier',
+ 'status',
+ 'has_variants',
+ 'is_serialized',
+ 'is_lot_tracked',
+ 'is_kit',
+ ];
+
+ protected $searchableColumns = ['name', 'description', 'sku', 'barcode', 'internal_id'];
+
+ protected $casts = [
+ 'meta' => Json::class,
+ 'dimensions' => Json::class,
+ 'has_variants' => 'boolean',
+ 'is_serialized' => 'boolean',
+ 'is_lot_tracked' => 'boolean',
+ 'is_kit' => 'boolean',
+ 'is_perishable' => 'boolean',
+ 'requires_quality_check' => 'boolean',
+ 'weight' => 'decimal:4',
+ 'length' => 'decimal:4',
+ 'width' => 'decimal:4',
+ 'height' => 'decimal:4',
+ 'unit_cost' => 'decimal:4',
+ 'unit_price' => 'decimal:4',
+ 'sale_price' => 'decimal:4',
+ 'declared_value' => 'decimal:4',
+ 'reorder_point' => 'integer',
+ 'reorder_quantity' => 'integer',
+ 'shelf_life_days' => 'integer',
+ ];
+
+ protected $appends = ['incrementing_id', 'total_stock', 'available_stock', 'variant_count'];
+
+ protected $with = ['category', 'supplier', 'variants'];
+
+ public function getIncrementingIdAttribute(): ?int
+ {
+ return static::select('id')->where('uuid', $this->uuid)->value('id');
+ }
+
+ public function category(): BelongsTo
+ {
+ return $this->belongsTo(\Fleetbase\FleetOps\Models\Category::class, 'category_uuid');
+ }
+
+ public function supplier(): BelongsTo
+ {
+ return $this->belongsTo(Supplier::class, 'supplier_uuid');
+ }
+
+ public function variants(): HasMany
+ {
+ return $this->hasMany(ProductVariant::class, 'product_uuid');
+ }
+
+ public function files(): HasMany
+ {
+ return $this->hasMany(\Fleetbase\Models\File::class, 'subject_uuid', 'uuid');
+ }
+
+ public function inventories(): HasMany
+ {
+ return $this->hasMany(Inventory::class, 'product_uuid');
+ }
+
+ public function batches(): HasMany
+ {
+ return $this->hasMany(Batch::class, 'product_uuid');
+ }
+
+ public function kitComponents(): HasMany
+ {
+ return $this->hasMany(ProductKitComponent::class, 'kit_product_uuid');
+ }
+
+ public function getVariantCountAttribute(): int
+ {
+ return $this->variants()->count();
+ }
+
+ public function getTotalStockAttribute(): int
+ {
+ $query = $this->inventories();
+
+ if (!$this->has_variants) {
+ $query->whereNull('variant_uuid');
+ }
+
+ return (int) $query->sum('quantity');
+ }
+
+ public function getAvailableStockAttribute(): int
+ {
+ $query = $this->inventories();
+
+ if (!$this->has_variants) {
+ $query->whereNull('variant_uuid');
+ }
+
+ return (int) $query->sum('available_quantity');
+ }
+
+ public function needsReorder(): bool
+ {
+ return $this->reorder_point !== null && $this->available_stock <= $this->reorder_point;
+ }
+
+ public function getStockByWarehouse($warehouseUuid, ?string $variantUuid = null): int
+ {
+ return (int) $this->inventories()
+ ->where('warehouse_uuid', $warehouseUuid)
+ ->when($variantUuid, fn ($query) => $query->where('variant_uuid', $variantUuid))
+ ->when(!$variantUuid && !$this->has_variants, fn ($query) => $query->whereNull('variant_uuid'))
+ ->sum('quantity');
+ }
+
+ public function reserveInventory($quantity, $orderUuid, $warehouseUuid = null, ?string $variantUuid = null): ?InventoryReservation
+ {
+ $availableStock = $variantUuid
+ ? (ProductVariant::where('uuid', $variantUuid)->first()?->available_stock ?? 0)
+ : $this->available_stock;
+
+ if ($availableStock < $quantity) {
+ return null;
+ }
+
+ return InventoryReservation::create([
+ 'company_uuid' => session('company'),
+ 'product_uuid' => $this->uuid,
+ 'variant_uuid' => $variantUuid,
+ 'order_uuid' => $orderUuid,
+ 'warehouse_uuid' => $warehouseUuid,
+ 'quantity' => $quantity,
+ 'status' => 'active',
+ ]);
+ }
+
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ $model->company_uuid ??= session('company');
+ $model->created_by_uuid ??= session('user');
+ $model->status ??= 'active';
+ });
+ }
+
+ public function getActivitylogOptions(): LogOptions
+ {
+ return LogOptions::defaults()
+ ->logOnly([
+ 'name',
+ 'sku',
+ 'description',
+ 'unit_price',
+ 'unit_cost',
+ 'status',
+ 'barcode',
+ 'has_variants',
+ ])
+ ->logOnlyDirty()
+ ->dontSubmitEmptyLogs();
+ }
}
diff --git a/server/src/Models/ProductKitComponent.php b/server/src/Models/ProductKitComponent.php
new file mode 100644
index 00000000..e85a05dd
--- /dev/null
+++ b/server/src/Models/ProductKitComponent.php
@@ -0,0 +1,79 @@
+ 'integer',
+ 'sort_order' => 'integer',
+ ];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['componentProduct'];
+
+ /**
+ * Get the kit product.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function kitProduct()
+ {
+ return $this->belongsTo(Product::class, 'kit_product_uuid', 'uuid');
+ }
+
+ /**
+ * Get the component product.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function componentProduct()
+ {
+ return $this->belongsTo(Product::class, 'component_product_uuid', 'uuid');
+ }
+}
diff --git a/server/src/Models/ProductVariant.php b/server/src/Models/ProductVariant.php
new file mode 100644
index 00000000..54d089c5
--- /dev/null
+++ b/server/src/Models/ProductVariant.php
@@ -0,0 +1,108 @@
+ Json::class,
+ 'option_values' => Json::class,
+ 'unit_cost' => 'decimal:4',
+ 'unit_price' => 'decimal:4',
+ 'sale_price' => 'decimal:4',
+ 'declared_value' => 'decimal:4',
+ 'weight' => 'decimal:4',
+ ];
+
+ protected $appends = ['incrementing_id', 'display_name', 'total_stock', 'available_stock'];
+
+ protected $with = [];
+
+ public function getIncrementingIdAttribute(): ?int
+ {
+ return static::select('id')->where('uuid', $this->uuid)->value('id');
+ }
+
+ public function product(): BelongsTo
+ {
+ return $this->belongsTo(Product::class, 'product_uuid');
+ }
+
+ public function inventories(): HasMany
+ {
+ return $this->hasMany(Inventory::class, 'variant_uuid');
+ }
+
+ public function getDisplayNameAttribute(): string
+ {
+ return $this->name ?: trim(collect($this->option_values ?? [])->implode(' / ')) ?: ($this->sku ?: $this->public_id);
+ }
+
+ public function getTotalStockAttribute(): int
+ {
+ return (int) $this->inventories()->sum('quantity');
+ }
+
+ public function getAvailableStockAttribute(): int
+ {
+ return (int) $this->inventories()->sum('available_quantity');
+ }
+
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ $model->company_uuid ??= session('company');
+ $model->created_by_uuid ??= session('user');
+ $model->status ??= 'active';
+ });
+
+ static::saved(function ($model) {
+ $model->product?->forceFill(['has_variants' => true])->saveQuietly();
+ });
+ }
+}
diff --git a/server/src/Models/PurchaseOrder.php b/server/src/Models/PurchaseOrder.php
index 669ea467..a3edd4b1 100644
--- a/server/src/Models/PurchaseOrder.php
+++ b/server/src/Models/PurchaseOrder.php
@@ -4,15 +4,20 @@
use Fleetbase\Casts\Json;
use Fleetbase\Models\Model;
+use Fleetbase\Pallet\Traits\HasOperationalAuditTrail;
use Fleetbase\Traits\HasApiModelBehavior;
use Fleetbase\Traits\HasPublicId;
use Fleetbase\Traits\HasUuid;
+use Spatie\Activitylog\LogOptions;
+use Spatie\Activitylog\Traits\LogsActivity;
class PurchaseOrder extends Model
{
use HasUuid;
use HasPublicId;
use HasApiModelBehavior;
+ use HasOperationalAuditTrail;
+ use LogsActivity;
/**
* The database table used by the model.
@@ -78,7 +83,7 @@ class PurchaseOrder extends Model
* @var array
*/
protected $casts = [
- 'meta' => JSON::class,
+ 'meta' => Json::class,
];
/**
@@ -125,6 +130,33 @@ public function supplier()
return $this->belongsTo(Supplier::class, 'supplier_uuid', 'uuid');
}
+ /**
+ * Relationship: the line items on this Purchase Order.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function items()
+ {
+ return $this->hasMany(PurchaseOrderItem::class, 'purchase_order_uuid', 'uuid')
+ ->orderBy('created_at', 'asc');
+ }
+
+ /**
+ * Returns the total order value (sum of all item total_prices).
+ */
+ public function getTotalValueAttribute(): float
+ {
+ return (float) $this->items()->sum('total_price');
+ }
+
+ /**
+ * Returns the total number of line items.
+ */
+ public function getItemCountAttribute(): int
+ {
+ return $this->items()->count();
+ }
+
/**
* Relationship with the transaction associated with the purchase order.
*
@@ -155,13 +187,58 @@ public function pointOfContact()
return $this->belongsTo(Contact::class, 'point_of_contact_uuid', 'uuid');
}
+ /**
+ * Mark the purchase order as received and log an operational audit event.
+ * This method is called by PurchaseOrderController::receive().
+ *
+ * @param array $receivedItems Array of received line items with quantities
+ */
+ public function markAsReceived(array $receivedItems = []): bool
+ {
+ $this->status = 'received';
+ $result = $this->save();
+
+ // Log operational audit event
+ $this->logAuditEvent(
+ AuditEventType::PO_RECEIVED,
+ 'Purchase Order Received',
+ 'received',
+ null,
+ [
+ 'order_number' => $this->public_id,
+ 'supplier_uuid' => $this->supplier_uuid,
+ 'received_items' => $receivedItems,
+ ]
+ );
+
+ return $result;
+ }
+
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
- $model->created_at = now();
+ $model->created_at = now();
$model->order_created_at = now();
});
}
+
+ /**
+ * Configure Spatie activity log options.
+ * Logs only the specified attributes when they change (dirty only).
+ */
+ public function getActivitylogOptions(): LogOptions
+ {
+ return LogOptions::defaults()
+ ->logOnly([
+ 'status',
+ 'reference_code',
+ 'description',
+ 'currency',
+ 'expected_delivery_at',
+ ])
+ ->logOnlyDirty()
+ ->dontSubmitEmptyLogs();
+ }
}
diff --git a/server/src/Models/PurchaseOrderItem.php b/server/src/Models/PurchaseOrderItem.php
new file mode 100644
index 00000000..211140d1
--- /dev/null
+++ b/server/src/Models/PurchaseOrderItem.php
@@ -0,0 +1,194 @@
+ Json::class,
+ 'expiry_date' => 'date',
+ 'received_at' => 'datetime',
+ 'quantity' => 'integer',
+ 'quantity_received' => 'integer',
+ 'unit_price' => 'decimal:4',
+ 'unit_cost' => 'decimal:4',
+ 'total_price' => 'decimal:4',
+ ];
+
+ /**
+ * Relationship: the parent Purchase Order.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function purchaseOrder()
+ {
+ return $this->belongsTo(PurchaseOrder::class, 'purchase_order_uuid', 'uuid');
+ }
+
+ /**
+ * Relationship: the Product being ordered.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function product()
+ {
+ return $this->belongsTo(Product::class, 'product_uuid', 'uuid');
+ }
+
+ public function variant()
+ {
+ return $this->belongsTo(ProductVariant::class, 'variant_uuid', 'uuid');
+ }
+
+ /**
+ * Relationship: the destination Warehouse.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function warehouse()
+ {
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid', 'uuid');
+ }
+
+ /**
+ * Scope: only pending items.
+ */
+ public function scopePending($query)
+ {
+ return $query->where('status', 'pending');
+ }
+
+ /**
+ * Scope: only received items.
+ */
+ public function scopeReceived($query)
+ {
+ return $query->where('status', 'received');
+ }
+
+ /**
+ * Returns true if this item has been fully received.
+ */
+ public function isFullyReceived(): bool
+ {
+ return $this->quantity_received >= $this->quantity;
+ }
+
+ /**
+ * Returns the outstanding (unreceived) quantity.
+ */
+ public function getOutstandingQuantityAttribute(): int
+ {
+ return max(0, $this->quantity - $this->quantity_received);
+ }
+
+ /**
+ * Recalculate and persist the total_price based on unit_price × quantity.
+ */
+ public function recalculateTotalPrice(): void
+ {
+ if ($this->unit_price !== null && $this->quantity !== null) {
+ $this->total_price = round($this->unit_price * $this->quantity, 4);
+ }
+ }
+
+ /**
+ * Configure Spatie activity log options.
+ */
+ public function getActivitylogOptions(): LogOptions
+ {
+ return LogOptions::defaults()
+ ->logOnly(['quantity', 'quantity_received', 'unit_price', 'status', 'lot_number'])
+ ->logOnlyDirty()
+ ->dontSubmitEmptyLogs();
+ }
+}
diff --git a/server/src/Models/SalesOrder.php b/server/src/Models/SalesOrder.php
index 751d7d33..ea372ddc 100644
--- a/server/src/Models/SalesOrder.php
+++ b/server/src/Models/SalesOrder.php
@@ -4,15 +4,20 @@
use Fleetbase\Casts\Json;
use Fleetbase\Models\Model;
+use Fleetbase\Pallet\Traits\HasOperationalAuditTrail;
use Fleetbase\Traits\HasApiModelBehavior;
use Fleetbase\Traits\HasPublicId;
use Fleetbase\Traits\HasUuid;
+use Spatie\Activitylog\LogOptions;
+use Spatie\Activitylog\Traits\LogsActivity;
class SalesOrder extends Model
{
use HasUuid;
use HasPublicId;
use HasApiModelBehavior;
+ use HasOperationalAuditTrail;
+ use LogsActivity;
/**
* The database table used by the model.
@@ -147,19 +152,67 @@ public function pointOfContact()
}
/**
- * Relationship with the customer associated with the sales order.
+ * Relationship with the supplier associated with the sales order.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
-
+ public function supplier()
+ {
+ return $this->belongsTo(Supplier::class, 'supplier_uuid', 'uuid');
+ }
+
/**
- * Relationship with the supplier associated with the purchase order.
+ * Relationship: the line items on this Sales Order.
*
- * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
- public function supplier()
+ public function items()
{
- return $this->belongsTo(Supplier::class, 'supplier_uuid', 'uuid');
+ return $this->hasMany(SalesOrderItem::class, 'sales_order_uuid', 'uuid')
+ ->orderBy('created_at', 'asc');
+ }
+
+ /**
+ * Returns the total order value (sum of all item total_prices).
+ */
+ public function getTotalValueAttribute(): float
+ {
+ return (float) $this->items()->sum('total_price');
+ }
+
+ /**
+ * Returns the total number of line items.
+ */
+ public function getItemCountAttribute(): int
+ {
+ return $this->items()->count();
+ }
+
+ /**
+ * Mark the sales order as fulfilled and log an operational audit event.
+ * This method is called by SalesOrderController::fulfill().
+ *
+ * @param array $fulfilledItems Array of fulfilled line items with quantities
+ */
+ public function markAsFulfilled(array $fulfilledItems = []): bool
+ {
+ $this->status = 'fulfilled';
+ $result = $this->save();
+
+ // Log operational audit event
+ $this->logAuditEvent(
+ AuditEventType::SO_FULFILLED,
+ 'Sales Order Fulfilled',
+ 'fulfilled',
+ null,
+ [
+ 'order_number' => $this->public_id,
+ 'supplier_uuid' => $this->supplier_uuid,
+ 'fulfilled_items' => $fulfilledItems,
+ ]
+ );
+
+ return $result;
}
protected static function boot()
@@ -167,8 +220,26 @@ protected static function boot()
parent::boot();
static::creating(function ($model) {
- $model->created_at = now();
+ $model->created_at = now();
$model->order_date_at = now();
});
}
+
+ /**
+ * Configure Spatie activity log options.
+ * Logs only the specified attributes when they change (dirty only).
+ */
+ public function getActivitylogOptions(): LogOptions
+ {
+ return LogOptions::defaults()
+ ->logOnly([
+ 'status',
+ 'reference_code',
+ 'description',
+ 'currency',
+ 'expected_delivery_at',
+ ])
+ ->logOnlyDirty()
+ ->dontSubmitEmptyLogs();
+ }
}
diff --git a/server/src/Models/SalesOrderItem.php b/server/src/Models/SalesOrderItem.php
new file mode 100644
index 00000000..a82940e8
--- /dev/null
+++ b/server/src/Models/SalesOrderItem.php
@@ -0,0 +1,201 @@
+ Json::class,
+ 'fulfilled_at' => 'datetime',
+ 'quantity' => 'integer',
+ 'quantity_fulfilled' => 'integer',
+ 'unit_price' => 'decimal:4',
+ 'total_price' => 'decimal:4',
+ ];
+
+ /**
+ * Relationship: the parent Sales Order.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function salesOrder()
+ {
+ return $this->belongsTo(SalesOrder::class, 'sales_order_uuid', 'uuid');
+ }
+
+ /**
+ * Relationship: the Product being sold.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function product()
+ {
+ return $this->belongsTo(Product::class, 'product_uuid', 'uuid');
+ }
+
+ public function variant()
+ {
+ return $this->belongsTo(ProductVariant::class, 'variant_uuid', 'uuid');
+ }
+
+ /**
+ * Relationship: the source Warehouse.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function warehouse()
+ {
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid', 'uuid');
+ }
+
+ /**
+ * Relationship: the specific Inventory record being drawn from.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function inventory()
+ {
+ return $this->belongsTo(Inventory::class, 'inventory_uuid', 'uuid');
+ }
+
+ /**
+ * Scope: only pending items.
+ */
+ public function scopePending($query)
+ {
+ return $query->where('status', 'pending');
+ }
+
+ /**
+ * Scope: only fulfilled items.
+ */
+ public function scopeFulfilled($query)
+ {
+ return $query->where('status', 'fulfilled');
+ }
+
+ /**
+ * Returns true if this item has been fully fulfilled.
+ */
+ public function isFullyFulfilled(): bool
+ {
+ return $this->quantity_fulfilled >= $this->quantity;
+ }
+
+ /**
+ * Returns the outstanding (unfulfilled) quantity.
+ */
+ public function getOutstandingQuantityAttribute(): int
+ {
+ return max(0, $this->quantity - $this->quantity_fulfilled);
+ }
+
+ /**
+ * Recalculate and persist the total_price based on unit_price × quantity.
+ */
+ public function recalculateTotalPrice(): void
+ {
+ if ($this->unit_price !== null && $this->quantity !== null) {
+ $this->total_price = round($this->unit_price * $this->quantity, 4);
+ }
+ }
+
+ /**
+ * Configure Spatie activity log options.
+ */
+ public function getActivitylogOptions(): LogOptions
+ {
+ return LogOptions::defaults()
+ ->logOnly(['quantity', 'quantity_fulfilled', 'unit_price', 'status', 'lot_number'])
+ ->logOnlyDirty()
+ ->dontSubmitEmptyLogs();
+ }
+}
diff --git a/server/src/Models/StockAdjustment.php b/server/src/Models/StockAdjustment.php
index d2810f1d..30892dae 100644
--- a/server/src/Models/StockAdjustment.php
+++ b/server/src/Models/StockAdjustment.php
@@ -4,15 +4,21 @@
use Fleetbase\Casts\Json;
use Fleetbase\Models\Model;
+use Fleetbase\Models\User;
+use Fleetbase\Pallet\Traits\HasOperationalAuditTrail;
use Fleetbase\Traits\HasApiModelBehavior;
use Fleetbase\Traits\HasPublicId;
use Fleetbase\Traits\HasUuid;
+use Spatie\Activitylog\LogOptions;
+use Spatie\Activitylog\Traits\LogsActivity;
class StockAdjustment extends Model
{
use HasUuid;
use HasPublicId;
use HasApiModelBehavior;
+ use HasOperationalAuditTrail;
+ use LogsActivity;
/**
* The database table used by the model.
@@ -60,6 +66,7 @@ class StockAdjustment extends Model
'company_uuid',
'created_by_uuid',
'product_uuid',
+ 'variant_uuid',
'assignee_uuid',
'type',
'reason',
@@ -77,7 +84,8 @@ class StockAdjustment extends Model
* @var array
*/
protected $casts = [
- 'meta' => JSON::class,
+ 'meta' => Json::class,
+ 'approval_required' => 'boolean',
];
/**
@@ -101,7 +109,7 @@ class StockAdjustment extends Model
*/
public function company()
{
- return $this->belongsTo(Company::class, 'company_uuid', 'uuid');
+ return $this->belongsTo(\Fleetbase\Models\Company::class, 'company_uuid', 'uuid');
}
/**
@@ -124,8 +132,56 @@ public function product()
return $this->belongsTo(Product::class, 'product_uuid', 'uuid');
}
+ public function variant()
+ {
+ return $this->belongsTo(ProductVariant::class, 'variant_uuid', 'uuid');
+ }
+
public function user()
{
return $this->belongsTo(User::class, 'assignee_uuid');
}
+
+ /**
+ * Boot the model.
+ * Automatically logs an operational audit event when a stock adjustment is created.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::created(function (StockAdjustment $adjustment) {
+ $adjustment->logAuditEvent(
+ AuditEventType::STOCK_ADJUSTMENT,
+ 'Stock Adjusted',
+ $adjustment->type,
+ $adjustment->reason,
+ [
+ 'product_uuid' => $adjustment->product_uuid,
+ 'variant_uuid' => $adjustment->variant_uuid,
+ 'before_quantity' => $adjustment->before_quantity,
+ 'after_quantity' => $adjustment->after_quantity,
+ 'quantity_delta' => $adjustment->quantity,
+ ]
+ );
+ });
+ }
+
+ /**
+ * Configure Spatie activity log options.
+ * Logs only the specified attributes when they change (dirty only).
+ */
+ public function getActivitylogOptions(): LogOptions
+ {
+ return LogOptions::defaults()
+ ->logOnly([
+ 'type',
+ 'reason',
+ 'quantity',
+ 'before_quantity',
+ 'after_quantity',
+ ])
+ ->logOnlyDirty()
+ ->dontSubmitEmptyLogs();
+ }
}
diff --git a/server/src/Models/StockTransaction.php b/server/src/Models/StockTransaction.php
index 8360feb5..10f5c245 100644
--- a/server/src/Models/StockTransaction.php
+++ b/server/src/Models/StockTransaction.php
@@ -30,7 +30,7 @@ class StockTransaction extends Model
*
* @var array
*/
- protected $searchableColumns = ['uuid', 'product_uuid', 'transaction_type', 'quantity', 'transaction_date'];
+ protected $searchableColumns = ['uuid', 'product_uuid', 'variant_uuid', 'transaction_type', 'quantity', 'transaction_date'];
/**
* The attributes that are mass assignable.
@@ -39,7 +39,10 @@ class StockTransaction extends Model
*/
protected $fillable = [
'uuid',
+ 'company_uuid',
+ 'created_by_uuid',
'product_uuid',
+ 'variant_uuid',
'transaction_type',
'quantity',
'transaction_date_at',
diff --git a/server/src/Models/StockTransfer.php b/server/src/Models/StockTransfer.php
new file mode 100644
index 00000000..51c9b565
--- /dev/null
+++ b/server/src/Models/StockTransfer.php
@@ -0,0 +1,296 @@
+ Json::class,
+ 'shipped_at' => 'datetime',
+ 'received_at' => 'datetime',
+ ];
+
+ /**
+ * Dynamic attributes that are appended to object.
+ *
+ * @var array
+ */
+ protected $appends = ['total_items', 'total_quantity'];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['fromWarehouse', 'toWarehouse', 'items'];
+
+ /**
+ * Searchable columns.
+ *
+ * @var array
+ */
+ protected $searchableColumns = ['transfer_number', 'status', 'type', 'notes'];
+
+ /**
+ * Get the source warehouse.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function fromWarehouse()
+ {
+ return $this->belongsTo(Warehouse::class, 'from_warehouse_uuid');
+ }
+
+ /**
+ * Get the destination warehouse.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function toWarehouse()
+ {
+ return $this->belongsTo(Warehouse::class, 'to_warehouse_uuid');
+ }
+
+ /**
+ * Get the user who requested the transfer.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function requestedBy()
+ {
+ return $this->belongsTo(\Fleetbase\Models\User::class, 'requested_by_uuid');
+ }
+
+ /**
+ * Get the user who approved the transfer.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function approvedBy()
+ {
+ return $this->belongsTo(\Fleetbase\Models\User::class, 'approved_by_uuid');
+ }
+
+ /**
+ * Get the transfer items.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function items()
+ {
+ return $this->hasMany(StockTransferItem::class, 'stock_transfer_uuid');
+ }
+
+ /**
+ * Get total items count.
+ *
+ * @return int
+ */
+ public function getTotalItemsAttribute()
+ {
+ return $this->items()->count();
+ }
+
+ /**
+ * Get total quantity.
+ *
+ * @return int
+ */
+ public function getTotalQuantityAttribute()
+ {
+ return $this->items()->sum('quantity');
+ }
+
+ /**
+ * Approve the transfer.
+ *
+ * @param string|null $userUuid
+ *
+ * @return bool
+ */
+ public function approve($userUuid = null)
+ {
+ $this->status = 'approved';
+ if ($userUuid) {
+ $this->approved_by_uuid = $userUuid;
+ }
+
+ return $this->save();
+ }
+
+ /**
+ * Ship the transfer.
+ *
+ * @return bool
+ */
+ public function ship()
+ {
+ // Deduct inventory from source warehouse
+ foreach ($this->items as $item) {
+ $inventory = Inventory::where('product_uuid', $item->product_uuid)
+ ->where('variant_uuid', $item->variant_uuid)
+ ->where('warehouse_uuid', $this->from_warehouse_uuid)
+ ->first();
+
+ if ($inventory) {
+ $inventory->quantity -= $item->quantity;
+ $inventory->save();
+ }
+ }
+
+ $this->status = 'in_transit';
+ $this->shipped_at = now();
+ $result = $this->save();
+
+ // Log operational audit event
+ $this->logAuditEvent(
+ AuditEventType::STOCK_TRANSFER,
+ 'Stock Transfer Shipped',
+ 'shipped',
+ null,
+ [
+ 'transfer_number' => $this->transfer_number,
+ 'from_warehouse_uuid' => $this->from_warehouse_uuid,
+ 'to_warehouse_uuid' => $this->to_warehouse_uuid,
+ 'total_items' => $this->total_items,
+ 'total_quantity' => $this->total_quantity,
+ ]
+ );
+
+ return $result;
+ }
+
+ /**
+ * Receive the transfer.
+ *
+ * @return bool
+ */
+ public function receive()
+ {
+ // Add inventory to destination warehouse
+ foreach ($this->items as $item) {
+ $inventory = Inventory::firstOrCreate(
+ [
+ 'product_uuid' => $item->product_uuid,
+ 'variant_uuid' => $item->variant_uuid,
+ 'warehouse_uuid' => $this->to_warehouse_uuid,
+ 'company_uuid' => $this->company_uuid,
+ ],
+ [
+ 'quantity' => 0,
+ ]
+ );
+
+ $inventory->quantity += $item->quantity_received ?? $item->quantity;
+ $inventory->save();
+ }
+
+ $this->status = 'completed';
+ $this->received_at = now();
+ $result = $this->save();
+
+ // Log operational audit event
+ $this->logAuditEvent(
+ AuditEventType::STOCK_TRANSFER,
+ 'Stock Transfer Completed',
+ 'completed',
+ null,
+ [
+ 'transfer_number' => $this->transfer_number,
+ 'from_warehouse_uuid' => $this->from_warehouse_uuid,
+ 'to_warehouse_uuid' => $this->to_warehouse_uuid,
+ 'total_items' => $this->total_items,
+ 'total_quantity' => $this->total_quantity,
+ ]
+ );
+
+ return $result;
+ }
+
+ /**
+ * Cancel the transfer.
+ *
+ * @return bool
+ */
+ public function cancel()
+ {
+ $this->status = 'cancelled';
+
+ return $this->save();
+ }
+
+ /**
+ * Boot the model.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ if (!$model->transfer_number) {
+ $model->transfer_number = 'TR-' . strtoupper(uniqid());
+ }
+ if (!$model->status) {
+ $model->status = 'pending';
+ }
+ if (!$model->type) {
+ $model->type = 'standard'; // standard, emergency, replenishment
+ }
+ });
+ }
+}
diff --git a/server/src/Models/StockTransferItem.php b/server/src/Models/StockTransferItem.php
new file mode 100644
index 00000000..d752ad1c
--- /dev/null
+++ b/server/src/Models/StockTransferItem.php
@@ -0,0 +1,105 @@
+ Json::class,
+ 'quantity' => 'integer',
+ 'quantity_received' => 'integer',
+ ];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['product', 'variant'];
+
+ /**
+ * Get the stock transfer.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function stockTransfer()
+ {
+ return $this->belongsTo(StockTransfer::class, 'stock_transfer_uuid');
+ }
+
+ /**
+ * Get the product.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function product()
+ {
+ return $this->belongsTo(Product::class, 'product_uuid', 'uuid');
+ }
+
+ public function variant()
+ {
+ return $this->belongsTo(ProductVariant::class, 'variant_uuid', 'uuid');
+ }
+
+ /**
+ * Record received quantity.
+ *
+ * @param int $quantity
+ *
+ * @return bool
+ */
+ public function recordReceived($quantity)
+ {
+ $this->quantity_received = $quantity;
+
+ return $this->save();
+ }
+}
diff --git a/server/src/Models/Supplier.php b/server/src/Models/Supplier.php
index 54ac807e..f9dfe439 100644
--- a/server/src/Models/Supplier.php
+++ b/server/src/Models/Supplier.php
@@ -3,6 +3,7 @@
namespace Fleetbase\Pallet\Models;
use Fleetbase\FleetOps\Models\Vendor;
+use Spatie\Activitylog\LogOptions;
class Supplier extends Vendor
{
@@ -19,4 +20,21 @@ class Supplier extends Vendor
* @var string
*/
protected $publicIdType = 'supplier';
+
+ /**
+ * Configure Spatie activity log options.
+ * Logs only the specified attributes when they change (dirty only).
+ */
+ public function getActivitylogOptions(): LogOptions
+ {
+ return LogOptions::defaults()
+ ->logOnly([
+ 'name',
+ 'email',
+ 'phone',
+ 'status',
+ ])
+ ->logOnlyDirty()
+ ->dontSubmitEmptyLogs();
+ }
}
diff --git a/server/src/Models/Warehouse.php b/server/src/Models/Warehouse.php
index 0b972baa..e31b8b1b 100644
--- a/server/src/Models/Warehouse.php
+++ b/server/src/Models/Warehouse.php
@@ -2,36 +2,376 @@
namespace Fleetbase\Pallet\Models;
-use Fleetbase\FleetOps\Models\Place;
+use Fleetbase\Casts\Json;
+use Fleetbase\Models\Company;
+use Fleetbase\Models\Model;
+use Fleetbase\Models\Place;
+use Fleetbase\Models\User;
+use Fleetbase\Traits\HasApiModelBehavior;
+use Fleetbase\Traits\HasPublicId;
+use Fleetbase\Traits\HasUuid;
+use Fleetbase\Traits\SendsWebhooks;
+use Fleetbase\Traits\TracksApiCredential;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Illuminate\Database\Eloquent\Relations\HasMany;
+use Spatie\Activitylog\LogOptions;
+use Spatie\Activitylog\Traits\LogsActivity;
-class Warehouse extends Place
+class Warehouse extends Model
{
+ use HasUuid;
+ use HasPublicId;
+ use HasApiModelBehavior;
+ use SendsWebhooks;
+ use TracksApiCredential;
+ use LogsActivity;
+
+ /**
+ * The database table used by the model.
+ *
+ * @var string
+ */
+ protected $table = 'pallet_warehouses';
+
/**
- * Overwrite both place resource name with `payloadKey`.
+ * The payload key for API requests.
*
* @var string
*/
protected $payloadKey = 'warehouse';
/**
- * The type of public Id to generate.
+ * The public_id prefix for this model.
*
* @var string
*/
- protected $publicIdType = 'warehouse';
+ protected $publicIdPrefix = 'warehouse';
+
+ /**
+ * The attributes that are mass assignable.
+ *
+ * @var array
+ */
+ protected $fillable = [
+ 'uuid',
+ 'public_id',
+ 'company_uuid',
+ 'created_by_uuid',
+ 'place_uuid',
+ 'name',
+ 'code',
+ 'type',
+ 'status',
+ 'capacity',
+ 'current_utilization',
+ 'floor_area_sqm',
+ 'operating_hours',
+ 'timezone',
+ 'phone',
+ 'email',
+ 'manager_uuid',
+ 'total_docks',
+ 'is_active',
+ 'is_default',
+ 'meta',
+ ];
+
+ /**
+ * The attributes that should be cast to native types.
+ *
+ * @var array
+ */
+ protected $casts = [
+ 'operating_hours' => 'array',
+ 'meta' => Json::class,
+ 'capacity' => 'integer',
+ 'current_utilization' => 'integer',
+ 'floor_area_sqm' => 'float',
+ 'is_active' => 'boolean',
+ 'is_default' => 'boolean',
+ 'total_docks' => 'integer',
+ ];
+
+ /**
+ * Dynamic attributes that are appended to object.
+ *
+ * @var array
+ */
+ protected $appends = ['utilization_percentage', 'total_zones', 'total_bins', 'address'];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['place', 'sections', 'zones', 'docks'];
+
+ /**
+ * The company that owns this warehouse.
+ */
+ public function company(): BelongsTo
+ {
+ return $this->belongsTo(Company::class, 'company_uuid');
+ }
+
+ /**
+ * The user who created this warehouse.
+ */
+ public function createdBy(): BelongsTo
+ {
+ return $this->belongsTo(User::class, 'created_by_uuid');
+ }
+
+ /**
+ * The geographic/address record for this warehouse.
+ * All address, coordinates, and geocoding data lives here.
+ */
+ public function place(): BelongsTo
+ {
+ return $this->belongsTo(Place::class, 'place_uuid');
+ }
- protected $with = ['sections'];
+ /**
+ * The user assigned as warehouse manager.
+ */
+ public function manager(): BelongsTo
+ {
+ return $this->belongsTo(User::class, 'manager_uuid');
+ }
/**
- * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ * Get warehouse sections.
+ *
+ * @return HasMany
*/
public function sections()
{
return $this->hasMany(WarehouseSection::class, 'warehouse_uuid');
}
+ /**
+ * Get warehouse docks.
+ *
+ * @return HasMany
+ */
public function docks()
{
return $this->hasMany(WarehouseDock::class, 'warehouse_uuid');
}
+
+ /**
+ * Get warehouse zones.
+ *
+ * @return HasMany
+ */
+ public function zones()
+ {
+ return $this->hasMany(WarehouseZone::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get warehouse aisles.
+ *
+ * @return HasMany
+ */
+ public function aisles()
+ {
+ return $this->hasMany(WarehouseAisle::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get warehouse racks.
+ *
+ * @return HasMany
+ */
+ public function racks()
+ {
+ return $this->hasMany(WarehouseRack::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get bin locations.
+ *
+ * @return HasMany
+ */
+ public function binLocations()
+ {
+ return $this->hasMany(BinLocation::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get inventory items in this warehouse.
+ *
+ * @return HasMany
+ */
+ public function inventories()
+ {
+ return $this->hasMany(Inventory::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get purchase orders for this warehouse.
+ *
+ * @return HasMany
+ */
+ public function purchaseOrders()
+ {
+ return $this->hasMany(PurchaseOrder::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get sales orders for this warehouse.
+ *
+ * @return HasMany
+ */
+ public function salesOrders()
+ {
+ return $this->hasMany(SalesOrder::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get pick lists for this warehouse.
+ *
+ * @return HasMany
+ */
+ public function pickLists()
+ {
+ return $this->hasMany(PickList::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get cycle counts for this warehouse.
+ *
+ * @return HasMany
+ */
+ public function cycleCounts()
+ {
+ return $this->hasMany(CycleCount::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get stock transfers from this warehouse.
+ *
+ * @return HasMany
+ */
+ public function outboundTransfers()
+ {
+ return $this->hasMany(StockTransfer::class, 'from_warehouse_uuid');
+ }
+
+ /**
+ * Get stock transfers to this warehouse.
+ *
+ * @return HasMany
+ */
+ public function inboundTransfers()
+ {
+ return $this->hasMany(StockTransfer::class, 'to_warehouse_uuid');
+ }
+
+ /**
+ * Get utilization percentage.
+ *
+ * @return float
+ */
+ public function getUtilizationPercentageAttribute()
+ {
+ if (!$this->capacity || $this->capacity == 0) {
+ return 0;
+ }
+
+ return round(($this->current_utilization / $this->capacity) * 100, 2);
+ }
+
+ /**
+ * Get total zones count.
+ *
+ * @return int
+ */
+ public function getTotalZonesAttribute()
+ {
+ return $this->zones()->count();
+ }
+
+ /**
+ * Get total bins count.
+ *
+ * @return int
+ */
+ public function getTotalBinsAttribute()
+ {
+ return $this->binLocations()->count();
+ }
+
+ /**
+ * Get total inventory value.
+ *
+ * @return float
+ */
+ public function getTotalInventoryValue()
+ {
+ return $this->inventories()
+ ->join('pallet_products', 'pallet_inventories.product_uuid', '=', 'pallet_products.uuid')
+ ->leftJoin('pallet_product_variants', 'pallet_inventories.variant_uuid', '=', 'pallet_product_variants.uuid')
+ ->selectRaw('SUM(pallet_inventories.quantity * COALESCE(pallet_product_variants.sale_price, pallet_products.sale_price, pallet_inventories.unit_cost, 0)) as total_value')
+ ->value('total_value') ?? 0;
+ }
+
+ /**
+ * Get the formatted address from the linked Place.
+ */
+ public function getAddressAttribute(): ?string
+ {
+ return $this->place ? $this->place->address : null;
+ }
+
+ /**
+ * Get available bin locations.
+ *
+ * @return \Illuminate\Database\Eloquent\Collection
+ */
+ public function getAvailableBins()
+ {
+ return $this->binLocations()
+ ->where('status', 'active')
+ ->whereRaw('current_volume < capacity')
+ ->get();
+ }
+
+ /**
+ * Find optimal bin for product.
+ *
+ * @param Product $product
+ * @param float $volume
+ *
+ * @return BinLocation|null
+ */
+ public function findOptimalBin($product, $volume = 0)
+ {
+ return $this->binLocations()
+ ->where('status', 'active')
+ ->where('is_pickable', true)
+ ->whereRaw('(capacity - current_volume) >= ?', [$volume])
+ ->orderBy('priority', 'desc')
+ ->first();
+ }
+
+ /**
+ * Configure Spatie activity log options.
+ * Logs only the specified attributes when they change (dirty only).
+ */
+ public function getActivitylogOptions(): LogOptions
+ {
+ return LogOptions::defaults()
+ ->logOnly([
+ 'name',
+ 'code',
+ 'type',
+ 'status',
+ 'is_active',
+ 'capacity',
+ ])
+ ->logOnlyDirty()
+ ->dontSubmitEmptyLogs();
+ }
}
diff --git a/server/src/Models/WarehouseDock.php b/server/src/Models/WarehouseDock.php
index 48904ee5..7ef934b5 100644
--- a/server/src/Models/WarehouseDock.php
+++ b/server/src/Models/WarehouseDock.php
@@ -101,6 +101,6 @@ public function createdBy()
*/
public function warehouse()
{
- return $this->belongsTo(Place::class, 'warehouse_uuid', 'uuid');
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid', 'uuid');
}
}
diff --git a/server/src/Models/WarehouseSection.php b/server/src/Models/WarehouseSection.php
index b3c38ceb..60a0f01f 100644
--- a/server/src/Models/WarehouseSection.php
+++ b/server/src/Models/WarehouseSection.php
@@ -82,7 +82,7 @@ public function createdBy()
*/
public function warehouse()
{
- return $this->belongsTo(Place::class, 'warehouse_uuid', 'uuid');
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid', 'uuid');
}
/**
diff --git a/server/src/Models/WarehouseZone.php b/server/src/Models/WarehouseZone.php
new file mode 100644
index 00000000..a53e60e0
--- /dev/null
+++ b/server/src/Models/WarehouseZone.php
@@ -0,0 +1,152 @@
+ Json::class,
+ 'temperature_range' => Json::class,
+ 'temperature_controlled' => 'boolean',
+ 'capacity' => 'decimal:2',
+ 'current_utilization' => 'decimal:2',
+ ];
+
+ /**
+ * Dynamic attributes that are appended to object.
+ *
+ * @var array
+ */
+ protected $appends = ['utilization_percentage'];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['warehouse'];
+
+ /**
+ * Searchable columns.
+ *
+ * @var array
+ */
+ protected $searchableColumns = ['name', 'code', 'type', 'status'];
+
+ /**
+ * Get the warehouse.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function warehouse()
+ {
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get bin locations in this zone.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function binLocations()
+ {
+ return $this->hasMany(BinLocation::class, 'zone_uuid');
+ }
+
+ /**
+ * Get aisles in this zone.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function aisles()
+ {
+ return $this->hasMany(WarehouseAisle::class, 'zone_uuid');
+ }
+
+ /**
+ * Get utilization percentage.
+ *
+ * @return float
+ */
+ public function getUtilizationPercentageAttribute()
+ {
+ if (!$this->capacity || $this->capacity == 0) {
+ return 0;
+ }
+
+ return round(($this->current_utilization / $this->capacity) * 100, 2);
+ }
+
+ /**
+ * Boot the model.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ if (!$model->status) {
+ $model->status = 'active';
+ }
+ if (!$model->type) {
+ $model->type = 'general'; // general, receiving, shipping, staging, returns, cold_storage
+ }
+ if (!isset($model->temperature_controlled)) {
+ $model->temperature_controlled = false;
+ }
+ if (!$model->current_utilization) {
+ $model->current_utilization = 0;
+ }
+ });
+ }
+}
diff --git a/server/src/Models/Wave.php b/server/src/Models/Wave.php
new file mode 100644
index 00000000..1493775a
--- /dev/null
+++ b/server/src/Models/Wave.php
@@ -0,0 +1,188 @@
+ Json::class,
+ 'priority' => 'integer',
+ 'scheduled_at' => 'datetime',
+ 'started_at' => 'datetime',
+ 'completed_at' => 'datetime',
+ ];
+
+ /**
+ * Dynamic attributes that are appended to object.
+ *
+ * @var array
+ */
+ protected $appends = ['total_pick_lists', 'completed_pick_lists'];
+
+ /**
+ * Relationships to eager load.
+ *
+ * @var array
+ */
+ protected $with = ['warehouse'];
+
+ /**
+ * Searchable columns.
+ *
+ * @var array
+ */
+ protected $searchableColumns = ['wave_number', 'status', 'type', 'notes'];
+
+ /**
+ * Get the warehouse.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function warehouse()
+ {
+ return $this->belongsTo(Warehouse::class, 'warehouse_uuid');
+ }
+
+ /**
+ * Get the pick lists in this wave.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function pickLists()
+ {
+ return $this->hasMany(PickList::class, 'wave_uuid');
+ }
+
+ /**
+ * Get total pick lists count.
+ *
+ * @return int
+ */
+ public function getTotalPickListsAttribute()
+ {
+ return $this->pickLists()->count();
+ }
+
+ /**
+ * Get completed pick lists count.
+ *
+ * @return int
+ */
+ public function getCompletedPickListsAttribute()
+ {
+ return $this->pickLists()->where('status', 'completed')->count();
+ }
+
+ /**
+ * Start the wave.
+ *
+ * @return bool
+ */
+ public function start()
+ {
+ $this->status = 'in_progress';
+ $this->started_at = now();
+
+ return $this->save();
+ }
+
+ /**
+ * Complete the wave.
+ *
+ * @return bool
+ */
+ public function complete()
+ {
+ $this->status = 'completed';
+ $this->completed_at = now();
+
+ return $this->save();
+ }
+
+ /**
+ * Release the wave (create pick lists).
+ *
+ * @return bool
+ */
+ public function release()
+ {
+ $this->status = 'released';
+
+ return $this->save();
+ }
+
+ /**
+ * Boot the model.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($model) {
+ if (!$model->wave_number) {
+ $model->wave_number = 'WAVE-' . strtoupper(uniqid());
+ }
+ if (!$model->status) {
+ $model->status = 'pending';
+ }
+ if (!$model->type) {
+ $model->type = 'standard'; // standard, express, bulk
+ }
+ if (!$model->priority) {
+ $model->priority = 5;
+ }
+ });
+ }
+}
diff --git a/server/src/Providers/PalletServiceProvider.php b/server/src/Providers/PalletServiceProvider.php
index c9eb319f..5b158cd7 100644
--- a/server/src/Providers/PalletServiceProvider.php
+++ b/server/src/Providers/PalletServiceProvider.php
@@ -6,15 +6,15 @@
use Fleetbase\Providers\CoreServiceProvider;
if (!class_exists(CoreServiceProvider::class)) {
- throw new \Exception('Storefront cannot be loaded without `fleetbase/core-api` installed!');
+ throw new \Exception('Pallet cannot be loaded without `fleetbase/core-api` installed!');
}
if (!class_exists(FleetOpsServiceProvider::class)) {
- throw new \Exception('Storefront cannot be loaded without `fleetbase/fleetops-api` installed!');
+ throw new \Exception('Pallet cannot be loaded without `fleetbase/fleetops-api` installed!');
}
/**
- * Billing extension service provider.
+ * Pallet WMS extension service provider.
*/
class PalletServiceProvider extends CoreServiceProvider
{
diff --git a/server/src/Services/AuditService.php b/server/src/Services/AuditService.php
new file mode 100644
index 00000000..6d6f66e6
--- /dev/null
+++ b/server/src/Services/AuditService.php
@@ -0,0 +1,258 @@
+log(
+ * $stockAdjustment,
+ * AuditEventType::STOCK_ADJUSTMENT,
+ * 'Stock Adjusted',
+ * 'damage',
+ * $stockAdjustment->reason,
+ * ['before_quantity' => 10, 'after_quantity' => 8]
+ * );
+ */
+class AuditService
+{
+ /**
+ * Log a general operational audit event.
+ *
+ * @param Model $subject The primary model this event relates to
+ * @param string $eventType Machine-readable event category (AuditEventType constant)
+ * @param string $action Human-readable label for the event
+ * @param string|null $type Secondary classification within the event type
+ * @param string|null $reason Reason code or user-supplied explanation
+ * @param array $meta Arbitrary structured context data
+ * @param array $oldValues State snapshot before the event
+ * @param array $newValues State snapshot after the event
+ * @param string|null $comments Free-form notes
+ */
+ public function log(
+ Model $subject,
+ string $eventType,
+ string $action,
+ ?string $type = null,
+ ?string $reason = null,
+ array $meta = [],
+ array $oldValues = [],
+ array $newValues = [],
+ ?string $comments = null,
+ ): Audit {
+ $performedByUuid = Auth::id() ?? null;
+ $companyUuid = $subject->company_uuid ?? null;
+
+ return Audit::create([
+ 'company_uuid' => $companyUuid,
+ 'created_by_uuid' => $performedByUuid,
+ 'performed_by_uuid' => $performedByUuid,
+ 'auditable_uuid' => $subject->uuid,
+ 'auditable_type' => get_class($subject),
+ 'event_type' => $eventType,
+ 'action' => $action,
+ 'type' => $type,
+ 'reason' => $reason,
+ 'comments' => $comments,
+ 'old_values' => $oldValues ?: null,
+ 'new_values' => $newValues ?: null,
+ 'meta' => $meta ?: null,
+ 'completed_at' => now(),
+ ]);
+ }
+
+ /**
+ * Log a stock adjustment event.
+ */
+ public function logStockAdjustment(\Fleetbase\Pallet\Models\StockAdjustment $adjustment): Audit
+ {
+ return $this->log(
+ $adjustment,
+ AuditEventType::STOCK_ADJUSTMENT,
+ 'Stock Adjusted',
+ $adjustment->type,
+ $adjustment->reason,
+ [
+ 'product_uuid' => $adjustment->product_uuid,
+ 'before_quantity' => $adjustment->before_quantity,
+ 'after_quantity' => $adjustment->after_quantity,
+ 'quantity_delta' => $adjustment->quantity,
+ ]
+ );
+ }
+
+ /**
+ * Log a cycle count completion event.
+ */
+ public function logCycleCountCompleted(\Fleetbase\Pallet\Models\CycleCount $cycleCount): Audit
+ {
+ return $this->log(
+ $cycleCount,
+ AuditEventType::CYCLE_COUNT,
+ 'Cycle Count Completed',
+ 'completed',
+ null,
+ [
+ 'count_number' => $cycleCount->count_number,
+ 'warehouse_uuid' => $cycleCount->warehouse_uuid,
+ 'total_items' => $cycleCount->total_items,
+ 'discrepancies_count' => $cycleCount->discrepancies_count,
+ 'accuracy_percentage' => $cycleCount->accuracy_percentage,
+ ]
+ );
+ }
+
+ /**
+ * Log a cycle count approval event (discrepancies applied to inventory).
+ */
+ public function logCycleCountApproved(\Fleetbase\Pallet\Models\CycleCount $cycleCount): Audit
+ {
+ return $this->log(
+ $cycleCount,
+ AuditEventType::CYCLE_COUNT,
+ 'Cycle Count Approved',
+ 'approved',
+ null,
+ [
+ 'count_number' => $cycleCount->count_number,
+ 'warehouse_uuid' => $cycleCount->warehouse_uuid,
+ 'discrepancies_count' => $cycleCount->discrepancies_count,
+ 'accuracy_percentage' => $cycleCount->accuracy_percentage,
+ ]
+ );
+ }
+
+ /**
+ * Log a purchase order received event.
+ *
+ * @param array $receivedItems Array of received line items with quantities
+ */
+ public function logPurchaseOrderReceived(\Fleetbase\Pallet\Models\PurchaseOrder $purchaseOrder, array $receivedItems = []): Audit
+ {
+ return $this->log(
+ $purchaseOrder,
+ AuditEventType::PO_RECEIVED,
+ 'Purchase Order Received',
+ 'received',
+ null,
+ [
+ 'order_number' => $purchaseOrder->public_id,
+ 'supplier_uuid' => $purchaseOrder->supplier_uuid,
+ 'received_items' => $receivedItems,
+ ]
+ );
+ }
+
+ /**
+ * Log a sales order fulfilled event.
+ *
+ * @param array $fulfilledItems Array of fulfilled line items with quantities
+ */
+ public function logSalesOrderFulfilled(\Fleetbase\Pallet\Models\SalesOrder $salesOrder, array $fulfilledItems = []): Audit
+ {
+ return $this->log(
+ $salesOrder,
+ AuditEventType::SO_FULFILLED,
+ 'Sales Order Fulfilled',
+ 'fulfilled',
+ null,
+ [
+ 'order_number' => $salesOrder->public_id,
+ 'customer_uuid' => $salesOrder->customer_uuid,
+ 'fulfilled_items' => $fulfilledItems,
+ ]
+ );
+ }
+
+ /**
+ * Log a stock transfer initiated event.
+ */
+ public function logStockTransferInitiated(\Fleetbase\Pallet\Models\StockTransfer $transfer): Audit
+ {
+ return $this->log(
+ $transfer,
+ AuditEventType::STOCK_TRANSFER,
+ 'Stock Transfer Initiated',
+ 'initiated',
+ null,
+ [
+ 'from_warehouse_uuid' => $transfer->from_warehouse_uuid,
+ 'to_warehouse_uuid' => $transfer->to_warehouse_uuid,
+ 'status' => $transfer->status,
+ ]
+ );
+ }
+
+ /**
+ * Log a stock transfer completed event.
+ */
+ public function logStockTransferCompleted(\Fleetbase\Pallet\Models\StockTransfer $transfer): Audit
+ {
+ return $this->log(
+ $transfer,
+ AuditEventType::STOCK_TRANSFER,
+ 'Stock Transfer Completed',
+ 'completed',
+ null,
+ [
+ 'from_warehouse_uuid' => $transfer->from_warehouse_uuid,
+ 'to_warehouse_uuid' => $transfer->to_warehouse_uuid,
+ ]
+ );
+ }
+
+ /**
+ * Log an inventory creation event.
+ */
+ public function logInventoryCreated(\Fleetbase\Pallet\Models\Inventory $inventory): Audit
+ {
+ return $this->log(
+ $inventory,
+ AuditEventType::INVENTORY_CREATED,
+ 'Inventory Created',
+ null,
+ null,
+ [
+ 'product_uuid' => $inventory->product_uuid,
+ 'warehouse_uuid' => $inventory->warehouse_uuid,
+ 'quantity' => $inventory->quantity,
+ 'unit_price' => $inventory->unit_price,
+ ]
+ );
+ }
+
+ /**
+ * Log a batch creation event.
+ */
+ public function logBatchCreated(\Fleetbase\Pallet\Models\Batch $batch): Audit
+ {
+ return $this->log(
+ $batch,
+ AuditEventType::BATCH_CREATED,
+ 'Batch Created',
+ null,
+ null,
+ [
+ 'batch_number' => $batch->batch_number,
+ 'product_uuid' => $batch->product_uuid,
+ 'quantity' => $batch->quantity,
+ 'expiry_date_at' => $batch->expiry_date_at,
+ ]
+ );
+ }
+}
diff --git a/server/src/Traits/HasOperationalAuditTrail.php b/server/src/Traits/HasOperationalAuditTrail.php
new file mode 100644
index 00000000..04b1265f
--- /dev/null
+++ b/server/src/Traits/HasOperationalAuditTrail.php
@@ -0,0 +1,120 @@
+logAuditEvent(
+ * AuditEventType::STOCK_ADJUSTMENT,
+ * 'Stock Adjusted',
+ * 'damage',
+ * $stockAdjustment->reason,
+ * ['before' => $before, 'after' => $after]
+ * );
+ */
+trait HasOperationalAuditTrail
+{
+ /**
+ * Log an operational audit event for this model instance.
+ *
+ * @param string $eventType Machine-readable event category (use AuditEventType constants)
+ * @param string $action Human-readable label for the event (e.g. "Stock Adjusted")
+ * @param string|null $type Secondary classification within the event type (e.g. "damage")
+ * @param string|null $reason Reason code or user-supplied explanation
+ * @param array $meta Arbitrary structured context data
+ * @param array $oldValues Snapshot of relevant values before the event
+ * @param array $newValues Snapshot of relevant values after the event
+ * @param string|null $comments Free-form notes
+ */
+ public function logAuditEvent(
+ string $eventType,
+ string $action,
+ ?string $type = null,
+ ?string $reason = null,
+ array $meta = [],
+ array $oldValues = [],
+ array $newValues = [],
+ ?string $comments = null,
+ ): Audit {
+ $performedByUuid = Auth::id() ?? null;
+
+ return Audit::create([
+ 'company_uuid' => $this->company_uuid ?? null,
+ 'created_by_uuid' => $performedByUuid,
+ 'performed_by_uuid' => $performedByUuid,
+ 'auditable_uuid' => $this->uuid,
+ 'auditable_type' => get_class($this),
+ 'event_type' => $eventType,
+ 'action' => $action,
+ 'type' => $type,
+ 'reason' => $reason,
+ 'comments' => $comments,
+ 'old_values' => $oldValues ?: null,
+ 'new_values' => $newValues ?: null,
+ 'meta' => $meta ?: null,
+ 'completed_at' => now(),
+ ]);
+ }
+
+ /**
+ * Log a scheduled operational audit event for this model instance.
+ * Used for events that have a planned execution time (e.g. cycle counts).
+ *
+ * @param string $eventType Machine-readable event category
+ * @param string $action Human-readable label for the event
+ * @param \Carbon\Carbon $scheduledAt When the event is scheduled to occur
+ * @param string|null $type Secondary classification
+ * @param string|null $reason Reason code or explanation
+ * @param array $meta Arbitrary structured context data
+ */
+ public function logScheduledAuditEvent(
+ string $eventType,
+ string $action,
+ \Carbon\Carbon $scheduledAt,
+ ?string $type = null,
+ ?string $reason = null,
+ array $meta = [],
+ ): Audit {
+ $performedByUuid = Auth::id() ?? null;
+
+ return Audit::create([
+ 'company_uuid' => $this->company_uuid ?? null,
+ 'created_by_uuid' => $performedByUuid,
+ 'performed_by_uuid' => $performedByUuid,
+ 'auditable_uuid' => $this->uuid,
+ 'auditable_type' => get_class($this),
+ 'event_type' => $eventType,
+ 'action' => $action,
+ 'type' => $type,
+ 'reason' => $reason,
+ 'meta' => $meta ?: null,
+ 'scheduled_at' => $scheduledAt,
+ ]);
+ }
+
+ /**
+ * Retrieve all audit trail entries for this model instance.
+ *
+ * @return \Illuminate\Database\Eloquent\Collection
+ */
+ public function auditTrail()
+ {
+ return Audit::forSubject($this->uuid, get_class($this))
+ ->orderBy('created_at', 'desc')
+ ->get();
+ }
+}
diff --git a/server/src/routes.php b/server/src/routes.php
index 9f5b8b54..fa74d9d4 100644
--- a/server/src/routes.php
+++ b/server/src/routes.php
@@ -17,39 +17,132 @@
function ($router) {
/*
|--------------------------------------------------------------------------
- | Internal Billing API Routes
+ | Internal API Routes
|--------------------------------------------------------------------------
|
- | Primary internal routes for console.
+ | Primary internal routes for the Fleetbase console.
*/
$router->prefix(config('pallet.api.routing.internal_prefix', 'int'))->group(
function ($router) {
$router->group(
['prefix' => 'v1', 'middleware' => ['fleetbase.protected']],
function ($router) {
- $router->fleetbaseRoutes('audits');
+ /*
+ |--------------------------------------------------------------
+ | Audit Trail — Read-Only
+ |--------------------------------------------------------------
+ | Audit entries are immutable and written programmatically by
+ | the system. Only index and show are permitted via the API.
+ | The event-types endpoint returns available filter categories.
+ */
+ $router->get('audits', 'AuditController@index');
+ $router->get('audits/event-types', 'AuditController@eventTypes');
+ $router->get('audits/{id}', 'AuditController@show');
+
+ /*
+ |--------------------------------------------------------------
+ | Batches
+ |--------------------------------------------------------------
+ */
$router->fleetbaseRoutes('batches', function ($router, $controller) {
$router->delete('bulk-delete', $controller('bulkDelete'));
});
+
+ /*
+ |--------------------------------------------------------------
+ | Inventory
+ |--------------------------------------------------------------
+ */
$router->fleetbaseRoutes('inventories', function ($router, $controller) {
$router->delete('bulk-delete', $controller('bulkDelete'));
});
+
+ /*
+ |--------------------------------------------------------------
+ | Products
+ |--------------------------------------------------------------
+ */
$router->fleetbaseRoutes('products', function ($router, $controller) {
$router->delete('bulk-delete', $controller('bulkDelete'));
});
+ $router->get('products/{product}/variants', 'ProductVariantController@index');
+ $router->post('products/{product}/variants', 'ProductVariantController@store');
+ $router->put('products/{product}/variants/{variant}', 'ProductVariantController@update');
+ $router->delete('products/{product}/variants/{variant}', 'ProductVariantController@destroy');
+
+ /*
+ |--------------------------------------------------------------
+ | Sales Orders + Line Items
+ |--------------------------------------------------------------
+ */
$router->fleetbaseRoutes('sales-orders', function ($router, $controller) {
$router->delete('bulk-delete', $controller('bulkDelete'));
});
+ // Fulfill workflow
+ $router->post('sales-orders/{id}/fulfill', 'SalesOrderController@fulfill');
+ // Nested line-item routes for Sales Orders
+ $router->get('sales-orders/{salesOrder}/items', 'SalesOrderItemController@index');
+ $router->post('sales-orders/{salesOrder}/items', 'SalesOrderItemController@store');
+ $router->put('sales-orders/{salesOrder}/items/{item}', 'SalesOrderItemController@update');
+ $router->delete('sales-orders/{salesOrder}/items/{item}', 'SalesOrderItemController@destroy');
+
+ /*
+ |--------------------------------------------------------------
+ | Purchase Orders + Line Items
+ |--------------------------------------------------------------
+ */
$router->fleetbaseRoutes('purchase-orders', function ($router, $controller) {
$router->delete('bulk-delete', $controller('bulkDelete'));
});
+ // Receive workflow
+ $router->post('purchase-orders/{id}/receive', 'PurchaseOrderController@receive');
+ // Nested line-item routes for Purchase Orders
+ $router->get('purchase-orders/{purchaseOrder}/items', 'PurchaseOrderItemController@index');
+ $router->post('purchase-orders/{purchaseOrder}/items', 'PurchaseOrderItemController@store');
+ $router->put('purchase-orders/{purchaseOrder}/items/{item}', 'PurchaseOrderItemController@update');
+ $router->delete('purchase-orders/{purchaseOrder}/items/{item}', 'PurchaseOrderItemController@destroy');
+
+ /*
+ |--------------------------------------------------------------
+ | Stock Adjustments
+ |--------------------------------------------------------------
+ */
$router->fleetbaseRoutes('stock-adjustments');
+
+ /*
+ |--------------------------------------------------------------
+ | Suppliers
+ |--------------------------------------------------------------
+ */
$router->fleetbaseRoutes('suppliers', function ($router, $controller) {
$router->delete('bulk-delete', $controller('bulkDelete'));
});
+
+ /*
+ |--------------------------------------------------------------
+ | Warehouses
+ |--------------------------------------------------------------
+ */
$router->fleetbaseRoutes('warehouses', function ($router, $controller) {
$router->delete('bulk-delete', $controller('bulkDelete'));
});
+
+ /*
+ |--------------------------------------------------------------
+ | Dashboard Metrics
+ |--------------------------------------------------------------
+ | Read-only aggregated data endpoints consumed by the Pallet
+ | dashboard widgets. All are scoped to the authenticated company.
+ */
+ $router->prefix('metrics')->group(function ($router) {
+ $router->get('inventory-summary', 'MetricsController@inventorySummary');
+ $router->get('low-stock', 'MetricsController@lowStock');
+ $router->get('po-status', 'MetricsController@poStatus');
+ $router->get('so-status', 'MetricsController@soStatus');
+ $router->get('stock-value', 'MetricsController@stockValue');
+ $router->get('expiring-stock', 'MetricsController@expiringStock');
+ $router->get('top-products', 'MetricsController@topProducts');
+ });
}
);
}
diff --git a/tests/integration/helpers/point-coordinates-test.js b/tests/integration/helpers/point-coordinates-test.js
deleted file mode 100644
index ce6fb2b6..00000000
--- a/tests/integration/helpers/point-coordinates-test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { module, test } from 'qunit';
-import { setupRenderingTest } from 'dummy/tests/helpers';
-import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
-
-module('Integration | Helper | point-coordinates', function (hooks) {
- setupRenderingTest(hooks);
-
- // TODO: Replace this with your real tests.
- test('it renders', async function (assert) {
- this.set('inputValue', '1234');
-
- await render(hbs`{{point-coordinates this.inputValue}}`);
-
- assert.dom(this.element).hasText('1234');
- });
-});
diff --git a/tests/integration/helpers/point-to-coordinates-test.js b/tests/integration/helpers/point-to-coordinates-test.js
deleted file mode 100644
index 4d69e9b1..00000000
--- a/tests/integration/helpers/point-to-coordinates-test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { module, test } from 'qunit';
-import { setupRenderingTest } from 'dummy/tests/helpers';
-import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
-
-module('Integration | Helper | point-to-coordinates', function (hooks) {
- setupRenderingTest(hooks);
-
- // TODO: Replace this with your real tests.
- test('it renders', async function (assert) {
- this.set('inputValue', '1234');
-
- await render(hbs`{{point-to-coordinates this.inputValue}}`);
-
- assert.dom(this.element).hasText('1234');
- });
-});
diff --git a/translations/en-us.yaml b/translations/en-us.yaml
index 6a3c9ca8..3a7d961e 100644
--- a/translations/en-us.yaml
+++ b/translations/en-us.yaml
@@ -1,2 +1,323 @@
pallet:
- extension-name: Pallet
\ No newline at end of file
+ extension-name: Pallet
+
+# Resource titles (used in page headers and table titles)
+resource:
+ inventory: Inventory
+ products: Products
+ purchase-orders: Purchase Orders
+ sales-orders: Sales Orders
+ suppliers: Suppliers
+ warehouses: Warehouses
+ audits: Audit Trail
+ reports: Reports
+ batches: Batches
+
+# Common / shared labels
+common:
+ active: Active
+ address: Address
+ city: City
+ country: Country
+ description: Description
+ edit-resource-name: Edit {name}
+ email: Email
+ height: Height
+ id: ID
+ inactive: Inactive
+ internal-id: Internal ID
+ length: Length
+ metadata: Metadata
+ name: Name
+ no: No
+ notes: Notes
+ phone: Phone
+ postal-code: Postal Code
+ select-status: Select Status
+ state: State / Province
+ status: Status
+ street1: Street 1
+ street2: Street 2
+ weight: Weight
+ width: Width
+ yes: Yes
+ save: Save
+ cancel: Cancel
+ delete: Delete
+ edit: Edit
+ view: View
+ create: Create
+ search: Search
+ filter: Filter
+ export: Export
+ import: Import
+ actions: Actions
+ created-at: Created At
+ updated-at: Updated At
+ clear_filters: Clear Filters
+ no-records: No records found
+ loading: Loading...
+
+# Product translations
+product:
+ sections:
+ details: Details
+ dimensions: Dimensions
+ inventory-info: Inventory Information
+ inventory-settings: Inventory Settings
+ pricing: Pricing
+ fields:
+ available-stock: Available Stock
+ barcode: Barcode
+ category: Category
+ declared-value: Declared Value
+ is-lot-tracked: Lot Tracked
+ is-perishable: Perishable
+ is-serialized: Serialized
+ lot-tracked: Track Lot Numbers
+ name-placeholder: Product name
+ perishable: Perishable
+ perishable-item: Perishable Item
+ reorder-point: Reorder Point
+ reorder-quantity: Reorder Quantity
+ requires-qc: Requires QC
+ requires-quality-check: Requires Quality Check
+ sale-price: Sale Price
+ select-category: Select Category
+ select-supplier: Select Supplier
+ serialized: Serialized
+ shelf-life-days: Shelf Life (Days)
+ sku: SKU
+ supplier: Supplier
+ total-stock: Total Stock
+ track-lot-numbers: Track Lot Numbers
+ track-serial-numbers: Track Serial Numbers
+ tracking: Tracking
+ unit-cost: Unit Cost
+ unit-price: Unit Price
+
+# Inventory translations
+inventory:
+ sections:
+ details: Details
+ location: Location
+ tracking: Tracking
+ fields:
+ available-quantity: Available Quantity
+ batch-number: Batch Number
+ bin-location: Bin Location
+ expiry-date: Expiry Date
+ last-counted: Last Counted
+ lot-number: Lot Number
+ max-quantity: Max Quantity
+ min-quantity: Min Quantity
+ product: Product
+ quantity: Quantity
+ received-at: Received At
+ reorder-point: Reorder Point
+ reserved-quantity: Reserved Quantity
+ select-bin: Select Bin Location
+ select-product: Select Product
+ select-supplier: Select Supplier
+ select-warehouse: Select Warehouse
+ select-zone: Select Zone
+ serial-number: Serial Number
+ supplier: Supplier
+ unit-cost: Unit Cost
+ uom: Unit of Measure
+ warehouse: Warehouse
+ zone: Zone
+
+# Warehouse translations
+warehouse:
+ sections:
+ address: Address
+ capacity: Capacity
+ details: Details
+ fields:
+ capacity: Capacity
+ code: Warehouse Code
+ current-utilization: Current Utilization
+ email: Email
+ floor-area: Floor Area (sqm)
+ is-3pl: Third-Party Logistics
+ is-active: Active
+ is-default: Default Warehouse
+ name: Warehouse Name
+ phone: Phone
+ status: Status
+ third-party-logistics: Third-Party Logistics (3PL)
+ timezone: Timezone
+ total-bins: Total Bins
+ total-docks: Total Docks
+ total-zones: Total Zones
+ type: Warehouse Type
+ utilization: Utilization
+
+# Supplier translations
+supplier:
+ sections:
+ details: Details
+ fields:
+ name: Supplier Name
+ select-type: Select Supplier Type
+ type: Supplier Type
+
+# Purchase Order translations
+purchase-order:
+ sections:
+ details: Details
+ line-items: Line Items
+ receive: Receive Goods
+ fields:
+ expected-delivery: Expected Delivery Date
+ order-number: Order Number
+ select-supplier: Select Supplier
+ select-warehouse: Select Warehouse
+ supplier: Supplier
+ warehouse: Warehouse
+ item-count: Item Count
+ total-value: Total Value
+ actions:
+ receive: Receive Goods
+ view: View Purchase Order
+ edit: Edit Purchase Order
+ delete: Delete Purchase Order
+ receive:
+ title: Receive Purchase Order
+ summary: Order Summary
+ po-number: PO Number
+ supplier: Supplier
+ reference: Reference
+ expected-delivery: Expected Delivery
+ total-items: Total Items
+ receive-items: Receive Items
+ ordered: Ordered
+ previously-received: Previously Received
+ outstanding: Outstanding
+ receive-now: Receive Now
+ lot-number: Lot Number (optional)
+ expiry-date: Expiry Date (optional)
+ notes: Notes (optional)
+ submit: Confirm Receipt
+ all-received: All items on this purchase order have already been received.
+ success: Purchase order received successfully. Inventory has been updated.
+ error: Failed to receive purchase order. Please try again.
+ line-items:
+ title: Line Items
+ add: Add Line Item
+ product: Product
+ sku: SKU
+ quantity: Quantity
+ quantity-received: Qty Received
+ unit-price: Unit Price
+ total-price: Total Price
+ status: Status
+ notes: Notes
+ lot-number: Lot Number
+ serial-number: Serial Number
+ expiry-date: Expiry Date
+ unit-of-measure: Unit of Measure
+
+# Sales Order translations
+sales-order:
+ sections:
+ details: Details
+ line-items: Line Items
+ fulfill: Fulfill Order
+ fields:
+ customer: Customer
+ expected-shipment: Expected Shipment Date
+ order-number: Order Number
+ select-customer: Select Customer
+ select-warehouse: Select Warehouse
+ warehouse: Warehouse
+ item-count: Item Count
+ total-value: Total Value
+ actions:
+ fulfill: Fulfill Order
+ view: View Sales Order
+ edit: Edit Sales Order
+ delete: Delete Sales Order
+ fulfill:
+ title: Fulfill Sales Order
+ summary: Order Summary
+ so-number: SO Number
+ customer-ref: Customer Reference
+ reference: Reference
+ expected-delivery: Expected Delivery
+ total-items: Total Items
+ fulfill-items: Fulfill Items
+ ordered: Ordered
+ previously-fulfilled: Previously Fulfilled
+ outstanding: Outstanding
+ fulfill-now: Fulfill Now
+ notes: Notes (optional)
+ status: Status
+ submit: Confirm Fulfillment
+ fefo-notice: Inventory will be deducted using FEFO (First Expired, First Out) unless a specific inventory record is selected.
+ all-fulfilled: All items on this sales order have already been fulfilled.
+ success: Sales order fulfilled successfully. Inventory has been deducted.
+ error: Failed to fulfill sales order. Please try again.
+ line-items:
+ title: Line Items
+ add: Add Line Item
+ product: Product
+ sku: SKU
+ quantity: Quantity
+ quantity-fulfilled: Qty Fulfilled
+ unit-price: Unit Price
+ total-price: Total Price
+ status: Status
+ notes: Notes
+ lot-number: Lot Number
+ serial-number: Serial Number
+ unit-of-measure: Unit of Measure
+
+# Batch translations
+batch:
+ sections:
+ details: Details
+ fields:
+ batch-number: Batch Number
+ expiry-date: Expiry Date
+ product: Product
+ production-date: Production Date
+ select-product: Select Product
+ select-supplier: Select Supplier
+ supplier: Supplier
+
+# Audit Trail translations
+# The Pallet audit trail captures intentional WMS operational events (stock adjustments,
+# cycle counts, PO receipts, SO fulfilments, stock transfers). It is NOT a generic
+# data-change log — that is handled by Spatie Activity Log at the framework level.
+audit:
+ title: Audit Trail
+ search_placeholder: Search audit events...
+ all_events: All Events
+ filter_event_type: Event Type
+ no_records: No audit events found
+ sections:
+ details: Details
+ fields:
+ event-type: Event Type
+ action: Action
+ subject-type: Subject Type
+ subject-id: Subject ID
+ performed-by: Performed By
+ reason: Reason
+ comments: Comments
+ meta: Event Data
+ date: Date
+ scheduled-at: Scheduled At
+ completed-at: Completed At
+ event-types:
+ stock_adjustment: Stock Adjustment
+ cycle_count: Cycle Count
+ po_received: PO Received
+ so_fulfilled: SO Fulfilled
+ stock_transfer: Stock Transfer
+ inventory_receive: Inventory Received
+ batch_created: Batch Created
+ product_created: Product Created
+ warehouse_created: Warehouse Created
\ No newline at end of file