From 408e0eb53ac4deb28e660584d443a492c8dd8ee4 Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Wed, 12 Jun 2024 11:10:51 +0200 Subject: [PATCH 01/17] Consistently populating Adyen_paymentMethod (#1088) --- jest/__mocks__/dw/crypto/Encoding.js | 1 + jest/__mocks__/dw/crypto/MessageDigest.js | 1 + jest/__mocks__/dw/svc/LocalServiceRegistry.js | 1 + jest/__mocks__/dw/util/Bytes.js | 1 + jest/__mocks__/dw/util/Currency.js | 1 + jest/__mocks__/dw/util/UUIDUtils.js | 1 + jest/sfccCartridgeMocks.js | 4 +- .../adyen/scripts/payments/adyenCheckout.js | 5 -- .../adyen/utils/__tests__/adyenHelper.test.js | 69 +++++++++++++++++++ .../cartridge/adyen/utils/adyenHelper.js | 14 ++-- 10 files changed, 87 insertions(+), 11 deletions(-) create mode 100644 jest/__mocks__/dw/crypto/Encoding.js create mode 100644 jest/__mocks__/dw/crypto/MessageDigest.js create mode 100644 jest/__mocks__/dw/svc/LocalServiceRegistry.js create mode 100644 jest/__mocks__/dw/util/Bytes.js create mode 100644 jest/__mocks__/dw/util/Currency.js create mode 100644 jest/__mocks__/dw/util/UUIDUtils.js create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/adyenHelper.test.js diff --git a/jest/__mocks__/dw/crypto/Encoding.js b/jest/__mocks__/dw/crypto/Encoding.js new file mode 100644 index 000000000..f4730ab8a --- /dev/null +++ b/jest/__mocks__/dw/crypto/Encoding.js @@ -0,0 +1 @@ +export const Encoding = jest.fn(); diff --git a/jest/__mocks__/dw/crypto/MessageDigest.js b/jest/__mocks__/dw/crypto/MessageDigest.js new file mode 100644 index 000000000..bbfbf0f80 --- /dev/null +++ b/jest/__mocks__/dw/crypto/MessageDigest.js @@ -0,0 +1 @@ +export const MessageDigest = jest.fn(); diff --git a/jest/__mocks__/dw/svc/LocalServiceRegistry.js b/jest/__mocks__/dw/svc/LocalServiceRegistry.js new file mode 100644 index 000000000..d2a245baf --- /dev/null +++ b/jest/__mocks__/dw/svc/LocalServiceRegistry.js @@ -0,0 +1 @@ +export const createService = jest.fn(); diff --git a/jest/__mocks__/dw/util/Bytes.js b/jest/__mocks__/dw/util/Bytes.js new file mode 100644 index 000000000..26a7f040e --- /dev/null +++ b/jest/__mocks__/dw/util/Bytes.js @@ -0,0 +1 @@ +export const Bytes = jest.fn(); diff --git a/jest/__mocks__/dw/util/Currency.js b/jest/__mocks__/dw/util/Currency.js new file mode 100644 index 000000000..0fcc8b358 --- /dev/null +++ b/jest/__mocks__/dw/util/Currency.js @@ -0,0 +1 @@ +export const getCurrency = jest.fn(); diff --git a/jest/__mocks__/dw/util/UUIDUtils.js b/jest/__mocks__/dw/util/UUIDUtils.js new file mode 100644 index 000000000..2d1ac18e7 --- /dev/null +++ b/jest/__mocks__/dw/util/UUIDUtils.js @@ -0,0 +1 @@ +export const createUUID = jest.fn(); diff --git a/jest/sfccCartridgeMocks.js b/jest/sfccCartridgeMocks.js index 162b335f5..4c5be1f95 100644 --- a/jest/sfccCartridgeMocks.js +++ b/jest/sfccCartridgeMocks.js @@ -389,4 +389,6 @@ jest.mock( getAllLineItems: jest.fn((lineItem) => lineItem), }), { virtual: true }, - ); \ No newline at end of file + ); + +jest.mock('*/cartridge/models/shipping/shippingMethod', () => jest.fn(), { virtual: true }); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js index c2ffd5a42..d9f9e36f8 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js @@ -51,11 +51,6 @@ function doPaymentsCall(order, paymentInstrument, paymentRequest) { if (!order) { return responseObject; } - // set custom payment method field to sync with OMS. - // for card payments (scheme) we will store the brand - order.custom.Adyen_paymentMethod = - paymentRequest?.paymentMethod?.brand || - paymentRequest?.paymentMethod?.type; paymentResponse.fullResponse = responseObject; paymentResponse.redirectObject = responseObject.action ? responseObject.action diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/adyenHelper.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/adyenHelper.test.js new file mode 100644 index 000000000..e178dd8c6 --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/adyenHelper.test.js @@ -0,0 +1,69 @@ +/* eslint-disable global-require */ +const savePaymentDetails = require('../adyenHelper').savePaymentDetails; +describe('savePaymentDetails', () => { + let paymentInstrument; + let order; + let result; + + beforeEach(() => { + paymentInstrument = { + paymentTransaction: { + custom: {} + }, + getCreditCardToken: jest.fn(), + setCreditCardToken: jest.fn() + }; + order = { + custom: {} + }; + result = {}; + }); + + it('should set the transactionID and Adyen_pspReference', () => { + result.pspReference = 'testReference'; + savePaymentDetails(paymentInstrument, order, result); + expect(paymentInstrument.paymentTransaction.transactionID).toBe('testReference'); + expect(paymentInstrument.paymentTransaction.custom.Adyen_pspReference).toBe('testReference'); + }); + + it('should set Adyen_paymentMethod from additionalData', () => { + result.additionalData = { paymentMethod: 'visa' }; + savePaymentDetails(paymentInstrument, order, result); + expect(paymentInstrument.paymentTransaction.custom.Adyen_paymentMethod).toBe('visa'); + expect(order.custom.Adyen_paymentMethod).toBe('visa'); + }); + + it('should set Adyen_paymentMethod from paymentMethod', () => { + result.paymentMethod = { type: 'mc' }; + savePaymentDetails(paymentInstrument, order, result); + expect(paymentInstrument.paymentTransaction.custom.Adyen_paymentMethod).toBe(JSON.stringify('mc')); + expect(order.custom.Adyen_paymentMethod).toBe(JSON.stringify('mc')); + }); + + it('should set the credit card token if not already exists', () => { + result.additionalData = { 'recurring.recurringDetailReference': 'token123' }; + paymentInstrument.getCreditCardToken.mockReturnValue(null); + savePaymentDetails(paymentInstrument, order, result); + expect(paymentInstrument.setCreditCardToken).toHaveBeenCalledWith('token123'); + }); + + it('should not set the credit card token if already exists', () => { + result.additionalData = { 'recurring.recurringDetailReference': 'token123' }; + paymentInstrument.getCreditCardToken.mockReturnValue('existingToken'); + savePaymentDetails(paymentInstrument, order, result); + expect(paymentInstrument.setCreditCardToken).not.toHaveBeenCalled(); + }); + + it('should set the authCode and Adyen_value', () => { + result.resultCode = 'Authorised'; + savePaymentDetails(paymentInstrument, order, result); + expect(paymentInstrument.paymentTransaction.custom.authCode).toBe('Authorised'); + expect(order.custom.Adyen_value).toBe('0'); + }); + + it('should set Adyen_donationToken if present', () => { + result.donationToken = 'donation-token-123'; + savePaymentDetails(paymentInstrument, order, result); + expect(paymentInstrument.paymentTransaction.custom.Adyen_donationToken).toBe('donation-token-123'); + }); +}); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js index 44a7e601b..ce53e913c 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js @@ -16,9 +16,8 @@ * This file is open source and available under the MIT license. * See the LICENSE file for more info. */ -const dwsvc = require('dw/svc'); -const dwsystem = require('dw/system'); -const dwutil = require('dw/util'); +const LocalServiceRegistry = require('dw/svc/LocalServiceRegistry'); +const Currency = require('dw/util/Currency'); const URLUtils = require('dw/web/URLUtils'); const Bytes = require('dw/util/Bytes'); const MessageDigest = require('dw/crypto/MessageDigest'); @@ -44,7 +43,7 @@ let adyenHelperObj = { let adyenService = null; try { - adyenService = dwsvc.LocalServiceRegistry.createService(service, { + adyenService = LocalServiceRegistry.createService(service, { createRequest(svc, args) { svc.setRequestMethod('POST'); if (args) { @@ -652,6 +651,7 @@ let adyenHelperObj = { }, // saves the payment details in the paymentInstrument's custom object + // set custom payment method field to sync with OMS savePaymentDetails(paymentInstrument, order, result) { paymentInstrument.paymentTransaction.transactionID = result.pspReference; paymentInstrument.paymentTransaction.custom.Adyen_pspReference = @@ -660,10 +660,14 @@ let adyenHelperObj = { if (result.additionalData?.paymentMethod) { paymentInstrument.paymentTransaction.custom.Adyen_paymentMethod = result.additionalData.paymentMethod; + order.custom.Adyen_paymentMethod = result.additionalData.paymentMethod; } else if (result.paymentMethod) { paymentInstrument.paymentTransaction.custom.Adyen_paymentMethod = JSON.stringify( result.paymentMethod.type, ); + order.custom.Adyen_paymentMethod = JSON.stringify( + result.paymentMethod.type, + ); } // For authenticated shoppers we are setting the token on other place already @@ -695,7 +699,7 @@ let adyenHelperObj = { // converts the currency value for the Adyen Checkout API getCurrencyValueForApi(amount) { - const currencyCode = dwutil.Currency.getCurrency(amount.currencyCode) || session.currency.currencyCode; + const currencyCode = Currency.getCurrency(amount.currencyCode) || session.currency.currencyCode; const digitsNumber = adyenHelperObj.getFractionDigits( currencyCode.toString(), ); From e49e47fc1b74b02d649565f419c169c08bdeb9d7 Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Fri, 14 Jun 2024 08:57:05 +0200 Subject: [PATCH 02/17] Updating web components, enabling new flow for iDeal (#1090) * feat: updating web components and updating e2e for ideal to comply new flow --- .../cartridge/adyen/config/constants.js | 2 +- .../fixtures/countriesEUR/NL.spec.mjs | 18 +++++++++--------- tests/playwright/pages/CheckoutPageSFRA5.mjs | 2 +- tests/playwright/pages/CheckoutPageSFRA6.mjs | 4 +--- tests/playwright/pages/PaymentMethodsPage.mjs | 9 +++++---- .../paymentFlows/redirectShopper.mjs | 8 ++++---- 6 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js index 433cfe25d..495995ca3 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js @@ -98,6 +98,6 @@ module.exports = { APPLE_DOMAIN_URL: '/.well-known/apple-developer-merchantid-domain-association', - CHECKOUT_COMPONENT_VERSION: '5.64.0', + CHECKOUT_COMPONENT_VERSION: '5.65.0', VERSION: '24.2.1', }; diff --git a/tests/playwright/fixtures/countriesEUR/NL.spec.mjs b/tests/playwright/fixtures/countriesEUR/NL.spec.mjs index f495754e9..13f07f79d 100644 --- a/tests/playwright/fixtures/countriesEUR/NL.spec.mjs +++ b/tests/playwright/fixtures/countriesEUR/NL.spec.mjs @@ -25,29 +25,29 @@ for (const environment of environments) { test('iDeal Success @quick', async ({ page }) => { redirectShopper = new RedirectShopper(page); - await redirectShopper.doIdealPayment(true); + await redirectShopper.doIdealPayment(); await checkoutPage.completeCheckout(); - await redirectShopper.completeIdealRedirect(); + await redirectShopper.completeIdealRedirect(true); await checkoutPage.expectNonRedirectSuccess(); }); test('iDeal with restored cart success', async ({ page }) => { redirectShopper = new RedirectShopper(page); - await redirectShopper.doIdealPayment(true); + await redirectShopper.doIdealPayment(); await checkoutPage.completeCheckout(); await checkoutPage.goBackAndSubmitShipping() - await redirectShopper.doIdealPayment(true); + await redirectShopper.doIdealPayment(); await checkoutPage.submitPayment(); await checkoutPage.placeOrder(); - await redirectShopper.completeIdealRedirect(); + await redirectShopper.completeIdealRedirect(true); await checkoutPage.expectNonRedirectSuccess(); }); test('iDeal Fail @quick', async ({ page }) => { redirectShopper = new RedirectShopper(page); - await redirectShopper.doIdealPayment(false); + await redirectShopper.doIdealPayment(); await checkoutPage.completeCheckout(); - await redirectShopper.completeIdealRedirect(); + await redirectShopper.completeIdealRedirect(false); await checkoutPage.expectRefusal(); }); }); @@ -65,7 +65,7 @@ for (const environment of environments) { }); test('iDeal with restored cart Fail', async ({ page, context }) => { redirectShopper = new RedirectShopper(page); - await redirectShopper.doIdealPayment(true); + await redirectShopper.doIdealPayment(); await checkoutPage.submitPayment(); const checkoutURL = await checkoutPage.getLocation(); await checkoutPage.placeOrder() @@ -73,7 +73,7 @@ for (const environment of environments) { const newPage = await context.newPage(); newPage.goto(checkoutURL); - await redirectShopper.completeIdealRedirect(); + await redirectShopper.completeIdealRedirect(true); await checkoutPage.expectRefusal(); }); diff --git a/tests/playwright/pages/CheckoutPageSFRA5.mjs b/tests/playwright/pages/CheckoutPageSFRA5.mjs index 6c4a5d015..629df8de3 100644 --- a/tests/playwright/pages/CheckoutPageSFRA5.mjs +++ b/tests/playwright/pages/CheckoutPageSFRA5.mjs @@ -211,7 +211,7 @@ export default class CheckoutPageSFRA5 { }; expectRefusal = async () => { - await expect(this.errorMessage).not.toBeEmpty(); + await expect(this.errorMessage).not.toBeEmpty({ timeout: 25000 }); }; expectVoucher = async () => { diff --git a/tests/playwright/pages/CheckoutPageSFRA6.mjs b/tests/playwright/pages/CheckoutPageSFRA6.mjs index 11563f6f6..d6fbd98d4 100644 --- a/tests/playwright/pages/CheckoutPageSFRA6.mjs +++ b/tests/playwright/pages/CheckoutPageSFRA6.mjs @@ -231,7 +231,7 @@ export default class CheckoutPageSFRA { }; expectRefusal = async () => { - await expect(this.errorMessage).not.toBeEmpty(); + await expect(this.errorMessage).not.toBeEmpty({ timeout: 25000 }); }; expectVoucher = async () => { @@ -254,9 +254,7 @@ export default class CheckoutPageSFRA { }; navigateBack = async () => { - await this.page.waitForLoadState('networkidle', { timeout: 20000 }); await this.page.goBack(); - await this.page.waitForLoadState('networkidle', { timeout: 20000 }); }; loginUser = async (credentials) => { diff --git a/tests/playwright/pages/PaymentMethodsPage.mjs b/tests/playwright/pages/PaymentMethodsPage.mjs index e3d840fe7..f58dcae3c 100644 --- a/tests/playwright/pages/PaymentMethodsPage.mjs +++ b/tests/playwright/pages/PaymentMethodsPage.mjs @@ -30,8 +30,6 @@ export default class PaymentMethodsPage { await this.page.locator('#rb_ideal').click(); await iDealInput.click(); - await iDealDropDown.click(); - await issuer.click(); }; initiatePayPalPayment = async () => { @@ -174,8 +172,11 @@ export default class PaymentMethodsPage { await this.page.locator('#SubmitForm').click(); }; - submitSimulator = async () => { - await this.page.locator('input[type="submit"]').click(); + submitSimulator = async (testSuccess) => { + await this.page.locator('button[data-testid="payment-action-button"]').click(); + await this.page.locator('button[data-testid="ideal-box-bank-item-TESTNL2A"]').click(); + const actionButton = testSuccess ? this.page.getByRole('button', { name: 'Success', exact: true }) : this.page.getByRole('button', { name: 'Cancellation', exact: true }); + await actionButton.click(); }; submitBankSimulator = async () => { diff --git a/tests/playwright/paymentFlows/redirectShopper.mjs b/tests/playwright/paymentFlows/redirectShopper.mjs index a1c1dda03..3561584fd 100644 --- a/tests/playwright/paymentFlows/redirectShopper.mjs +++ b/tests/playwright/paymentFlows/redirectShopper.mjs @@ -5,12 +5,12 @@ export class RedirectShopper { this.paymentMethodsPage = new PaymentMethodsPage(page); } - doIdealPayment = async (testSuccess) => { - await this.paymentMethodsPage.initiateIdealPayment(testSuccess); + doIdealPayment = async () => { + await this.paymentMethodsPage.initiateIdealPayment(); }; - completeIdealRedirect = async () => { - await this.paymentMethodsPage.submitSimulator(); + completeIdealRedirect = async (testSuccess) => { + await this.paymentMethodsPage.submitSimulator(testSuccess); }; doBillDeskPayment = async (paymentMethod) => { From ce367f717f93ad35b79f61629c3edfa4ff2620f3 Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:59:04 +0200 Subject: [PATCH 03/17] fix: properly handling the first selected pm, also the multiple tx variants components (#1097) --- .../js/adyen_checkout/checkoutConfiguration.js | 13 +++++++++---- .../cartridge/client/default/js/constants.js | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js index 95d726430..ef665c9a0 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js @@ -272,12 +272,17 @@ function getGiftCardConfig() { } function handleOnChange(state) { + let { type } = state.data.paymentMethod; + const multipleTxVariantComponents = constants.MULTIPLE_TX_VARIANTS_COMPONENTS; + if (multipleTxVariantComponents.includes(store.selectedMethod)) { + type = store.selectedMethod; + } store.isValid = state.isValid; - if (!store.componentsObj[store.selectedMethod]) { - store.componentsObj[store.selectedMethod] = {}; + if (!store.componentsObj[type]) { + store.componentsObj[type] = {}; } - store.componentsObj[store.selectedMethod].isValid = store.isValid; - store.componentsObj[store.selectedMethod].stateData = state.data; + store.componentsObj[type].isValid = store.isValid; + store.componentsObj[type].stateData = state.data; } const actionHandler = async (action) => { diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js index 9874e860c..ccc163818 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js @@ -22,4 +22,5 @@ module.exports = { 'applepay', 'cashapp', ], + MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi'], }; From 5abb29b41bc9e4315cc131503cc756b5aec5de1b Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:53:53 +0200 Subject: [PATCH 04/17] Updating e2e test for amazon pay express (#1101) * fix: updating e2e test for amazon pay express * fix: amazonpay express test fix * fix: linting * fix: amazon pay express continue button fix * chore: linting --- tests/playwright/fixtures/countriesEUR/FR.spec.mjs | 2 +- tests/playwright/pages/PaymentMethodsPage.mjs | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/playwright/fixtures/countriesEUR/FR.spec.mjs b/tests/playwright/fixtures/countriesEUR/FR.spec.mjs index 823954b34..ee2be5245 100644 --- a/tests/playwright/fixtures/countriesEUR/FR.spec.mjs +++ b/tests/playwright/fixtures/countriesEUR/FR.spec.mjs @@ -77,7 +77,7 @@ test.describe.parallel(`${environment.name} EUR FR`, () => { await checkoutPage.expectSuccess(); }); - test.skip('Amazon Pay Express @quick', async ({ page }) => { + test('Amazon Pay Express @quick', async ({ page }) => { redirectShopper = new RedirectShopper(page); await checkoutPage.addProductToCart(); await checkoutPage.navigateToCart(regionsEnum.EU); diff --git a/tests/playwright/pages/PaymentMethodsPage.mjs b/tests/playwright/pages/PaymentMethodsPage.mjs index f58dcae3c..26170b00f 100644 --- a/tests/playwright/pages/PaymentMethodsPage.mjs +++ b/tests/playwright/pages/PaymentMethodsPage.mjs @@ -116,9 +116,8 @@ export default class PaymentMethodsPage { await this.confirmPaymentChangeButton.click(); } await this.page.waitForLoadState("networkidle", { timeout: 20000 }); - this.submitButton = this.page.locator( - 'input[class="a-button-input"]' - ); + this.submitButton = this.page.locator('#a-autoid-0'); + await this.submitButton.waitFor({ state: 'visible' }); await this.submitButton.click(); }; From 3aec41326c3f48c93c02677bc97af265bb4ef94f Mon Sep 17 00:00:00 2001 From: Aleksandar Mihajlovski Date: Wed, 3 Jul 2024 13:02:36 +0200 Subject: [PATCH 05/17] Upgrade dev dependencies (#1099) * chore(deps): update dependency braces to v3.0.3 [security] (#1095) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * feat: upgrade npm packages * chore: update package-lock * chore: upgrade regenerator runtime * chore: bump checkout actions version * fix: workflows issue * fix: revert regenerator runtime version * chore: removed npm lib * feat: bump versions --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/E2E_SFRA.yml | 6 +- .github/workflows/SFCC.yml | 2 +- .github/workflows/cartridges-commit.yml | 4 +- .github/workflows/codeql-analysis.yml | 2 +- package-lock.json | 40563 +++++++--------- package.json | 19 +- .../adyen_checkout/checkoutConfiguration.js | 10 +- .../adyen_checkout/renderGiftcardComponent.js | 5 +- 8 files changed, 17623 insertions(+), 22988 deletions(-) diff --git a/.github/workflows/E2E_SFRA.yml b/.github/workflows/E2E_SFRA.yml index 570e24881..2e353b576 100644 --- a/.github/workflows/E2E_SFRA.yml +++ b/.github/workflows/E2E_SFRA.yml @@ -28,7 +28,7 @@ jobs: code-version-secret: 'SFCC_CODE_VERSION_SFRA7' steps: - name: Checkout SFRA code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: SalesforceCommerceCloud/storefront-reference-architecture ref: ${{ matrix.sfra-version }} @@ -39,7 +39,7 @@ jobs: with: node-version: ${{ matrix.node-version }} - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: adyen-salesforce-commerce-cloud - name: Install SFRA dependencies @@ -98,7 +98,7 @@ jobs: with: node-version: ${{ matrix.node-version }} - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: adyen-salesforce-commerce-cloud - name: install e2e test dependencies diff --git a/.github/workflows/SFCC.yml b/.github/workflows/SFCC.yml index bb7fdd8f2..b0cf4046b 100644 --- a/.github/workflows/SFCC.yml +++ b/.github/workflows/SFCC.yml @@ -12,7 +12,7 @@ jobs: node-version: [14.x, 16.x, 18.x] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: diff --git a/.github/workflows/cartridges-commit.yml b/.github/workflows/cartridges-commit.yml index c6306b4d0..1367d0f05 100644 --- a/.github/workflows/cartridges-commit.yml +++ b/.github/workflows/cartridges-commit.yml @@ -23,7 +23,7 @@ jobs: code-version-secret: 'SFCC_CODE_VERSION_SFRA6' steps: - name: Checkout SFRA code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: SalesforceCommerceCloud/storefront-reference-architecture ref: ${{ matrix.sfra-version }} @@ -34,7 +34,7 @@ jobs: with: node-version: '14' - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: adyen-salesforce-commerce-cloud fetch-depth: 0 diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 4ac9cac0f..f29975d69 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can checkout the head. diff --git a/package-lock.json b/package-lock.json index 6bb27e586..0082478eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,25696 +1,20335 @@ { "name": "app_adyen_SFRA", "version": "24.2.1", - "lockfileVersion": 3, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "app_adyen_SFRA", - "version": "24.2.1", - "hasInstallScript": true, - "dependencies": { - "mobx": "^6.0.0", - "url": "^0.11.0" - }, - "devDependencies": { - "eslint": "^8.0.0", - "style-loader": "^3.0.0", - "@babel/core": "^7.15.4", - "postcss-loader": "^7.0.0", - "mocha": "^10.1.0", - "prettier": "2.8.8", - "eslint-plugin-prettier": "^4.0.0", - "@babel/cli": "^7.8.4", - "prettier-eslint-cli": "^7.0.0", - "sgmf-scripts": "^2.4.2", - "resolve-url-loader": "^5.0.0", - "@commitlint/cli": "^17.4.4", - "webpack": "^5.76.1", - "@commitlint/config-conventional": "^17.4.4", - "eslint-config-prettier": "^8.0.0", - "@babel/plugin-transform-runtime": "^7.10.4", - "css-loader": "^6.7.1", - "jest": "^29.2.2", - "stylelint-scss": "^4.0.0", - "eslint-formatter-summary": "^1.0.2", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/eslint-parser": "^7.15.4", - "@babel/preset-env": "^7.8.6", - "stylelint": "^15.0.0", - "chai": "^4.0.0", - "@types/jest": "^29.0.0", - "istanbul": "^0.4.4", - "sinon": "^15.0.0", - "eslint-formatter-pretty": "^4.1.0", - "eslint-plugin-import": "^2.22.1", - "babel-loader": "^9.0.0", - "eslint-config-airbnb-base": "^15.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.10.3", - "husky": "^8.0.3", - "@babel/plugin-proposal-decorators": "^7.10.4", - "jest-environment-jsdom": "^29.3.1", - "regenerator-runtime": "^0.13.5", - "jquery": "^3.6.3", - "npm-force-resolutions": "0.0.10", - "proxyquire": "2.1.3" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/onchange/node_modules/readdirp/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "@babel/cli": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.23.0.tgz", + "integrity": "sha512-17E1oSkGk2IwNILM4jtfAvgjt+ohmpfBky8aLerUfYZhiPNg7ca+CRCxZn8QDxwNhV/upsc2VHBCqGFIR+iBfA==", "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^2.0.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" } }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true + }, + "@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, - "engines": { - "node": ">=10" + "dependencies": { + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + } } }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "@babel/eslint-parser": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz", + "integrity": "sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==", "dev": true, - "dependencies": { - "emittery": "^0.13.1", - "jest-docblock": "^29.7.0", - "@jest/environment": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-runtime": "^29.7.0", - "source-map-support": "0.5.13", - "jest-watcher": "^29.7.0", - "@types/node": "*", - "@jest/console": "^29.7.0", - "chalk": "^4.0.0", - "@jest/test-result": "^29.7.0", - "jest-util": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-environment-node": "^29.7.0", - "@jest/transform": "^29.7.0", - "p-limit": "^3.1.0", - "jest-resolve": "^29.7.0", - "@jest/types": "^29.6.3", - "graceful-fs": "^4.2.9", - "jest-worker": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "requires": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "requires": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, - "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" + "requires": { + "@babel/types": "^7.24.7" } }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + } } }, - "node_modules/p-reflect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", - "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", + "@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" } }, - "node_modules/to-regex/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "@babel/helper-create-class-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" } }, - "node_modules/memory-fs/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "@babel/helper-create-regexp-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" } }, - "node_modules/exec-sh/node_modules/merge": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", - "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", - "dev": true - }, - "node_modules/@commitlint/to-lines": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.8.1.tgz", - "integrity": "sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==", + "@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, - "engines": { - "node": ">=v14" + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" } }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "requires": { + "@babel/types": "^7.24.7" } }, - "node_modules/onchange/node_modules/micromatch/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - }, - "engines": { - "node": ">=0.10.0" + "@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" } }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "dev": true, - "optional": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" + "@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "requires": { + "@babel/types": "^7.24.7" } }, - "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "@babel/helper-member-expression-to-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", "dev": true, - "dependencies": { - "punycode": "^2.1.1" + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, - "engines": { - "node": ">=12" + "dependencies": { + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + } } }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" + "@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "dependencies": { + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + } } }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" } }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true + "@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } }, - "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "dev": true }, - "node_modules/sgmf-scripts/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "@babel/helper-remap-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" } }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" + "requires": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + } } }, - "node_modules/assert/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, "dependencies": { - "inherits": "2.0.3" + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + } } }, - "node_modules/onchange/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" + "@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "requires": { + "@babel/types": "^7.24.7" } }, - "node_modules/terser": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.22.0.tgz", - "integrity": "sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==", + "@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==" + }, + "@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==" + }, + "@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" + "requires": { + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" + "dependencies": { + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + } } }, - "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" } }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true + "@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "requires": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" } }, - "node_modules/istanbul/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "@babel/plugin-proposal-decorators": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.2.tgz", + "integrity": "sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg==", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/plugin-syntax-decorators": "^7.22.10" } }, - "node_modules/regex-not/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "node_modules/package-json/node_modules/got/node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/onchange/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" } }, - "node_modules/registry-auth-token": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", - "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, - "optional": true, - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=6.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/eslint-formatter-summary/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "@babel/plugin-syntax-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, - "dependencies": { - "node-int64": "^0.4.0" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/@messageformat/parser": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.1.0.tgz", - "integrity": "sha512-jKlkls3Gewgw6qMjKZ9SFfHUpdzEVdovKFtW1qRhJ3WI4FW5R/NnGDqr8SDGz+krWDO3ki94boMmQvGke1HwUQ==", + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, - "dependencies": { - "moo": "^0.5.1" + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/watchpack-chokidar2/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, - "optional": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/sgmf-scripts/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/sgmf-scripts/node_modules/external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "dependencies": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=0.12" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/boolify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/boolify/-/boolify-1.0.1.tgz", - "integrity": "sha512-ma2q0Tc760dW54CdOyJjhrg/a54317o1zYADQJFgperNGKIKgAUGIcKnuMiff8z57+yGlrGNEt4lPgZfCgTJgA==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { + "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "dependencies": { + "requires": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "bin": { - "flat": "cli.js" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/eslint-formatter-summary/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "node_modules/dwupload": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/dwupload/-/dwupload-3.8.2.tgz", - "integrity": "sha512-U9fI/RZGitdjVmuVXicj90kXSaxS09FCNrIiFCFL1iY9DfLZUMHE+HLYIm86BHPhpu042jtOtUpkGrhMZrHZEA==", + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "dependencies": { - "@tridnguyen/config": "^2.3.1", - "bluebird": "^2.11.0", - "chalk": "^1.1.3", - "del": "^1.2.1", - "dwdav": "^3.5.0", - "jszip": "^2.6.1", - "multimatch": "^2.1.0", - "node-notifier": "^5.2.1", - "sync-queue": "0.0.2", - "walk": "^2.3.9", - "watch": "^0.18.0", - "yargs": "^4.8.1", - "yazl": "^2.3.1" - }, - "bin": { - "dwupload": "index.js" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/prettier-eslint-cli/node_modules/yargs/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "engines": { - "node": ">=6" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/sgmf-scripts/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "@babel/plugin-transform-async-generator-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "node_modules/preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", + "@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" } }, - "node_modules/nanomatch/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "@babel/plugin-transform-block-scoping": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "@babel/plugin-transform-class-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } }, - "node_modules/extglob/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "@babel/plugin-transform-classes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", "dev": true, - "engines": { - "node": ">=4.0.0" + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "globals": "^11.1.0" } }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/mississippi/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "@babel/plugin-transform-destructuring": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, - "node_modules/dwupload/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/onchange/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" } }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "@babel/plugin-transform-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, - "node_modules/sgmf-scripts/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, - "node_modules/package-json/node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", "dev": true, - "optional": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/is-observable/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", "dev": true, - "engines": { - "node": ">=6" + "requires": { + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true, - "optional": true - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/create-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz", - "integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==", + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", "dev": true, - "dependencies": { - "flat-cache": "^3.1.1" - }, - "engines": { - "node": ">=12.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, - "node_modules/resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", "dev": true, - "dependencies": { - "global-dirs": "^0.1.1" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "requires": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" } }, - "node_modules/parallel-transform/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" } }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "@babel/plugin-transform-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", + "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "node_modules/table/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "@babel/plugin-transform-private-methods": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/node-notifier/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, - "node_modules/listr-update-renderer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", "dev": true, - "optional": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", "dev": true, - "engines": { - "node": ">= 0.8.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "@babel/plugin-transform-runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", + "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "requires": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" } }, - "node_modules/each-async/node_modules/onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", "dev": true, - "engines": { - "node": ">=6.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" } }, - "node_modules/sgmf-scripts/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/@babel/eslint-parser": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz", - "integrity": "sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==", + "@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", "dev": true, - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "@babel/plugin-transform-typeof-symbol": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", + "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz", - "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==", + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.1" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/npm-name/node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "@babel/preset-env": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", "dev": true, - "dependencies": { - "@sindresorhus/is": "^2.0.0", - "@szmarczak/http-timer": "^4.0.0", - "@types/cacheable-request": "^6.0.1", - "cacheable-lookup": "^2.0.0", - "cacheable-request": "^7.0.1", - "decompress-response": "^5.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^5.0.0", - "lowercase-keys": "^2.0.0", - "mimic-response": "^2.1.0", - "p-cancelable": "^2.0.0", - "p-event": "^4.0.0", - "responselike": "^2.0.0", - "to-readable-stream": "^2.0.0", - "type-fest": "^0.10.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "requires": { + "@babel/compat-data": "^7.23.2", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.23.0", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" } }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, - "optional": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", "dev": true }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "@babel/runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "regenerator-runtime": "^0.14.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "dependencies": { + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + } } }, - "node_modules/package-json/node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", - "dev": true, - "optional": true + "@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + } + } }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "optional": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" + "@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "requires": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" } }, - "node_modules/istanbul-lib-report/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "@commitlint/cli": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.3.0.tgz", + "integrity": "sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==", "dev": true, - "engines": { - "node": ">=10" + "requires": { + "@commitlint/format": "^19.3.0", + "@commitlint/lint": "^19.2.2", + "@commitlint/load": "^19.2.0", + "@commitlint/read": "^19.2.1", + "@commitlint/types": "^19.0.3", + "execa": "^8.0.1", + "yargs": "^17.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + } + }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true + }, + "human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } } }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "@commitlint/config-conventional": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.2.2.tgz", + "integrity": "sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "requires": { + "@commitlint/types": "^19.0.3", + "conventional-changelog-conventionalcommits": "^7.0.2" } }, - "node_modules/set-value/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "@commitlint/config-validator": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.0.3.tgz", + "integrity": "sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==", "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@commitlint/types": "^19.0.3", + "ajv": "^8.11.0" } }, - "node_modules/extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "@commitlint/ensure": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.0.3.tgz", + "integrity": "sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==", "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@commitlint/types": "^19.0.3", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" } }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } + "@commitlint/execute-rule": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.0.0.tgz", + "integrity": "sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==", + "dev": true }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "@commitlint/format": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.3.0.tgz", + "integrity": "sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==", "dev": true, - "dependencies": { - "semver": "^7.5.3" + "requires": { + "@commitlint/types": "^19.0.3", + "chalk": "^5.3.0" }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + } } }, - "node_modules/update-notifier/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "@commitlint/is-ignored": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.2.2.tgz", + "integrity": "sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==", "dev": true, + "requires": { + "@commitlint/types": "^19.0.3", + "semver": "^7.6.0" + }, "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } } }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "@commitlint/lint": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.2.2.tgz", + "integrity": "sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@commitlint/is-ignored": "^19.2.2", + "@commitlint/parse": "^19.0.3", + "@commitlint/rules": "^19.0.3", + "@commitlint/types": "^19.0.3" } }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "@commitlint/load": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.2.0.tgz", + "integrity": "sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==", "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" + "requires": { + "@commitlint/config-validator": "^19.0.3", + "@commitlint/execute-rule": "^19.0.0", + "@commitlint/resolve-extends": "^19.1.0", + "@commitlint/types": "^19.0.3", + "chalk": "^5.3.0", + "cosmiconfig": "^9.0.0", + "cosmiconfig-typescript-loader": "^5.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + }, + "cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "requires": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + } + } } }, - "node_modules/scoped-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz", - "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "@commitlint/message": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.0.0.tgz", + "integrity": "sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==", + "dev": true + }, + "@commitlint/parse": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.0.3.tgz", + "integrity": "sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==", + "dev": true, + "requires": { + "@commitlint/types": "^19.0.3", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" + } + }, + "@commitlint/read": { + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.2.1.tgz", + "integrity": "sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==", + "dev": true, + "requires": { + "@commitlint/top-level": "^19.0.0", + "@commitlint/types": "^19.0.3", + "execa": "^8.0.1", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8" + }, + "dependencies": { + "execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + } + }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true + }, + "human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } } }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "@commitlint/resolve-extends": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.1.0.tgz", + "integrity": "sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==", "dev": true, - "engines": { - "node": ">=0.12" + "requires": { + "@commitlint/config-validator": "^19.0.3", + "@commitlint/types": "^19.0.3", + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0" } }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "@commitlint/rules": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.0.3.tgz", + "integrity": "sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==", + "dev": true, + "requires": { + "@commitlint/ensure": "^19.0.3", + "@commitlint/message": "^19.0.0", + "@commitlint/to-lines": "^19.0.0", + "@commitlint/types": "^19.0.3", + "execa": "^8.0.1" + }, + "dependencies": { + "execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + } + }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true + }, + "human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } } }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "@commitlint/to-lines": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.0.0.tgz", + "integrity": "sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==", + "dev": true + }, + "@commitlint/top-level": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.0.0.tgz", + "integrity": "sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "requires": { + "find-up": "^7.0.0" }, - "engines": { - "node": ">=7.0.0" + "dependencies": { + "find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "dev": true, + "requires": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + } + }, + "locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "requires": { + "p-locate": "^6.0.0" + } + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } } }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "@commitlint/types": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.0.3.tgz", + "integrity": "sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==", "dev": true, - "optional": true, + "requires": { + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" + }, "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + } } }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "@csstools/css-parser-algorithms": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", + "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", + "dev": true + }, + "@csstools/css-tokenizer": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", + "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", + "dev": true + }, + "@csstools/media-query-list-parser": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", + "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", + "dev": true + }, + "@csstools/selector-specificity": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", + "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", + "dev": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "dependencies": { - "prr": "~1.0.1" + "requires": { + "eslint-visitor-keys": "^3.3.0" }, - "bin": { - "errno": "cli.js" + "dependencies": { + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + } } }, - "node_modules/onchange": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/onchange/-/onchange-3.3.0.tgz", - "integrity": "sha512-0ZQIdGkhG8Y+r8BIcjjDV93X59KkZ4Cc+ZxA9N+wA/3vm1cvd8/f2NXlCPCZpowSd78eCERk29dtuS8+X97MLg==", + "@eslint-community/regexpp": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", + "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, "dependencies": { - "arrify": "~1.0.1", - "chokidar": "~1.7.0", - "cross-spawn": "~5.1.0", - "minimist": "~1.2.0", - "tree-kill": "~1.2.0" + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@eslint/js": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", + "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, - "bin": { - "onchange": "cli.js" + "dependencies": { + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + } } }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "engines": { - "node": ">=0.3.1" + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } } }, - "node_modules/@jest/transform": { + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, "dependencies": { - "@babel/core": "^7.11.6", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pirates": "^4.0.4", + "pretty-format": "^29.7.0", "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/nanomatch/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "strip-ansi": "^6.0.0" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", - "dev": true, "dependencies": { - "semver": "^6.3.1", - "doctrine": "^2.1.0", - "object.values": "^1.1.7", - "is-glob": "^4.0.3", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "array.prototype.flat": "^1.3.2", - "tsconfig-paths": "^3.14.2", - "eslint-import-resolver-node": "^0.3.9", - "object.groupby": "^1.0.1", - "array.prototype.flatmap": "^1.3.2", - "object.fromentries": "^2.0.7", - "debug": "^3.2.7", - "is-core-module": "^2.13.1", - "minimatch": "^3.1.2", - "array.prototype.findlastindex": "^1.2.3", - "array-includes": "^3.1.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" } }, - "node_modules/sgmf-scripts/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" } }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "jest-get-type": "^29.6.3" } }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, - "engines": { - "node": ">=4" + "requires": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, - "node_modules/np/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "requires": { + "@sinclair/typebox": "^0.27.8" } }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" } }, - "node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "dev": true - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, - "engines": { - "node": ">= 0.4" + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + } } }, - "node_modules/p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "optional": true, - "dependencies": { - "p-timeout": "^3.1.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" + }, + "@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/prettier-eslint-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } }, - "node_modules/np/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "optional": true + }, + "@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "requires": { + "eslint-scope": "5.1.1" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } }, - "node_modules/from2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, - "node_modules/@commitlint/resolve-extends": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz", - "integrity": "sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==", + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "dependencies": { - "@commitlint/config-validator": "^17.8.1", - "@commitlint/types": "^17.8.1", - "import-fresh": "^3.0.0", - "lodash.mergewith": "^4.6.2", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - }, - "engines": { - "node": ">=v14" + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" } }, - "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true + }, + "@samverschueren/stream-to-observable": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", + "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", "dev": true, "optional": true, - "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "any-observable": "^0.3.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true, + "optional": true + } } }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "type-detect": "4.0.8" } }, - "node_modules/@commitlint/config-validator": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.8.1.tgz", - "integrity": "sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==", + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, - "dependencies": { - "@commitlint/types": "^17.8.1", - "ajv": "^8.11.0" - }, - "engines": { - "node": ">=v14" + "requires": { + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/prettier-eslint-cli": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/prettier-eslint-cli/-/prettier-eslint-cli-7.1.0.tgz", - "integrity": "sha512-kMMvV7Mt6VqdJSb25aCkOA7HTIxy5mii2tzBb1vCSmzlIECOzTP2wRPIeAtBky6WdpfN0n1Zxa4E37Atp1IksA==", + "@sinonjs/samsam": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", + "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", "dev": true, - "dependencies": { - "ignore": "^5.2.0", - "eslint": "^8.21.0", - "get-stdin": "^8.0.0", - "yargs": "^13.1.1", - "loglevel-colored-level-prefix": "^1.0.0", - "core-js": "^3.24.1", - "rxjs": "^7.5.6", - "common-tags": "^1.8.2", - "arrify": "^2.0.1", - "lodash.memoize": "^4.1.2", - "chalk": "^4.1.2", - "@messageformat/core": "^3.0.1", - "camelcase-keys": "^7.0.2", - "find-up": "^5.0.0", - "@prettier/eslint": "npm:prettier-eslint@^15.0.1", - "indent-string": "^4.0.0", - "glob": "^7.2.3", - "boolify": "^1.0.1" - }, - "bin": { - "prettier-eslint": "dist/index.js" - }, - "engines": { - "node": ">=12.22" - }, - "peerDependencies": { - "prettier-eslint": "*" + "requires": { + "@sinonjs/commons": "^2.0.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" }, - "peerDependenciesMeta": { - "prettier-eslint": { - "optional": true + "dependencies": { + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } } } }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dev": true, "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "defer-to-connect": "^2.0.1" } }, - "node_modules/to-regex/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true }, - "node_modules/babel-jest/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "@tridnguyen/config": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@tridnguyen/config/-/config-2.3.1.tgz", + "integrity": "sha512-/2MiM6C5DUwdGY2pxDbQOZkpWqQwl1XRIlEXx7xn9s1uFSP+GAuqMlfe6T/8NKEVMFtjQe8vDeV+uxR4WNqhEQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "better-console": "^0.2.4", + "caller": "^1.0.0", + "lodash.assign": "^3.2.0", + "lodash.isobject": "^3.0.2", + "lodash.isstring": "^3.0.1" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/istanbul/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "requires": { + "@babel/types": "^7.0.0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001553", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001553.tgz", - "integrity": "sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/inquirer-autosubmit-prompt/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "optional": true, - "engines": { - "node": ">=6" + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/eslint": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", - "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", + "@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, - "dependencies": { - "ignore": "^5.2.0", - "eslint-scope": "^7.2.2", - "js-yaml": "^4.1.0", - "natural-compare": "^1.4.0", - "doctrine": "^3.0.0", - "file-entry-cache": "^6.0.1", - "is-glob": "^4.0.0", - "lodash.merge": "^4.6.2", - "eslint-visitor-keys": "^3.4.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0", - "espree": "^9.6.1", - "@ungap/structured-clone": "^1.2.0", - "imurmurhash": "^0.1.4", - "cross-spawn": "^7.0.2", - "@eslint/eslintrc": "^2.1.2", - "graphemer": "^1.4.0", - "is-path-inside": "^3.0.3", - "@nodelib/fs.walk": "^1.2.8", - "@eslint-community/regexpp": "^4.6.1", - "@humanwhocodes/module-importer": "^1.0.1", - "@eslint-community/eslint-utils": "^4.2.0", - "chalk": "^4.0.0", - "debug": "^4.3.2", - "ajv": "^6.12.4", - "@humanwhocodes/config-array": "^0.11.13", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "esutils": "^2.0.2", - "globals": "^13.19.0", - "minimatch": "^3.1.2", - "glob-parent": "^6.0.2", - "fast-deep-equal": "^3.1.3", - "esquery": "^1.4.2", - "find-up": "^5.0.0", - "optionator": "^0.9.3", - "escape-string-regexp": "^4.0.0", - "@eslint/js": "8.52.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "requires": { + "@babel/types": "^7.20.7" } }, - "node_modules/lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha512-t3N26QR2IdSN+gqSy9Ds9pBu/J1EAFEshKlUHpJG3rvyJOYgcELIxcIeKKfZk7sjOz11cFfzJRsyFry/JyabJQ==", + "@types/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==", "dev": true, - "dependencies": { - "lodash._basecopy": "^3.0.0", - "lodash.keys": "^3.0.0" + "requires": { + "@types/node": "*" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "@types/eslint": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/configstore/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, - "optional": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "requires": { + "@types/eslint": "*", + "@types/estree": "*" } }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@types/node": "*" } }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/eslint-formatter-summary": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-formatter-summary/-/eslint-formatter-summary-1.1.0.tgz", - "integrity": "sha512-teOh471ZYeEShXhBFb16X87buUjNZa2TMNn3CSf//DIKLNneqbk7u5i9hDDiIaQVvZbBXJHkgYxj8urcNKWbXw==", + "@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "core-js": "^3.9.1" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "np": "^7.4.0" - } + "optional": true }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true }, - "node_modules/package-json/node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "requires": { + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@types/istanbul-lib-report": "*" } }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "@types/jest": { + "version": "29.5.6", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.6.tgz", + "integrity": "sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" } }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" } }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "dependencies": { - "eslint-scope": "5.1.1" - } + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "@types/minimist": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.4.tgz", + "integrity": "sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==", + "dev": true + }, + "@types/node": { + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", + "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.3.tgz", + "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "requires": { + "@types/yargs-parser": "*" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "optional": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "node_modules/sgmf-scripts/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true }, - "node_modules/lodash.isstring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-3.0.1.tgz", - "integrity": "sha512-UiX/KDS9ryxRpGR1q6zSwV9LxsG6PbN3OCD73O48JiRfG1z0cG3LCl3X9AEEdluRNuxduz1u94rS6BW9vSl9Vw==", + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", "dev": true }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", "dev": true, - "engines": { - "node": ">=6.9.0" + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" } }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true }, - "node_modules/redent/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@webassemblyjs/ast": "1.9.0" } }, - "node_modules/package-json/node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, - "optional": true + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + }, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + } + } }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", "dev": true }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==", - "dev": true + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } }, - "node_modules/onchange/node_modules/is-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@xtuc/long": "4.2.2" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", "dev": true }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, - "node_modules/onchange/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@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" } }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, - "node_modules/@commitlint/message": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.8.1.tgz", - "integrity": "sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==", + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", "dev": true, - "engines": { - "node": ">=v14" + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", "dev": true, - "engines": { - "node": "*" + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" } }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true }, - "node_modules/prettier-eslint-cli/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.2", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz", - "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==", + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "dev": true }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", "dev": true }, - "node_modules/@jest/test-sequencer/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "acorn": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "dev": true + }, + "acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" } }, - "node_modules/prettier-eslint-cli/node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "acorn": "^8.11.0" } }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "requires": { + "debug": "4" } }, - "node_modules/watchpack-chokidar2/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "node_modules/multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha512-0mzK8ymiWdehTBiJh0vClAzGyQbdtyWqzSVx//EK4N/D+599RFlGfTAsKw2zMSABtDG9C6Ul2+t8f2Lbdjf5mA==", - "dev": true, - "dependencies": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "optional": true + } } }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "ajv": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", "dev": true, - "optional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "requires": { + "ajv": "^8.0.0" } }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, - "engines": { - "node": ">=0.3.1" + "requires": { + "fast-deep-equal": "^3.1.3" } }, - "node_modules/sgmf-scripts/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } + "optional": true }, - "node_modules/package-json/node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dev": true, "optional": true, - "engines": { - "node": ">=6" + "requires": { + "string-width": "^4.1.0" } }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true }, - "node_modules/expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "dependencies": { - "is-posix-bracket": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "type-fest": "^0.21.3" } }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/core": "^7.11.6", - "semver": "^7.5.3", - "natural-compare": "^1.4.0", - "jest-matcher-utils": "^29.7.0", - "@babel/plugin-syntax-jsx": "^7.7.2", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "expect": "^29.7.0", - "chalk": "^4.0.0", - "jest-util": "^29.7.0", - "jest-message-util": "^29.7.0", - "@jest/transform": "^29.7.0", - "pretty-format": "^29.7.0", - "babel-preset-current-node-syntax": "^1.0.0", - "@babel/types": "^7.3.3", - "@jest/types": "^29.6.3", - "graceful-fs": "^4.2.9", - "@babel/generator": "^7.7.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" } }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "any-observable": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.5.1.tgz", + "integrity": "sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + "optional": true }, - "node_modules/@commitlint/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, - "node_modules/duplexify/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/stylelint/node_modules/strip-indent": { + "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" } }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", "dev": true }, - "node_modules/inquirer-autosubmit-prompt/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true }, - "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" } }, - "node_modules/node-libs-browser/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" } }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" } }, - "node_modules/math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, - "engines": { - "node": ">= 0.4" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, - "dependencies": { + "requires": { + "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" } }, - "node_modules/@types/minimist": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.4.tgz", - "integrity": "sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==", + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "requires": { + "safer-buffer": "~2.1.0" } }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dwupload/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, "dependencies": { - "ms": "^2.1.1" + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } } }, - "node_modules/sgmf-scripts/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "requires": { + "object.assign": "^4.1.4", + "util": "^0.10.4" }, - "engines": { - "node": ">=4" + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + } } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true }, - "node_modules/dwupload/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", "dev": true }, - "node_modules/log-symbols/node_modules/color-convert": { + "async-exit-hook": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } + "optional": true }, - "node_modules/listr-verbose-renderer/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true + }, + "aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" + "requires": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, - "engines": { - "node": ">=4" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" } }, - "node_modules/sgmf-scripts/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + } } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, - "dependencies": { - "isstream": "~0.1.2", - "oauth-sign": "~0.9.0", - "safe-buffer": "^5.1.2", - "is-typedarray": "~1.0.0", - "json-stringify-safe": "~5.0.1", - "performance-now": "^2.1.0", - "http-signature": "~1.2.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2", - "har-validator": "~5.1.3", - "extend": "~3.0.2", - "mime-types": "~2.1.19", - "tough-cookie": "~2.5.0", - "aws-sign2": "~0.7.0", - "caseless": "~0.12.0", - "aws4": "^1.8.0", - "forever-agent": "~0.6.1", - "combined-stream": "~1.0.6", - "form-data": "~2.3.2", - "qs": "~6.5.2" - }, - "engines": { - "node": ">= 6" + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" } }, - "node_modules/sgmf-scripts/node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", - "dev": true + "babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", "dev": true, - "optional": true, - "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" }, - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + } } }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, "dependencies": { - "ms": "2.0.0" + "@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + } } }, - "node_modules/dwupload/node_modules/is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" } }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "requires": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" } }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } } }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "tweetnacl": "^0.14.3" } }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "better-console": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/better-console/-/better-console-0.2.4.tgz", + "integrity": "sha512-EWX+3mK8tksds6xANDyxftA3OYmz0q2Qo9GyRzJNRgYPdyCDjddzXh2rkiouppsdMi3x8xDwnPE5uECIrcvgyQ==", "dev": true, - "dependencies": { - "aproba": "^1.1.1" + "requires": { + "cli-table": "~0.2.0", + "colors": "~0.6.0-1" } }, - "node_modules/escape-goat": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", - "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true }, - "node_modules/stylelint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true }, - "node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==", + "dev": true + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "dev": true, - "dependencies": { - "is-potential-custom-element-name": "^1.0.1", - "acorn-globals": "^7.0.0", - "xml-name-validator": "^4.0.0", - "data-urls": "^3.0.2", - "parse5": "^7.1.1", - "nwsapi": "^2.2.2", - "acorn": "^8.8.1", - "html-encoding-sniffer": "^3.0.0", - "whatwg-mimetype": "^3.0.0", - "cssstyle": "^2.3.0", - "symbol-tree": "^3.2.4", - "saxes": "^6.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "escodegen": "^2.0.0", - "https-proxy-agent": "^5.0.1", - "decimal.js": "^10.4.2", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "whatwg-url": "^11.0.0", - "domexception": "^4.0.0", - "cssom": "^0.5.0", - "http-proxy-agent": "^5.0.0", - "ws": "^8.11.0", - "abab": "^2.0.6", - "form-data": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" + "optional": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, - "peerDependenciesMeta": { - "canvas": { + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "optional": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } } } }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "node_modules/expand-range/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/onchange/node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "node_modules/sgmf-scripts/node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "dev": true, - "engines": { - "node": ">=6" + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + } } }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "pako": "~1.0.5" } }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" } }, - "node_modules/stylelint/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "engines": { - "node": ">=10" + "requires": { + "node-int64": "^0.4.0" } }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } } }, - "node_modules/boxen/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true }, - "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - } + "optional": true }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "dependencies": { + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + } } }, - "node_modules/nanomatch/node_modules/is-accessor-descriptor": { + "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, - "dependencies": { - "hasown": "^2.0.0" + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, - "engines": { - "node": ">= 0.10" + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, - "node_modules/get-func-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.1.tgz", - "integrity": "sha512-xfVG6YAjJyJl5kJDV8qJYrI4entUcpszANQteCfPhU9AYOh6Za6Hw+SsTtTrhAB0yT0nk5P9TVNqBl58pHBlYQ==", + "cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", "dev": true, - "engines": { - "node": "*" - } + "optional": true }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "optional": true, + "requires": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" } }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "requires": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" } }, - "node_modules/boxen/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "caller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/caller/-/caller-1.1.0.tgz", + "integrity": "sha512-n+21IZC3j06YpCWaxmUy5AnVqhmCIM2bQtqQyy00HJlmStRt6kwDX5F9Z97pqwAB+G/tgSz6q/kUBbNyQzIubw==", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "optional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" } }, - "node_modules/lodash.assign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", - "integrity": "sha512-/VVxzgGBmbphasTg51FrztxQJ/VgAUpol6zmJuSVSGcNg4g7FA4z7rQV8Ovr9V3vFBNWZhvKWHfpAytjTVUfFA==", - "dev": true, - "dependencies": { - "lodash._baseassign": "^3.0.0", - "lodash._createassigner": "^3.0.0", - "lodash.keys": "^3.0.0" - } + "caniuse-lite": { + "version": "1.0.30001637", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001637.tgz", + "integrity": "sha512-1x0qRI1mD1o9e+7mBI7XtzFAP4XszbHaVWsMiGbSPLYekKTJF7K+FNk6AsXH4sUpc+qrsI3pVgf1Jdl/uGkuSQ==", + "dev": true }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true + "dependencies": { + "get-func-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-3.0.0.tgz", + "integrity": "sha512-6lB4zp64YzgT5KVoAuY0vBXQXNObRmelzfVCpx2dHkGVskX8WwjxTVd/kGUsVzxuOpSEF9BcD54ChSKMVjSsfQ==", + "dev": true } } }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "node_modules/memory-fs/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, - "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "optional": true + }, + "check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "requires": { + "get-func-name": "^2.0.2" + }, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "get-func-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-3.0.0.tgz", + "integrity": "sha512-6lB4zp64YzgT5KVoAuY0vBXQXNObRmelzfVCpx2dHkGVskX8WwjxTVd/kGUsVzxuOpSEF9BcD54ChSKMVjSsfQ==", + "dev": true + } } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "hasInstallScript": true, "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.3" + } + } } }, - "node_modules/package-json/node_modules/responselike/node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, - "engines": { - "node": "*" + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, - "node_modules/@babel/cli": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.23.0.tgz", - "integrity": "sha512-17E1oSkGk2IwNILM4jtfAvgjt+ohmpfBky8aLerUfYZhiPNg7ca+CRCxZn8QDxwNhV/upsc2VHBCqGFIR+iBfA==", + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "commander": "^4.0.1", - "convert-source-map": "^2.0.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.2.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "optional": true, + "requires": { + "restore-cursor": "^3.1.0" } }, - "node_modules/onchange/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - }, - "node_modules/prettier-eslint-cli/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "cli-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.2.0.tgz", + "integrity": "sha512-AB1fVExK7r4Lfk61XOZuZc83tvDxWsnT9KsY3j9gYsaWCOVc7bCajJlA7S/lVSqC7MX34afRpnfeYoLZ3O4PyQ==", "dev": true, + "requires": { + "colors": "0.3.0" + }, "dependencies": { - "tslib": "^2.1.0" + "colors": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.3.0.tgz", + "integrity": "sha512-zRIkNRjxdyFV2Vuq0Bh8hL/rWgQsBM19aB6Uq9CMot2olUuD1DEPon9SB3GZNDrfOojb6a74AQhSM5BKrAr9tA==", + "dev": true + } } }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "optional": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" }, - "funding": { - "url": "https://opencollective.com/eslint" + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } } }, - "node_modules/watch": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", - "integrity": "sha512-oUcoHFG3UF2pBlHcMORAojsN09BfqSfWYWlR3eSSjUFR7eBEx53WT2HX/vZeVTTIVCGShcazb+t6IcBRCNXqvA==", + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, - "dependencies": { - "exec-sh": "^0.2.0", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } + "optional": true }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz", - "integrity": "sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==", + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "engines": { - "node": ">=v14.21.3" + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=7", - "ts-node": ">=10", - "typescript": ">=4" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" } }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, - "node_modules/jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==", "dev": true }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "engines": { - "node": ">=0.10" + "requires": { + "delayed-stream": "~1.0.0" } }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", - "integrity": "sha512-V46MYLFp08Wf2mmaBhvgjStM3tPa+2GAdy/iqoX+noX1//zje2x4XmrIU0cAwyClATsTmahbtoQ2EwP7I5WSiA==", - "dev": true, - "optional": true + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "node_modules/listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", - "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, - "optional": true, - "dependencies": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=6" + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, - "peerDependencies": { - "listr": "^0.14.2" + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/vue-eslint-parser": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", - "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, - "dependencies": { - "debug": "^4.3.2", - "eslint-scope": "^7.0.0", - "eslint-visitor-keys": "^3.1.0", - "espree": "^9.0.0", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "optional": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" }, - "peerDependencies": { - "eslint": ">=6.0.0" + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "optional": true, + "requires": { + "semver": "^6.0.0" + } + } } }, - "node_modules/conventional-changelog-angular": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", - "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "conventional-changelog-angular": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", "dev": true, - "dependencies": { + "requires": { "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=14" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "conventional-changelog-conventionalcommits": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "compare-func": "^2.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "JSONStream": "^1.3.5", + "is-text-path": "^2.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true + } } }, - "node_modules/nise/node_modules/@sinonjs/commons": { + "convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true + }, + "core-js": { + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.1.tgz", + "integrity": "sha512-qVSq3s+d4+GsqN0teRCJtM6tdEEXyWxjzbhVrCHmBS5ZTM0FS2MOS0D13dUXAWDUN6a+lHI/N1hF9Ytz6iLl9Q==", + "dev": true + }, + "core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" + "requires": { + "browserslist": "^4.23.0" } }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" + "requires": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" } }, - "node_modules/npm-name/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "cosmiconfig-typescript-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", + "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", "dev": true, - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "jiti": "^1.19.1" } }, - "node_modules/listr": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", - "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, - "optional": true, - "dependencies": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" }, - "engines": { - "node": ">=6" + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } } }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, - "dependencies": { - "mime-db": "1.52.0" + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" }, - "engines": { - "node": ">= 0.6" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/jest-resolve/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true, - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cacache/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "optional": true }, - "node_modules/@types/tough-cookie": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.4.tgz", - "integrity": "sha512-95Sfz4nvMAb0Nl9DTxN3j64adfwfbBPEYq14VN7zT5J5O2M9V6iZMIIQU1U+pJyl9agHYHNCqhCXgyEtIRRa5A==", + "css-functions-list": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", + "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", "dev": true }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } } }, - "node_modules/prettier-eslint-cli/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" } }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { + "cssesc": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "requires": { + "cssom": "~0.3.6" }, - "engines": { - "node": ">= 0.4" + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } } }, - "node_modules/duplexify/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", "dev": true }, - "node_modules/ow/node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "optional": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "dargs": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", + "dev": true }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, - "dependencies": { + "requires": { "assert-plus": "^1.0.0" } }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "requires": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" } }, - "node_modules/date-fns": { + "date-fns": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", "dev": true, "optional": true }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "requires": { + "ms": "2.1.2" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, - "engines": { - "node": ">=6.9.0" + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + } } }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true }, - "node_modules/update-notifier/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/@jest/core/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "optional": true, + "requires": { + "mimic-response": "^3.1.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "optional": true + } } }, - "node_modules/stream-browserify/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dev": true, - "engines": { - "node": ">=4.x" + "requires": { + "type-detect": "^4.0.0" } }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } + "optional": true }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true }, - "node_modules/package-json/node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "dev": true, - "optional": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } + "optional": true }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" } }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, - "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, - "dependencies": { - "type-detect": "4.0.8" + "requires": { + "is-descriptor": "^0.1.0" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", "dev": true, - "dependencies": { - "universalify": "^2.0.0" + "optional": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "optional": true + } } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true }, - "node_modules/onchange/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==", + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, - "optional": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" }, - "engines": { - "node": ">=4" + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "path-type": "^4.0.0" } }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "esutils": "^2.0.2" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true }, - "node_modules/dwupload/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "webidl-conversions": "^7.0.0" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "is-obj": "^2.0.0" } }, - "node_modules/watchpack-chokidar2/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, - "optional": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dwdav": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/dwdav/-/dwdav-3.5.1.tgz", + "integrity": "sha512-1f5xgaey0uQvdRyKk7F3w9q2pvA2FsU2AHzHA9rMadOI1nTNxq3c/ibq/lLFugfrS7g1I1/AWKzyXdiiZm8ZCg==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "lodash": "^4.17.15", + "minimist": "^1.1.1", + "request": "^2.58.0", + "xml-parser": "^1.2.1" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "dependencies": { + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + } } }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dwupload": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/dwupload/-/dwupload-3.8.2.tgz", + "integrity": "sha512-U9fI/RZGitdjVmuVXicj90kXSaxS09FCNrIiFCFL1iY9DfLZUMHE+HLYIm86BHPhpu042jtOtUpkGrhMZrHZEA==", "dev": true, - "optional": true, - "dependencies": { - "hasown": "^2.0.0" + "requires": { + "@tridnguyen/config": "^2.3.1", + "bluebird": "^2.11.0", + "chalk": "^1.1.3", + "del": "^1.2.1", + "dwdav": "^3.5.0", + "jszip": "^2.6.1", + "multimatch": "^2.1.0", + "node-notifier": "^5.2.1", + "sync-queue": "0.0.2", + "walk": "^2.3.9", + "watch": "^0.18.0", + "yargs": "^4.8.1", + "yazl": "^2.3.1" }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "del": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/del/-/del-1.2.1.tgz", + "integrity": "sha512-y43KQ302qc1NEygMXswb4bEOyP34h4b/ew9lnID6rqxFp0WhLolYmbeoREBFwyalUxvnUm8SskLmI9UOw+sChA==", + "dev": true, + "requires": { + "each-async": "^1.0.0", + "globby": "^2.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^3.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", + "dev": true + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "globby": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-2.1.0.tgz", + "integrity": "sha512-CqRID2dMaN4Zi9PANiQHhmKaGu7ZASehBLnaDogjR9L3L1EqAGFhflafT0IrSN/zm9xFk+KMTXZCN8pUYOiO/Q==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "async": "^1.2.1", + "glob": "^5.0.3", + "object-assign": "^3.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", + "dev": true + } + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "jszip": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.8.0.tgz", + "integrity": "sha512-cnpQrXvFSLdsR9KR5/x7zdf6c3m8IhZfZzSblFEHSqBaVwD2nvJ4CuCKLyvKvwBgZm08CgfSoiTBQLm5WW9hGw==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", + "dev": true + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==" + }, + "node-notifier": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", + "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", + "dev": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.5", + "shellwords": "^0.1.1", + "uuid": "^8.3.2", + "which": "^2.0.2" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==", + "dev": true, + "requires": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "lodash.assign": "^4.0.3", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.1", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^2.4.1" + }, + "dependencies": { + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + } } }, - "node_modules/prettier-eslint-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "each-async": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz", + "integrity": "sha512-0hJGub96skwr+sUojv7zQ0kc9i4jn3SwLiLk8Jr7KDz7aaaMzkN5UX3a/9ZhzC0OfZVyXHhlHcjC0KVOiKZ+HQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "onetime": "^1.0.0", + "set-immediate-shim": "^1.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", + "dev": true + } } }, - "node_modules/watchpack-chokidar2/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, - "optional": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "electron-to-chromium": { + "version": "1.4.812", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.812.tgz", + "integrity": "sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==", "dev": true }, - "node_modules/stylelint/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sgmf-scripts/node_modules/terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } + "optional": true }, - "node_modules/create-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "elliptic": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", + "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true }, - "node_modules/onchange/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" } }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true }, - "node_modules/glob-base/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "prr": "~1.0.1" } }, - "node_modules/listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "optional": true, - "engines": { - "node": ">=4" + "requires": { + "is-arrayish": "^0.2.1" } }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + } + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4" + }, + "dependencies": { + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + } + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true + }, + "es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "dev": true }, - "node_modules/package-json/node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" + "requires": { + "es-errors": "^1.3.0" } }, - "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "requires": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" } }, - "node_modules/configstore/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, - "optional": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "hasown": "^2.0.0" } }, - "node_modules/snapdragon-node/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true + }, + "escape-goat": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", + "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } + "optional": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.2.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "dependencies": { + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } } }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "eslint": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", + "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", "dev": true, - "dependencies": { - "glob": "^7.1.3" + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.52.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, - "bin": { - "rimraf": "bin.js" + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" } }, - "node_modules/array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "eslint-formatter-pretty": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-6.0.1.tgz", + "integrity": "sha512-znAUcXmBthdIUmlnRkPSxz3zSJHFUhfHF/nJPcCMVKg/mOa4yUie2Olqg1Ghbi5JJRBZVU3rIgzWSObvIspxMA==", + "dev": true, + "requires": { + "@types/eslint": "^8.44.6", + "ansi-escapes": "^6.2.0", + "chalk": "^5.3.0", + "eslint-rule-docs": "^1.1.235", + "log-symbols": "^6.0.0", + "plur": "^5.1.0", + "string-width": "^7.0.0", + "supports-hyperlinks": "^3.0.0" + }, + "dependencies": { + "@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "ansi-escapes": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "dev": true + }, + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + }, + "emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true + }, + "log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "dev": true, + "requires": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + } + }, + "string-width": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "dev": true, + "requires": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + } } }, - "node_modules/decompress-response": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz", - "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", + "eslint-formatter-summary": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-formatter-summary/-/eslint-formatter-summary-1.1.0.tgz", + "integrity": "sha512-teOh471ZYeEShXhBFb16X87buUjNZa2TMNn3CSf//DIKLNneqbk7u5i9hDDiIaQVvZbBXJHkgYxj8urcNKWbXw==", "dev": true, - "optional": true, - "dependencies": { - "mimic-response": "^2.0.0" + "requires": { + "chalk": "^4.1.0", + "core-js": "^3.9.1", + "np": "^7.4.0" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/istanbul-lib-instrument/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/eslint-import-resolver-node": { + "eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, - "dependencies": { + "requires": { "debug": "^3.2.7", "is-core-module": "^2.13.0", "resolve": "^1.22.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "debug": "^3.2.7" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, - "node_modules/vali-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", - "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==", + "eslint-plugin-import": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@commitlint/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/prettier-eslint-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/prettier-eslint-cli/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "requires": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + } } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "eslint-rule-docs": { + "version": "1.1.235", + "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.235.tgz", + "integrity": "sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==", "dev": true }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "engines": { - "node": ">= 0.4" + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + } } }, - "node_modules/is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, "dependencies": { - "readable-stream": "3" + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" + "requires": { + "estraverse": "^5.2.0" }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, - "bin": { - "he": "bin/he" + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "requires": { + "merge": "^1.2.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "dependencies": { + "merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", + "dev": true + } } }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" } }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", + "optional": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", "to-regex": "^3.0.1" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "optional": true + } } }, - "node_modules/jest-validate": { + "expect": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", + "requires": { + "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" } }, - "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" } }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "optional": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/nanomatch/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "optional": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", - "dev": true, "dependencies": { - "is-primitive": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } } }, - "node_modules/onchange/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "extract-text-webpack-plugin": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz", + "integrity": "sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==", "dev": true, - "dependencies": { - "isobject": "^3.0.1" + "requires": { + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5", + "webpack-sources": "^1.1.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + } + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" } }, - "node_modules/sgmf-scripts/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } + "fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true }, - "node_modules/sgmf-scripts/node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" + "dependencies": { + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + } } }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prettier-eslint-cli/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true }, - "node_modules/stylelint/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "reusify": "^1.0.4" } }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "bser": "2.1.1" } }, - "node_modules/@types/stack-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz", - "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==", + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", "dev": true }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "optional": true, + "requires": { + "escape-string-regexp": "^1.0.5" } }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "requires": { + "flat-cache": "^3.0.4" } }, - "node_modules/sgmf-scripts/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", + "dev": true + }, + "fill-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", + "integrity": "sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA==", "dev": true, - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" + "requires": { + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "requires": { + "to-regex-range": "^5.0.1" } }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, - "engines": { - "node": ">= 6" + "requires": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" } }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "node_modules/update-notifier/node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, - "optional": true, - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "dependencies": { - "ms": "2.0.0" + "requires": { + "is-callable": "^1.1.3" } }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true }, - "node_modules/clone-response/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", "dev": true, - "optional": true, - "engines": { - "node": ">=4" + "requires": { + "for-in": "^1.0.1" } }, - "node_modules/cyclist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", - "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==", "dev": true }, - "node_modules/electron-to-chromium": { - "version": "1.4.565", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.565.tgz", - "integrity": "sha512-XbMoT6yIvg2xzcbs5hCADi0dXBh4//En3oFXmtPX+jiyyiCTiM9DGFT2SLottjpEs9Z8Mh8SqahbR96MaHfuSg==", + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/onchange/node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } + "optional": true }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "requires": { + "map-cache": "^0.2.2" } }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, "dependencies": { - "unique-slug": "^2.0.0" + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" } }, - "node_modules/rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", - "dev": true, - "dependencies": { - "rx-lite": "*" + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "requires": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, - "node_modules/log-update/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, - "optional": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true }, - "node_modules/to-readable-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", - "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==", + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "requires": { + "assert-plus": "^1.0.0" } }, - "node_modules/dwupload/node_modules/del": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/del/-/del-1.2.1.tgz", - "integrity": "sha512-y43KQ302qc1NEygMXswb4bEOyP34h4b/ew9lnID6rqxFp0WhLolYmbeoREBFwyalUxvnUm8SskLmI9UOw+sChA==", + "git-raw-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", "dev": true, - "dependencies": { - "each-async": "^1.0.0", - "globby": "^2.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^3.0.0", - "rimraf": "^2.2.8" + "requires": { + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true + } } }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "github-url-from-git": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", + "integrity": "sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ==", "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } + "optional": true }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, - "bin": { - "which": "bin/which" + "dependencies": { + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true + "dependencies": { + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } } } }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", - "dev": true - }, - "node_modules/cacache/node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", "dev": true, - "dependencies": { - "kind-of": "^6.0.0" + "requires": { + "ini": "4.1.1" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true + } } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", "dev": true, "optional": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" + "requires": { + "ini": "1.3.7" } }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, - "dependencies": { - "errno": "~0.1.7" + "requires": { + "global-prefix": "^3.0.0" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, "dependencies": { - "safe-buffer": "~5.2.0" + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, - "node_modules/issue-regex": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/issue-regex/-/issue-regex-3.1.0.tgz", - "integrity": "sha512-0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, - "engines": { - "node": ">=4.0" + "requires": { + "define-properties": "^1.1.3" } }, - "node_modules/dwupload/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "bin": { - "semver": "bin/semver" + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" } }, - "node_modules/sgmf-scripts/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "dev": true + }, + "handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "node_modules/sgmf-scripts/node_modules/ms": { + "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true }, - "node_modules/update-notifier/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "dev": true, - "optional": true, - "dependencies": { - "yallist": "^4.0.0" + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "optional": true, "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true }, - "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { + "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, "dependencies": { - "type-detect": "4.0.8" + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + } } }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, - "node_modules/@prettier/eslint": { - "name": "prettier-eslint", - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-15.0.1.tgz", - "integrity": "sha512-mGOWVHixSvpZWARqSDXbdtTL54mMBxc5oQYQ6RAqy8jecuNJBgN3t9E5a81G66F8x8fsKNiR1HWaBV66MJDOpg==", - "dev": true, - "dependencies": { - "@types/eslint": "^8.4.2", - "@types/prettier": "^2.6.0", - "@typescript-eslint/parser": "^5.10.0", - "common-tags": "^1.4.0", - "dlv": "^1.1.0", - "eslint": "^8.7.0", - "indent-string": "^4.0.0", - "lodash.merge": "^4.6.0", - "loglevel-colored-level-prefix": "^1.0.0", - "prettier": "^2.5.1", - "pretty-format": "^23.0.1", - "require-relative": "^0.8.7", - "typescript": "^4.5.4", - "vue-eslint-parser": "^8.0.1" - }, - "engines": { - "node": ">=10.0.0" + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "requires": { + "get-intrinsic": "^1.2.2" } }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "has-symbols": "^1.0.2" } }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, - "engines": { - "node": ">=6.9.0" + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "node_modules/jest-config/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true, - "engines": { - "node": ">=8" - } + "optional": true }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/url/node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" } }, - "node_modules/onchange/node_modules/readdirp/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true }, - "node_modules/@samverschueren/stream-to-observable/node_modules/any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", - "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, - "optional": true, - "engines": { - "node": ">=6" + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "requires": { + "lru-cache": "^6.0.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", - "dev": true, "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, - "optional": true, - "engines": { - "node": ">=6" + "requires": { + "whatwg-encoding": "^2.0.0" } }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "optional": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "dependencies": { + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "optional": true + } } }, - "node_modules/moo": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "agent-base": "6", + "debug": "4" } }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true }, - "node_modules/@commitlint/load/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "safer-buffer": ">= 2.1.2 < 3" } }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true, - "optional": true + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", "dev": true }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, - "node_modules/@messageformat/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.2.0.tgz", - "integrity": "sha512-ppbb/7OYqg/t4WdFk8VAfZEV2sNUq3+7VeBAo5sKFhmF786sh6gB7fUeXa2qLTDIcTHS49HivTBN7QNOU5OFTg==", + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + }, "dependencies": { - "@messageformat/date-skeleton": "^1.0.0", - "@messageformat/number-skeleton": "^1.0.0", - "@messageformat/parser": "^5.1.0", - "@messageformat/runtime": "^3.0.1", - "make-plural": "^7.0.0", - "safe-identifier": "^0.4.1" + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + } } }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.8.0" + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } } }, - "node_modules/sgmf-scripts/node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } + "optional": true }, - "node_modules/watchpack-chokidar2/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^1.0.0" + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } } }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } + "import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true }, - "node_modules/fs-write-stream-atomic/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", "dev": true, - "engines": { - "node": ">=4" - } + "optional": true }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "optional": true, - "dependencies": { - "string-width": "^4.1.0" + "requires": { + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.4.2" - } + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } + "ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true }, - "node_modules/package-json/node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "optional": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/new-github-release-url/node_modules/type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/prettier-eslint-cli/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "optional": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "node_modules/onchange/node_modules/readdirp/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/mocha/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "inquirer-autosubmit-prompt": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz", + "integrity": "sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "optional": true, + "requires": { + "chalk": "^2.4.1", + "inquirer": "^6.2.1", + "rxjs": "^6.3.3" }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", - "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "optional": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "optional": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true, + "optional": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "optional": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "optional": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "optional": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true, + "optional": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "optional": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "optional": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, - "node_modules/eslint-formatter-summary/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" } }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/extglob/node_modules/define-property": { + "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } + "irregular-plurals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", + "dev": true }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "requires": { + "hasown": "^2.0.0" } }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" } }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "has-bigints": "^1.0.1" } }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "engines": { - "node": "*" + "requires": { + "binary-extensions": "^2.0.0" } }, - "node_modules/@commitlint/is-ignored/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "engines": { - "node": ">=8" - } + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "node_modules/mississippi/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "optional": true, + "requires": { + "ci-info": "^2.0.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, + "optional": true + } } }, - "node_modules/@commitlint/top-level": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.8.1.tgz", - "integrity": "sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==", + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=v14" + "requires": { + "hasown": "^2.0.0" } }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "hasown": "^2.0.0" } }, - "node_modules/onchange/node_modules/micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "dependencies": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "has-tostringtag": "^1.0.0" } }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" } }, - "node_modules/@types/estree": { + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-dotfile": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.3.tgz", - "integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", "dev": true }, - "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", "dev": true, - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" + "requires": { + "is-primitive": "^2.0.0" } }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true }, - "node_modules/sgmf-scripts/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" } }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" + "optional": true, + "requires": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "optional": true }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true }, - "node_modules/is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", "dev": true, - "dependencies": { - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "optional": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "has-tostringtag": "^1.0.0" } }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "dev": true + }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "optional": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "requires": { + "symbol-observable": "^1.1.0" }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, + "optional": true + } } }, - "node_modules/stylelint/node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "is-path-inside": "^1.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@commitlint/cli": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.8.1.tgz", - "integrity": "sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==", - "dev": true, "dependencies": { - "@commitlint/format": "^17.8.1", - "@commitlint/lint": "^17.8.1", - "@commitlint/load": "^17.8.1", - "@commitlint/read": "^17.8.1", - "@commitlint/types": "^17.8.1", - "execa": "^5.0.0", - "lodash.isfunction": "^3.0.9", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "commitlint": "cli.js" - }, - "engines": { - "node": ">=v14" + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + } } }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "isobject": "^3.0.1" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", "dev": true }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", - "dev": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", + "dev": true }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "is-scoped": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz", + "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==", "dev": true, - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "optional": true, + "requires": { + "scoped-regex": "^2.0.0" } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, - "engines": { - "node": ">=0.4" + "requires": { + "call-bind": "^1.0.2" } }, - "node_modules/safe-identifier": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, - "node_modules/istanbul/node_modules/js-yaml/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" + "requires": { + "has-tostringtag": "^1.0.0" } }, - "node_modules/dwupload/node_modules/globby": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-2.1.0.tgz", - "integrity": "sha512-CqRID2dMaN4Zi9PANiQHhmKaGu7ZASehBLnaDogjR9L3L1EqAGFhflafT0IrSN/zm9xFk+KMTXZCN8pUYOiO/Q==", + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "async": "^1.2.1", - "glob": "^5.0.3", - "object-assign": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "has-symbols": "^1.0.2" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "is-text-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "text-extensions": "^2.0.0" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "requires": { + "which-typed-array": "^1.1.11" } }, - "node_modules/sgmf-scripts/node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "is-url-superb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", "dev": true, - "engines": { - "node": ">=6" - } + "optional": true }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "call-bind": "^1.0.2" } }, - "node_modules/import-local/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optional": true, + "requires": { + "is-docker": "^2.0.0" } }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/has-value/node_modules/isobject": { + "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true }, - "node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "issue-regex": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/issue-regex/-/issue-regex-3.1.0.tgz", + "integrity": "sha512-0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA==", "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "istanbul": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "integrity": "sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg==", "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "requires": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" }, - "engines": { - "node": ">=10.13.0" + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==" + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "requires": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } } }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, "dependencies": { - "imurmurhash": "^0.1.4" + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + } + }, + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0" + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" + "requires": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", - "dev": true, "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, - "node_modules/@csstools/css-tokenizer": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz", - "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" + "jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } - ], - "engines": { - "node": "^14 || ^16 || >=18" } }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, - "engines": { - "node": ">= 4.0.0" + "requires": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" } }, - "node_modules/stream-browserify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, "dependencies": { - "safe-buffer": "~5.1.0" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/dwupload/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, - "optional": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" + "requires": { + "detect-newline": "^3.0.0" } }, - "node_modules/flush-write-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/listr-update-renderer/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "jest-environment-jsdom": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, - "node_modules/stream-http/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true }, - "node_modules/expand-range/node_modules/is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", + "jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "requires": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, - "dependencies": { - "hasown": "^2.0.0" + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, - "engines": { - "node": ">= 0.10" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, - "dependencies": { - "minimist": "^1.2.6" + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, - "engines": { - "node": ">=6" + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" } }, - "node_modules/@jest/transform/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true + }, + "jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" } }, - "node_modules/create-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "requires": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", - "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/dwupload/node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, "dependencies": { - "camelcase": "^3.0.0", - "lodash.assign": "^4.0.6" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/sgmf-scripts/node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "requires": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/update-notifier/node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "dev": true, - "optional": true, "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "requires": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "dev": true }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", "dev": true }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "argparse": "^2.0.1" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/watchpack-chokidar2/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "dependencies": { + "escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } } }, - "node_modules/onchange/node_modules/readdirp/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true }, - "node_modules/eslint-formatter-summary/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } + "json-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-format/-/json-format-1.0.1.tgz", + "integrity": "sha512-MoKIg/lBeQALqjYnqEanikfo3zBKRwclpXJexdF0FUniYAAN2ypEIXBEtpQb+9BkLFtDK1fyTLAsnGlyGfLGxw==", + "dev": true }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, - "node_modules/parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", - "dev": true, - "dependencies": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true }, - "node_modules/@commitlint/execute-rule": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz", - "integrity": "sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==", - "dev": true, - "engines": { - "node": ">=v14" - } + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" } }, - "node_modules/lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ==", + "just-extend": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", + "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", "dev": true }, - "node_modules/dwupload/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "json-buffer": "3.0.1" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "known-css-properties": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", + "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", + "dev": true + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "optional": true, - "engines": { - "node": ">=4", - "yarn": "*" + "requires": { + "package-json": "^6.3.0" } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" + "requires": { + "invert-kv": "^1.0.0" } }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "requires": { + "immediate": "~3.0.5" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/sgmf-scripts/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "optional": true, + "requires": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "optional": true + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "optional": true + } } }, - "node_modules/sgmf-scripts/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "listr-input": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/listr-input/-/listr-input-0.2.1.tgz", + "integrity": "sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "optional": true, + "requires": { + "inquirer": "^7.0.0", + "inquirer-autosubmit-prompt": "^0.2.0", + "rxjs": "^6.5.3", + "through": "^2.3.8" } }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==", "dev": true, - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" + "optional": true + }, + "listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "optional": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "optional": true + } } }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" + "optional": true, + "requires": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" }, - "engines": { - "node": ">=v12.22.7" + "dependencies": { + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "optional": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "optional": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "optional": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "optional": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + } } }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", "dev": true, - "engines": { - "node": ">=10" + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + } } }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", - "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "optional": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "p-locate": "^5.0.0" } }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha512-t3N26QR2IdSN+gqSy9Ds9pBu/J1EAFEshKlUHpJG3rvyJOYgcELIxcIeKKfZk7sjOz11cFfzJRsyFry/JyabJQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" } }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==", "dev": true }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ==", + "dev": true }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha512-LziVL7IDnJjQeeV95Wvhw6G28Z8Q6da87LWKOPWmzBLv4u6FAT/x5v00pyGW0u38UoogNF2JnD3bGgZZDaNEBw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "lodash._bindcallback": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash.restparam": "^3.0.0" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==", + "dev": true }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==", + "dev": true }, - "node_modules/@commitlint/format": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.8.1.tgz", - "integrity": "sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==", + "lodash.assign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha512-/VVxzgGBmbphasTg51FrztxQJ/VgAUpol6zmJuSVSGcNg4g7FA4z7rQV8Ovr9V3vFBNWZhvKWHfpAytjTVUfFA==", "dev": true, - "dependencies": { - "@commitlint/types": "^17.8.1", - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=v14" + "requires": { + "lodash._baseassign": "^3.0.0", + "lodash._createassigner": "^3.0.0", + "lodash.keys": "^3.0.0" } }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true }, - "node_modules/prettier-eslint-cli/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, - "node_modules/sgmf-scripts/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "engines": { - "node": ">=6" - } + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true }, - "node_modules/prettier-eslint-cli/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "dev": true }, - "node_modules/prettier-eslint-cli/node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==", "dev": true }, - "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] + "optional": true }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "lodash.isobject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==", + "dev": true }, - "node_modules/onchange/node_modules/readdirp/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "lodash.isstring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-3.0.1.tgz", + "integrity": "sha512-UiX/KDS9ryxRpGR1q6zSwV9LxsG6PbN3OCD73O48JiRfG1z0cG3LCl3X9AEEdluRNuxduz1u94rS6BW9vSl9Vw==", + "dev": true }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==", "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==", + "dev": true }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", "dev": true }, - "node_modules/mocha/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } + "lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true }, - "node_modules/assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - } + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=10" - } + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } + "lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true }, - "node_modules/nise": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", - "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", + "lodash.zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", + "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", "dev": true, - "dependencies": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "^10.0.2", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } + "optional": true }, - "node_modules/sgmf-scripts/node_modules/inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, "dependencies": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" + "optional": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/conventional-commits-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", - "dev": true, "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=14" + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "optional": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "optional": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "optional": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "optional": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "optional": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + } } }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/micromatch/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "requires": { + "get-func-name": "^2.0.1" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@commitlint/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "get-func-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-3.0.0.tgz", + "integrity": "sha512-6lB4zp64YzgT5KVoAuY0vBXQXNObRmelzfVCpx2dHkGVskX8WwjxTVd/kGUsVzxuOpSEF9BcD54ChSKMVjSsfQ==", + "dev": true + } } }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } + "optional": true }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "yallist": "^3.0.2" } }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } } }, - "node_modules/onchange/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "tmpl": "1.0.5" } }, - "node_modules/cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "optional": true, - "dependencies": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "p-defer": "^1.0.0" } }, - "node_modules/to-regex/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "object-visit": "^1.0.0" } }, - "node_modules/sgmf-scripts/node_modules/extract-text-webpack-plugin": { - "version": "4.0.0-beta.0", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz", - "integrity": "sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==", - "dev": true, - "dependencies": { - "async": "^2.4.1", - "loader-utils": "^1.1.0", - "schema-utils": "^0.4.5", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 6.9.0 || >= 8.9.0" - }, - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" - } + "mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true }, - "node_modules/prettier-eslint-cli/node_modules/yargs/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "optional": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, - "peerDependencies": { - "postcss": "^8.3.3" + "dependencies": { + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "optional": true + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "optional": true + } } }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } + "merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, - "node_modules/onchange/node_modules/chokidar/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, "dependencies": { - "is-glob": "^2.0.0" + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + } } }, - "node_modules/ow/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, - "optional": true, - "engines": { - "node": ">=10" + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "engines": { - "node": ">=0.4.0" + "requires": { + "mime-db": "1.52.0" } }, - "node_modules/sgmf-scripts/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true }, - "node_modules/@commitlint/load/node_modules/has-flag": { + "mimic-response": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "dev": true, "optional": true }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "optional": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/dwupload/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true }, - "node_modules/jest-circus/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" } }, - "node_modules/xml-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/xml-parser/-/xml-parser-1.2.1.tgz", - "integrity": "sha512-lPUzzmS0zdwcNtyNndCl2IwH172ozkUDqmfmH3FcuDzHVl552Kr6oNfsvteHabqTWhsrMgpijqZ/yT7Wo1/Pzw==", + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, "dependencies": { - "debug": "^2.2.0" + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, - "engines": { - "node": ">=10" + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "dependencies": { - "estraverse": "^5.1.0" + "requires": { + "minimist": "^1.2.6" }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + } } }, - "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true + "mobx": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.10.2.tgz", + "integrity": "sha512-B1UGC3ieK3boCjnMEcZSwxqRDMdzX65H/8zOHbuTY8ZhvrIjTUoLRR2TP2bPqIgYRfb3+dUigu8yMZufNjn0LQ==" }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "optional": true, "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + } + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + } + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "dependencies": { + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } } }, - "node_modules/isobject/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "module-not-found-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", + "integrity": "sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g==", "dev": true }, - "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha512-0mzK8ymiWdehTBiJh0vClAzGyQbdtyWqzSVx//EK4N/D+599RFlGfTAsKw2zMSABtDG9C6Ul2+t8f2Lbdjf5mA==", "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", - "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + } } }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + "optional": true }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true }, - "node_modules/sgmf-scripts/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, - "engines": { - "node": ">= 0.8.0" + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/sgmf-scripts/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "new-github-release-url": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/new-github-release-url/-/new-github-release-url-1.0.0.tgz", + "integrity": "sha512-dle7yf655IMjyFUqn6Nxkb18r4AOAkzRcgcZv6WZ0IqrOH4QCEZ8Sm6I7XX21zvHdBeeMeTkhR9qT2Z0EJDx6A==", "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" + "optional": true, + "requires": { + "type-fest": "^0.4.1" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "type-fest": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", + "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "dev": true, + "optional": true + } } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "nise": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", + "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==", "dev": true, - "engines": { - "node": ">=4" + "requires": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/text-encoding": "^0.7.2", + "just-extend": "^6.2.0", + "path-to-regexp": "^6.2.1" + }, + "dependencies": { + "@sinonjs/fake-timers": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + } } }, - "node_modules/onchange/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "node_modules/p-timeout": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", - "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", "dev": true, - "optional": true, - "engines": { - "node": ">=10" + "requires": { + "abbrev": "1" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, - { - "type": "consulting", - "url": "https://feross.org/support" + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } - ] - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/sgmf-scripts/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, - "node_modules/@types/babel__generator": { - "version": "7.6.6", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.6.tgz", - "integrity": "sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==", + "normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } + "optional": true }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "np": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/np/-/np-7.7.0.tgz", + "integrity": "sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q==", "dev": true, "optional": true, - "dependencies": { - "boxen": "^5.0.0", + "requires": { + "@samverschueren/stream-to-observable": "^0.3.1", + "any-observable": "^0.5.1", + "async-exit-hook": "^2.0.1", "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", + "cosmiconfig": "^7.0.0", + "del": "^6.0.0", + "escape-goat": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "execa": "^5.0.0", + "github-url-from-git": "^1.5.0", + "has-yarn": "^2.1.0", + "hosted-git-info": "^3.0.7", + "ignore-walk": "^3.0.3", + "import-local": "^3.0.2", + "inquirer": "^7.3.3", + "is-installed-globally": "^0.3.2", + "is-interactive": "^1.0.0", + "is-scoped": "^2.1.0", + "issue-regex": "^3.1.0", + "listr": "^0.14.3", + "listr-input": "^0.2.1", + "log-symbols": "^4.0.0", + "meow": "^8.1.0", + "minimatch": "^3.0.4", + "new-github-release-url": "^1.0.0", + "npm-name": "^6.0.1", + "onetime": "^5.1.2", + "open": "^7.3.0", + "ow": "^0.21.0", + "p-memoize": "^4.0.1", + "p-timeout": "^4.1.0", + "pkg-dir": "^5.0.0", + "read-pkg-up": "^7.0.1", + "rxjs": "^6.6.3", "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" + "split": "^1.0.1", + "symbol-observable": "^3.0.0", + "terminal-link": "^2.1.1", + "update-notifier": "^5.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "optional": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "dependencies": { + "@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true, + "optional": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "optional": true + } + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "optional": true, + "requires": { + "find-up": "^5.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "optional": true + } } }, - "node_modules/onchange/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "npm-force-resolutions": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/npm-force-resolutions/-/npm-force-resolutions-0.0.10.tgz", + "integrity": "sha512-Jscex+xIU6tw3VsyrwxM1TeT+dd9Fd3UOMAjy6J1TMpuYeEqg4LQZnATQO5vjPrsARm3und6zc6Dii/GUyRE5A==", "dev": true, - "dependencies": { - "ms": "2.0.0" + "requires": { + "json-format": "^1.0.1", + "source-map-support": "^0.5.5", + "xmlhttprequest": "^1.8.0" } }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "npm-name": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/npm-name/-/npm-name-6.0.1.tgz", + "integrity": "sha512-fhKRvUAxaYzMEUZim4mXWyfFbVS+M1CbrCLdAo3txWzrctxKka/h+KaBW0O9Cz5uOM00Nldn2JLWhuwnyW3SUw==", "dev": true, - "dependencies": { - "object-visit": "^1.0.0" + "optional": true, + "requires": { + "got": "^10.6.0", + "is-scoped": "^2.1.0", + "is-url-superb": "^4.0.0", + "lodash.zip": "^4.2.0", + "org-regex": "^1.0.0", + "p-map": "^3.0.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.1.0", + "validate-npm-package-name": "^3.0.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "optional": true, + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "optional": true, + "requires": { + "aggregate-error": "^3.0.0" + } + } } }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" + "requires": { + "path-key": "^3.0.0" } }, - "node_modules/path-to-regexp/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, - "node_modules/dwupload/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true }, - "node_modules/@commitlint/format/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "node_modules/sgmf-scripts/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - }, - "engines": { - "node": ">=0.10.0" - } + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" + "requires": { + "isobject": "^3.0.0" }, - "engines": { - "node": ">=8" + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" } }, - "node_modules/watchpack-chokidar2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "optional": true + "object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "dependencies": { + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "requires": { + "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" + } + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "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", + "has-property-descriptors": "^1.0.2" + } + } + } }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" } }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", "dev": true, - "engines": { - "node": ">=12" + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" + "requires": { + "isobject": "^3.0.1" }, - "engines": { - "node": ">=0.6.0" + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "onchange": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/onchange/-/onchange-3.3.0.tgz", + "integrity": "sha512-0ZQIdGkhG8Y+r8BIcjjDV93X59KkZ4Cc+ZxA9N+wA/3vm1cvd8/f2NXlCPCZpowSd78eCERk29dtuS8+X97MLg==", "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "requires": { + "arrify": "~1.0.1", + "chokidar": "~1.7.0", + "cross-spawn": "~5.1.0", + "minimist": "~1.2.0", + "tree-kill": "~1.2.0" }, - "engines": { - "node": ">=8" + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==" + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + } + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "requires": { + "kind-of": "^3.0.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "to-regex-range": "^2.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + }, + "dependencies": { + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + } + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + }, + "dependencies": { + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "requires": { + "is-number": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } } }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "requires": { + "mimic-fn": "^2.1.0" } }, - "node_modules/symbol-observable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-3.0.0.tgz", - "integrity": "sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==", + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dev": true, "optional": true, - "engines": { - "node": ">=0.10" + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" } }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" } }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "org-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/org-regex/-/org-regex-1.0.0.tgz", + "integrity": "sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ==", "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" + "optional": true + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "requires": { + "lcid": "^1.0.0" } }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "ow": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.21.0.tgz", + "integrity": "sha512-dlsoDe39g7mhdsdrC1R/YwjT7yjVqE3svWwOlMGvN690waBkgEZBmKBdkmKvSt5/wZ6E0Jn/nIesPqMZOpPKqw==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "optional": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "type-fest": "^0.20.2", + "vali-date": "^1.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "dependencies": { + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "optional": true + }, + "dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dev": true, + "optional": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "optional": true + } } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "optional": true }, - "node_modules/watchpack-chokidar2/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", "dev": true, "optional": true }, - "node_modules/update-notifier/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "requires": { + "yocto-queue": "^0.1.0" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "engines": { - "node": ">=6.0" + "requires": { + "p-limit": "^3.0.2" } }, - "node_modules/dwupload/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "optional": true, + "requires": { + "aggregate-error": "^3.0.0" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "p-memoize": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/p-memoize/-/p-memoize-4.0.4.tgz", + "integrity": "sha512-ijdh0DP4Mk6J4FXlOM6vPPoCjPytcEseW8p/k5SDTSSfGV3E9bpt9Yzfifvzp6iohIieoLTkXRb32OWV0fB2Lw==", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "optional": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.0.0", + "p-settle": "^4.1.1" }, - "engines": { - "node": ">=8.0.0" + "dependencies": { + "mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true, + "optional": true + } } }, - "node_modules/glob-base/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "p-reflect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", + "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "node_modules/p-settle": { + "p-settle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", "dev": true, "optional": true, - "dependencies": { + "requires": { "p-limit": "^2.2.2", "p-reflect": "^2.1.0" }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "optional": true, + "requires": { + "p-try": "^2.0.0" + } + } } }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "p-timeout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", + "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "node_modules/dwupload/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "optional": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "optional": true, + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "dev": true, + "optional": true + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "optional": true, + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "dev": true, + "optional": true, + "requires": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "optional": true, + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "optional": true + } + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "optional": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "optional": true + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "optional": true + }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "optional": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "optional": true + }, + "mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "optional": true + }, + "normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "dev": true, + "optional": true + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "optional": true + }, + "responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "optional": true, + "requires": { + "lowercase-keys": "^3.0.0" + } + } + } + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "requires": { + "lowercase-keys": "^1.0.0" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + } + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + } } }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" }, - "engines": { - "node": ">= 0.8.0" + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/@commitlint/rules": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.8.1.tgz", - "integrity": "sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==", + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "dependencies": { - "@commitlint/ensure": "^17.8.1", - "@commitlint/message": "^17.8.1", - "@commitlint/to-lines": "^17.8.1", - "@commitlint/types": "^17.8.1", - "execa": "^5.0.0" - }, - "engines": { - "node": ">=v14" + "requires": { + "callsites": "^3.0.0" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + } } }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } } }, - "node_modules/stylelint/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", + "parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" + "requires": { + "entities": "^4.4.0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true }, - "node_modules/eslint-formatter-summary/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true }, - "node_modules/sgmf-scripts/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true }, - "node_modules/stylelint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true }, - "node_modules/prettier-eslint-cli/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + "requires": { + "pinkie": "^2.0.0" } }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, - "engines": { - "node": ">= 4" + "requires": { + "find-up": "^6.3.0" + }, + "dependencies": { + "find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "requires": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + } + }, + "locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "requires": { + "p-locate": "^6.0.0" + } + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } } }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "plur": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", + "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "requires": { + "irregular-plurals": "^3.3.0" } }, - "node_modules/abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true }, - "node_modules/multimatch/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" } }, - "node_modules/istanbul-lib-report/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "postcss-loader": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", + "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" + "requires": { + "cosmiconfig": "^8.2.0", + "jiti": "^1.18.2", + "semver": "^7.3.8" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@commitlint/format/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } } }, - "node_modules/postcss-media-query-parser": { + "postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } + "postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", "dev": true, - "engines": { - "node": ">=10" + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" } }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.2.tgz", - "integrity": "sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg==", + "postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/plugin-syntax-decorators": "^7.22.10" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "postcss-selector-parser": "^6.0.4" } }, - "node_modules/np/node_modules/pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, - "optional": true, - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "icss-utils": "^5.0.0" } }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true + }, + "postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" + "requires": { + "fast-diff": "^1.1.2" } }, - "node_modules/@jest/expect": { + "pretty-format": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true } } }, - "node_modules/sgmf-scripts/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "dev": true, - "engines": { - "node": ">=4" - } + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true }, - "node_modules/cacheable-lookup": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", - "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "optional": true, - "dependencies": { - "@types/keyv": "^3.1.1", - "keyv": "^4.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" } }, - "node_modules/source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "proxyquire": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz", + "integrity": "sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==", "dev": true, - "optional": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" + "requires": { + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.1", + "resolve": "^1.11.1" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true }, - "node_modules/lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==", + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node_modules/expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, - "dependencies": { - "fill-range": "^2.1.0" + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } } }, - "node_modules/to-regex/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", "dev": true, - "dependencies": { - "kind-of": "^6.0.0" + "optional": true, + "requires": { + "escape-goat": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "optional": true + } } }, - "node_modules/dwupload/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "dev": true, - "engines": { - "node": ">=4" - } + "pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "dev": true }, - "node_modules/npm-name/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "optional": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optional": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" } }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "optional": true, - "dependencies": { - "ansi-regex": "^3.0.0" + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, - "engines": { - "node": ">=4" + "dependencies": { + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "optional": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "optional": true + } } }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2" + "optional": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.3.tgz", - "integrity": "sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==", - "dev": true, "dependencies": { - "@babel/types": "^7.20.7" + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "optional": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "optional": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "optional": true + } } }, - "node_modules/listr-input": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/listr-input/-/listr-input-0.2.1.tgz", - "integrity": "sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg==", + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "optional": true, - "dependencies": { - "inquirer": "^7.0.0", - "inquirer-autosubmit-prompt": "^0.2.0", - "rxjs": "^6.5.3", - "through": "^2.3.8" + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "dependencies": { - "is-arrayish": "^0.2.1" + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "optional": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "optional": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "optional": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "optional": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "optional": true + } } }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "optional": true, - "engines": { - "node": ">=4" + "requires": { + "picomatch": "^2.2.1" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, - "dependencies": { - "ms": "^2.1.1" + "requires": { + "resolve": "^1.1.6" } }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/webpack": { - "version": "4.47.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", - "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, - "dependencies": { - "chrome-trace-event": "^1.0.2", - "loader-utils": "^1.2.3", - "eslint-scope": "^4.0.3", - "tapable": "^1.1.3", - "node-libs-browser": "^2.2.1", - "@webassemblyjs/wasm-edit": "1.9.0", - "terser-webpack-plugin": "^1.4.3", - "@webassemblyjs/helper-module-context": "1.9.0", - "acorn": "^6.4.1", - "watchpack": "^1.7.4", - "@webassemblyjs/wasm-parser": "1.9.0", - "neo-async": "^2.6.1", - "enhanced-resolve": "^4.5.0", - "ajv": "^6.10.2", - "mkdirp": "^0.5.3", - "ajv-keywords": "^3.4.1", - "loader-runner": "^2.4.0", - "schema-utils": "^1.0.0", - "@webassemblyjs/ast": "1.9.0", - "webpack-sources": "^1.4.1", - "memory-fs": "^0.4.1", - "json-parse-better-errors": "^1.0.2", - "micromatch": "^3.1.10" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "optional": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - }, - "webpack-command": { + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, "optional": true } } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/postcss-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@prettier/eslint/node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/@types/node": { - "version": "20.5.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", - "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/sgmf-scripts/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" + "requires": { + "regenerate": "^1.4.2" } }, - "node_modules/dwupload/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" } }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "is-equal-shallow": "^0.1.3" } }, - "node_modules/@samverschueren/stream-to-observable": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", - "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, - "optional": true, - "dependencies": { - "any-observable": "^0.3.0" - }, - "engines": { - "node": ">=6" + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } }, - "zen-observable": { - "optional": true + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } } } }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "set-function-name": "^2.0.0" } }, - "node_modules/@types/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/4YQT5Kp6HxUDb4yhRkm0bJ7TbjvTddqX7PZ5hz6qV3pxSo72f/6YPRo+Mu2DU307tm9IioO69l7uAwn5XNcFA==", + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" } }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true - }, - "node_modules/watchpack-chokidar2/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", "dev": true, "optional": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "rc": "1.2.8" } }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "optional": true, + "requires": { + "rc": "^1.2.8" } }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } } }, - "node_modules/async-exit-hook": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", - "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.12.0" - } + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true }, - "node_modules/inquirer-autosubmit-prompt": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz", - "integrity": "sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q==", + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, - "optional": true, - "dependencies": { - "chalk": "^2.4.1", - "inquirer": "^6.2.1", - "rxjs": "^6.3.3" + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, - "node_modules/mississippi/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true }, - "node_modules/https-browserify": { + "requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", "dev": true, - "optional": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } + "optional": true }, - "node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "requires": { + "resolve-from": "^5.0.0" } }, - "node_modules/bluebird": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", - "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==", + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", "dev": true }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, - "optional": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" }, - "bin": { - "rc": "cli.js" + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, + "responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, - "engines": { - "node": ">= 0.6" + "optional": true, + "requires": { + "lowercase-keys": "^3.0.0" } }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "optional": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "glob": "^7.1.3" } }, - "node_modules/sgmf-scripts/node_modules/inquirer/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "engines": { - "node": ">=12" + "requires": { + "queue-microtask": "^1.2.2" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" + "requires": { + "aproba": "^1.1.1" } }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", "dev": true, - "engines": { - "node": ">=6" + "requires": { + "rx-lite": "*" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optional": true, + "requires": { + "tslib": "^1.9.0" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" } }, - "node_modules/github-url-from-git": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", - "integrity": "sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ==", - "dev": true, - "optional": true - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "ret": "~0.1.10" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" } }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, - "node_modules/sgmf-scripts/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" + "requires": { + "xmlchars": "^2.2.0" } }, - "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "scoped-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz", + "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==", "dev": true, "optional": true }, - "node_modules/update-notifier/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "optional": true, + "requires": { + "semver": "^6.3.0" } }, - "node_modules/create-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "randombytes": "^2.1.0" } }, - "node_modules/arr-diff": { + "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true }, - "node_modules/@commitlint/read": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.8.1.tgz", - "integrity": "sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==", - "dev": true, - "dependencies": { - "@commitlint/top-level": "^17.8.1", - "@commitlint/types": "^17.8.1", - "fs-extra": "^11.0.0", - "git-raw-commits": "^2.0.11", - "minimist": "^1.2.6" - }, - "engines": { - "node": ">=v14" + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, - "engines": { - "node": ">=4.0" + "requires": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" } }, - "node_modules/onchange/node_modules/is-binary-path": { + "set-immediate-shim": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true - }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dev": true, - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/prettier-eslint-cli/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", "dev": true }, - "node_modules/watchpack-chokidar2/node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, - "optional": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" } }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "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.", + "sgmf-scripts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/sgmf-scripts/-/sgmf-scripts-2.4.2.tgz", + "integrity": "sha512-Pe0x32CMoHfWNNmIPN8e3NXYBOrcwrJkh5rGVHYBFTRhiPt5dsDeYSE/CYs+mkmDFrL4o/nRk8TscUgwqvGjRA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "chalk": "^1.1.3", + "chokidar": "^1.7.0", + "dwupload": "^3.8.2", + "extract-text-webpack-plugin": "^4.0.0-beta.0", + "inquirer": "^3.0.6", + "istanbul": "^0.4.5", + "mocha": "^5.2.0", + "onchange": "^3.2.1", + "optionator": "^0.8.2", + "shelljs": "^0.8.5", + "webpack": "^4.12.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/is-scoped": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz", - "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==", - "dev": true, - "optional": true, "dependencies": { - "scoped-regex": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@messageformat/number-skeleton": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.2.0.tgz", - "integrity": "sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg==", - "dev": true - }, - "node_modules/package-json/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/sgmf-scripts/node_modules/he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/sgmf-scripts/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true, - "optional": true - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "optional": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/p-event/node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "optional": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/async-each": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", - "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@types/yargs": { - "version": "17.0.29", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", - "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/cli-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.2.0.tgz", - "integrity": "sha512-AB1fVExK7r4Lfk61XOZuZc83tvDxWsnT9KsY3j9gYsaWCOVc7bCajJlA7S/lVSqC7MX34afRpnfeYoLZ3O4PyQ==", - "dev": true, - "dependencies": { - "colors": "0.3.0" - }, - "engines": { - "node": ">= 0.2.0" - } - }, - "node_modules/node-notifier/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/sgmf-scripts/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-http/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/package-json/node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "optional": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/onchange/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@commitlint/is-ignored": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz", - "integrity": "sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==", - "dev": true, - "dependencies": { - "@commitlint/types": "^17.8.1", - "semver": "7.5.4" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/@commitlint/types": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", - "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/listr-verbose-renderer/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "optional": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/buffer/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sgmf-scripts/node_modules/micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", - "dev": true, - "dependencies": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/irregular-plurals": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", - "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/prettier-eslint-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/sgmf-scripts/node_modules/inquirer/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/stylelint/node_modules/meow": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", - "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/onchange/node_modules/anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "dependencies": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mobx": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.10.2.tgz", - "integrity": "sha512-B1UGC3ieK3boCjnMEcZSwxqRDMdzX65H/8zOHbuTY8ZhvrIjTUoLRR2TP2bPqIgYRfb3+dUigu8yMZufNjn0LQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/sgmf-scripts/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/onchange/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/json-format": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-format/-/json-format-1.0.1.tgz", - "integrity": "sha512-MoKIg/lBeQALqjYnqEanikfo3zBKRwclpXJexdF0FUniYAAN2ypEIXBEtpQb+9BkLFtDK1fyTLAsnGlyGfLGxw==", - "dev": true - }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "gopd": "^1.0.1", - "regexp.prototype.flags": "^1.5.1", - "object-keys": "^1.1.1", - "has-proto": "^1.0.1", - "is-array-buffer": "^3.0.2", - "es-set-tostringtag": "^2.0.1", - "internal-slot": "^1.0.5", - "typed-array-buffer": "^1.0.0", - "es-to-primitive": "^1.2.1", - "hasown": "^2.0.0", - "get-intrinsic": "^1.2.2", - "is-weakref": "^1.0.2", - "is-callable": "^1.2.7", - "string.prototype.trimend": "^1.0.7", - "available-typed-arrays": "^1.0.5", - "is-shared-array-buffer": "^1.0.2", - "object.assign": "^4.1.4", - "arraybuffer.prototype.slice": "^1.0.2", - "is-regex": "^1.1.4", - "is-typed-array": "^1.1.12", - "has-symbols": "^1.0.3", - "array-buffer-byte-length": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "get-symbol-description": "^1.0.0", - "safe-regex-test": "^1.0.0", - "unbox-primitive": "^1.0.2", - "safe-array-concat": "^1.0.1", - "is-string": "^1.0.7", - "call-bind": "^1.0.5", - "function.prototype.name": "^1.1.6", - "typed-array-byte-length": "^1.0.0", - "object-inspect": "^1.13.1", - "globalthis": "^1.0.3", - "typed-array-length": "^1.0.4", - "which-typed-array": "^1.1.13", - "has-property-descriptors": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "string.prototype.trimstart": "^1.0.7", - "is-negative-zero": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/dwupload/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/eslint-formatter-pretty/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "dependencies": { - "dedent": "^1.0.0", - "jest-matcher-utils": "^29.7.0", - "jest-each": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/environment": "^29.7.0", - "jest-snapshot": "^29.7.0", - "co": "^4.6.0", - "jest-runtime": "^29.7.0", - "@types/node": "*", - "chalk": "^4.0.0", - "@jest/test-result": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "jest-message-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "is-generator-fn": "^2.0.0", - "pure-rand": "^6.0.0", - "@jest/types": "^29.6.3", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "dependencies": { - "is-equal-shallow": "^0.1.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", - "dev": true - }, - "node_modules/is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "dependencies": { - "cjs-module-lexer": "^1.0.0", - "jest-mock": "^29.7.0", - "@jest/environment": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-snapshot": "^29.7.0", - "collect-v8-coverage": "^1.0.0", - "@jest/globals": "^29.7.0", - "@types/node": "*", - "chalk": "^4.0.0", - "@jest/test-result": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "@jest/source-map": "^29.6.3", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "strip-bom": "^4.0.0", - "@jest/transform": "^29.7.0", - "glob": "^7.1.3", - "jest-resolve": "^29.7.0", - "@jest/types": "^29.6.3", - "@jest/fake-timers": "^29.7.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3" - } - }, - "node_modules/multimatch/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "optional": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/dwupload/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/onchange/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/window-size": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", - "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==", - "dev": true, - "bin": { - "window-size": "cli.js" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/org-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/org-regex/-/org-regex-1.0.0.tgz", - "integrity": "sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/istanbul/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/create-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "optional": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/har-validator/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/inquirer-autosubmit-prompt/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "optional": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jsdom/node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/sgmf-scripts/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/resolve-global/node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", - "dev": true, - "dependencies": { - "ini": "^1.3.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/onchange/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "optional": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-plural": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.3.0.tgz", - "integrity": "sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw==", - "dev": true - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/new-github-release-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/new-github-release-url/-/new-github-release-url-1.0.0.tgz", - "integrity": "sha512-dle7yf655IMjyFUqn6Nxkb18r4AOAkzRcgcZv6WZ0IqrOH4QCEZ8Sm6I7XX21zvHdBeeMeTkhR9qT2Z0EJDx6A==", - "dev": true, - "optional": true, - "dependencies": { - "type-fest": "^0.4.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/onchange/node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/onchange/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "optional": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/update-notifier/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true - }, - "node_modules/globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true - }, - "node_modules/elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", - "dev": true - }, - "node_modules/caller": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/caller/-/caller-1.1.0.tgz", - "integrity": "sha512-n+21IZC3j06YpCWaxmUy5AnVqhmCIM2bQtqQyy00HJlmStRt6kwDX5F9Z97pqwAB+G/tgSz6q/kUBbNyQzIubw==", - "dev": true - }, - "node_modules/eslint-formatter-summary/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/from2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/stylelint/node_modules/supports-hyperlinks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", - "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=14.18" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg==", - "deprecated": "This module is no longer maintained, try this instead:\n npm i nyc\nVisit https://istanbul.js.org/integrations for other alternatives.", - "dev": true, - "dependencies": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "istanbul": "lib/cli.js" - } - }, - "node_modules/@commitlint/ensure": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.8.1.tgz", - "integrity": "sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==", - "dev": true, - "dependencies": { - "@commitlint/types": "^17.8.1", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.startcase": "^4.4.0", - "lodash.upperfirst": "^4.3.1" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/walk": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", - "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", - "dev": true, - "dependencies": { - "foreachasync": "^3.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/onchange/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/prettier-eslint-cli/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint": { - "version": "15.11.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz", - "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==", - "dev": true, - "dependencies": { - "ignore": "^5.2.4", - "table": "^6.8.1", - "@csstools/media-query-list-parser": "^2.1.4", - "file-entry-cache": "^7.0.0", - "css-functions-list": "^3.2.1", - "known-css-properties": "^0.29.0", - "globby": "^11.1.0", - "import-lazy": "^4.0.0", - "strip-ansi": "^6.0.1", - "normalize-path": "^3.0.0", - "imurmurhash": "^0.1.4", - "mathml-tag-names": "^2.1.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss": "^8.4.28", - "@csstools/css-parser-algorithms": "^2.3.1", - "style-search": "^0.1.0", - "svg-tags": "^1.0.0", - "write-file-atomic": "^5.0.1", - "is-plain-object": "^5.0.0", - "postcss-value-parser": "^4.2.0", - "picocolors": "^1.0.0", - "debug": "^4.3.4", - "balanced-match": "^2.0.0", - "string-width": "^4.2.3", - "@csstools/selector-specificity": "^3.0.0", - "globjoin": "^0.1.4", - "html-tags": "^3.3.1", - "colord": "^2.9.3", - "@csstools/css-tokenizer": "^2.2.0", - "resolve-from": "^5.0.0", - "supports-hyperlinks": "^3.0.0", - "fast-glob": "^3.3.1", - "global-modules": "^2.0.0", - "meow": "^10.1.5", - "css-tree": "^2.3.1", - "postcss-selector-parser": "^6.0.13", - "postcss-safe-parser": "^6.0.0", - "fastest-levenshtein": "^1.0.16", - "cosmiconfig": "^8.2.0", - "micromatch": "^4.0.5" - }, - "bin": { - "stylelint": "bin/stylelint.mjs" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "jest-runner": "^29.7.0", - "jest-circus": "^29.7.0", - "jest-get-type": "^29.6.3", - "deepmerge": "^4.2.2", - "babel-jest": "^29.7.0", - "parse-json": "^5.2.0", - "chalk": "^4.0.0", - "strip-json-comments": "^3.1.1", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "jest-regex-util": "^29.6.3", - "jest-environment-node": "^29.7.0", - "jest-validate": "^29.7.0", - "pretty-format": "^29.7.0", - "glob": "^7.1.3", - "jest-resolve": "^29.7.0", - "@jest/types": "^29.6.3", - "@jest/test-sequencer": "^29.7.0", - "graceful-fs": "^4.2.9", - "ci-info": "^3.2.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", - "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^2.0.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/fs-write-stream-atomic/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "optional": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@prettier/eslint/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer-autosubmit-prompt/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true, - "optional": true - }, - "node_modules/inquirer-autosubmit-prompt/node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true, - "optional": true - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer-autosubmit-prompt/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "optional": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/table/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@commitlint/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sgmf-scripts/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stylelint-scss": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", - "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", - "dev": true, - "dependencies": { - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "stylelint": "^14.5.1 || ^15.0.0" - } - }, - "node_modules/@jest/console/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/require-relative": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", - "integrity": "sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==", - "dev": true - }, - "node_modules/onchange/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "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" - } - }, - "node_modules/object.pick/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sgmf-scripts/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "optional": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sgmf-scripts/node_modules/micromatch/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/aggregate-error/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/any-observable": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.5.1.tgz", - "integrity": "sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true - }, - "zen-observable": { - "optional": true - } - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/from2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/listr-verbose-renderer/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "optional": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/better-console": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/better-console/-/better-console-0.2.4.tgz", - "integrity": "sha512-EWX+3mK8tksds6xANDyxftA3OYmz0q2Qo9GyRzJNRgYPdyCDjddzXh2rkiouppsdMi3x8xDwnPE5uECIrcvgyQ==", - "dev": true, - "dependencies": { - "cli-table": "~0.2.0", - "colors": "~0.6.0-1" - } - }, - "node_modules/sync-queue": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sync-queue/-/sync-queue-0.0.2.tgz", - "integrity": "sha512-O8SNQrdCjhoVVr+hyY9ZaN4pSuIX5khAXDaCFftoSJCTaSHO4SLLskKC2nNpQwMsvM2rZQXPkEd9lk6yoeOHTA==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-formatter-pretty/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sgmf-scripts/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/np/node_modules/hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/plur": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", - "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", - "dev": true, - "dependencies": { - "irregular-plurals": "^3.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/prettier-eslint-cli/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/conventional-changelog-conventionalcommits": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", - "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", - "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/jsdom": "^20.0.0", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0", - "jsdom": "^20.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-table/node_modules/colors": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.3.0.tgz", - "integrity": "sha512-zRIkNRjxdyFV2Vuq0Bh8hL/rWgQsBM19aB6Uq9CMot2olUuD1DEPon9SB3GZNDrfOojb6a74AQhSM5BKrAr9tA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", - "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/node-libs-browser/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/pupa/node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "dev": true, - "optional": true - }, - "node_modules/sgmf-scripts/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "optional": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/sgmf-scripts/node_modules/mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "dependencies": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/package-json/node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "optional": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/lodash.mergewith": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true - }, - "node_modules/lodash._createassigner": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", - "integrity": "sha512-LziVL7IDnJjQeeV95Wvhw6G28Z8Q6da87LWKOPWmzBLv4u6FAT/x5v00pyGW0u38UoogNF2JnD3bGgZZDaNEBw==", - "dev": true, - "dependencies": { - "lodash._bindcallback": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/update-notifier/node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/sgmf-scripts/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^2.0.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/lodash.zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", - "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", - "dev": true, - "optional": true - }, - "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", - "dev": true, - "dependencies": { - "chrome-trace-event": "^1.0.2", - "eslint-scope": "5.1.1", - "tapable": "^2.1.1", - "@webassemblyjs/wasm-edit": "^1.11.5", - "terser-webpack-plugin": "^5.3.7", - "@types/eslint-scope": "^3.7.3", - "acorn": "^8.7.1", - "watchpack": "^2.4.0", - "@webassemblyjs/wasm-parser": "^1.11.5", - "neo-async": "^2.6.2", - "enhanced-resolve": "^5.15.0", - "events": "^3.2.0", - "browserslist": "^4.14.5", - "mime-types": "^2.1.27", - "@types/estree": "^1.0.0", - "loader-runner": "^4.2.0", - "schema-utils": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "@webassemblyjs/ast": "^1.11.5", - "es-module-lexer": "^1.2.1", - "webpack-sources": "^3.2.3", - "json-parse-even-better-errors": "^2.3.1", - "acorn-import-assertions": "^1.9.0", - "graceful-fs": "^4.2.9" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", - "dev": true, - "dependencies": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/create-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.6.tgz", - "integrity": "sha512-zfM4ipmxVKWdxtDaJ3MP3pBurDXOCoyjvlpE3u6Qzrmw4BPbfm4/ambIeTk/r/J0iq/+2/xp0Fmt+gFvXJY2PQ==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/listr-update-renderer/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/loglevel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/istanbul/node_modules/resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", - "dev": true - }, - "node_modules/is-path-in-cwd/node_modules/is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==", - "dev": true - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/prettier-eslint-cli/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz", - "integrity": "sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "optional": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/parse-glob/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dwupload/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/object-visit/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", - "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^6.0.13" - } - }, - "node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/import-local/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/onchange/node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/dwupload/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/dwupload/node_modules/node-notifier": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", - "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", - "dev": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" - } - }, - "node_modules/dwupload/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prettier-eslint-cli/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/onchange/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/sgmf-scripts/node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz", - "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/nanomatch/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", - "dev": true - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/prettier-eslint-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/inquirer-autosubmit-prompt/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/prettier-eslint-cli/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/eslint-formatter-pretty/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/np/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", - "dev": true, - "dependencies": { - "merge": "^1.2.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "optional": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", - "dev": true - }, - "node_modules/boxen/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/table/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "dependencies": { - "serialize-javascript": "6.0.0", - "yargs-unparser": "2.0.0", - "js-yaml": "4.1.0", - "yargs": "16.2.0", - "ansi-colors": "4.1.1", - "log-symbols": "4.1.0", - "diff": "5.0.0", - "nanoid": "3.3.3", - "yargs-parser": "20.2.4", - "ms": "2.1.3", - "supports-color": "8.1.1", - "chokidar": "3.5.3", - "strip-json-comments": "3.1.1", - "debug": "4.3.4", - "minimatch": "5.0.1", - "find-up": "5.0.0", - "browser-stdout": "1.3.1", - "escape-string-regexp": "4.0.0", - "glob": "7.2.0", - "workerpool": "6.2.1", - "he": "1.2.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/stylelint/node_modules/read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", - "dev": true, - "dependencies": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/mississippi/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/proxyquire": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz", - "integrity": "sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==", - "dev": true, - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, - "node_modules/nanomatch/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/prettier-eslint-cli/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@messageformat/runtime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", - "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", - "dev": true, - "dependencies": { - "make-plural": "^7.0.0" - } - }, - "node_modules/log-update/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@commitlint/format/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sgmf-scripts/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/boxen/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/sgmf-scripts/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@commitlint/format/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/dwupload/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/parse-glob/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz", - "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/onchange/node_modules/chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dev": true, - "dependencies": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - }, - "optionalDependencies": { - "fsevents": "^1.0.0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/np/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "optional": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "optional": true, - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sgmf-scripts/node_modules/chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dev": true, - "dependencies": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - }, - "optionalDependencies": { - "fsevents": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, - "optional": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.3.tgz", - "integrity": "sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", - "dev": true, - "dependencies": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parallel-transform/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/stylelint/node_modules/redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", - "dev": true, - "dependencies": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/vue-eslint-parser/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jsdom/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flush-write-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/inquirer-autosubmit-prompt/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier-eslint-cli/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stylelint/node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "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" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "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" - } - }, - "node_modules/duplexify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/dwupload/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/listr-update-renderer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dev": true, - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/package-json/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jsdom/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "optional": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/prettier-eslint-cli/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz", - "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/sgmf-scripts/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/readdirp/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/stream-http/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/jest-runtime/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "dependencies": { - "text-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true - }, - "node_modules/prettier-eslint-cli/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/np/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", - "dev": true, - "optional": true - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/v8-to-istanbul": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", - "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", - "dev": true - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz", - "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.3.2", - "@csstools/css-tokenizer": "^2.2.1" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser/node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.3.tgz", - "integrity": "sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/onchange/node_modules/readdirp/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@prettier/eslint/node_modules/@types/eslint": { - "version": "8.44.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.6.tgz", - "integrity": "sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/prettier-eslint-cli/node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@tridnguyen/config": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@tridnguyen/config/-/config-2.3.1.tgz", - "integrity": "sha512-/2MiM6C5DUwdGY2pxDbQOZkpWqQwl1XRIlEXx7xn9s1uFSP+GAuqMlfe6T/8NKEVMFtjQe8vDeV+uxR4WNqhEQ==", - "dev": true, - "dependencies": { - "better-console": "^0.2.4", - "caller": "^1.0.0", - "lodash.assign": "^3.2.0", - "lodash.isobject": "^3.0.2", - "lodash.isstring": "^3.0.1" - } - }, - "node_modules/ow": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/ow/-/ow-0.21.0.tgz", - "integrity": "sha512-dlsoDe39g7mhdsdrC1R/YwjT7yjVqE3svWwOlMGvN690waBkgEZBmKBdkmKvSt5/wZ6E0Jn/nIesPqMZOpPKqw==", - "dev": true, - "optional": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "callsites": "^3.1.0", - "dot-prop": "^6.0.1", - "lodash.isequal": "^4.5.0", - "type-fest": "^0.20.2", - "vali-date": "^1.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unset-value/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js-compat": { - "version": "3.33.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz", - "integrity": "sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/to-regex/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "optional": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/known-css-properties": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", - "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", - "dev": true - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true, - "optional": true - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylelint/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", - "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-async-generator-functions": "^7.23.2", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-transform-spread": "^7.22.5", - "semver": "^6.3.1", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.23.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "core-js-compat": "^3.31.0", - "@babel/compat-data": "^7.23.2", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/types": "^7.23.0", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-modules-amd": "^7.23.0", - "@babel/plugin-transform-reserved-words": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/np": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/np/-/np-7.7.0.tgz", - "integrity": "sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q==", - "dev": true, - "optional": true, - "dependencies": { - "async-exit-hook": "^2.0.1", - "semver": "^7.3.4", - "update-notifier": "^5.0.1", - "read-pkg-up": "^7.0.1", - "@samverschueren/stream-to-observable": "^0.3.1", - "p-memoize": "^4.0.1", - "rxjs": "^6.6.3", - "log-symbols": "^4.0.0", - "listr": "^0.14.3", - "npm-name": "^6.0.1", - "is-scoped": "^2.1.0", - "hosted-git-info": "^3.0.7", - "ow": "^0.21.0", - "symbol-observable": "^3.0.0", - "github-url-from-git": "^1.5.0", - "execa": "^5.0.0", - "is-interactive": "^1.0.0", - "inquirer": "^7.3.3", - "import-local": "^3.0.2", - "is-installed-globally": "^0.3.2", - "del": "^6.0.0", - "chalk": "^4.1.0", - "split": "^1.0.1", - "escape-goat": "^3.0.0", - "p-timeout": "^4.1.0", - "pkg-dir": "^5.0.0", - "minimatch": "^3.0.4", - "onetime": "^5.1.2", - "new-github-release-url": "^1.0.0", - "meow": "^8.1.0", - "any-observable": "^0.5.1", - "listr-input": "^0.2.1", - "open": "^7.3.0", - "escape-string-regexp": "^4.0.0", - "has-yarn": "^2.1.0", - "ignore-walk": "^3.0.3", - "cosmiconfig": "^7.0.0", - "issue-regex": "^3.1.0", - "terminal-link": "^2.1.1" - }, - "bin": { - "np": "source/cli.js" - }, - "engines": { - "git": ">=2.11.0", - "node": ">=10", - "npm": ">=6.8.0", - "yarn": ">=1.7.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/np?sponsor=1" - } - }, - "node_modules/sgmf-scripts/node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/np/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/sgmf-scripts/node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sgmf-scripts/node_modules/mocha/node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/np/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylelint/node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@prettier/eslint/node_modules/pretty-format": { - "version": "23.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", - "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0", - "ansi-styles": "^3.2.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", - "dev": true - }, - "node_modules/lodash.isobject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", - "integrity": "sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==", - "dev": true - }, - "node_modules/sinon/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-formatter-pretty": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.1.0.tgz", - "integrity": "sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==", - "dev": true, - "dependencies": { - "@types/eslint": "^7.2.13", - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "eslint-rule-docs": "^1.1.5", - "log-symbols": "^4.0.0", - "plur": "^4.0.0", - "string-width": "^4.2.0", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", - "dev": true, - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prettier-eslint-cli/node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, - "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@commitlint/load/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/onchange/node_modules/readdirp/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "optional": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", - "dev": true - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/dwupload/node_modules/yargs": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "integrity": "sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==", - "dev": true, - "dependencies": { - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "lodash.assign": "^4.0.3", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.1", - "which-module": "^1.0.0", - "window-size": "^0.2.0", - "y18n": "^3.2.1", - "yargs-parser": "^2.4.1" - } - }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/glob-base/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^2.0.0" - } - }, - "node_modules/node-notifier/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/fs-write-stream-atomic/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/inquirer-autosubmit-prompt/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "optional": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsdom/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "dependencies": { - "timers-browserify": "^2.0.4", - "crypto-browserify": "^3.11.0", - "browserify-zlib": "^0.2.0", - "os-browserify": "^0.3.0", - "url": "^0.11.0", - "https-browserify": "^1.0.0", - "util": "^0.11.0", - "process": "^0.11.10", - "console-browserify": "^1.1.0", - "path-browserify": "0.0.1", - "buffer": "^4.3.0", - "constants-browserify": "^1.0.0", - "readable-stream": "^2.3.3", - "tty-browserify": "0.0.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "stream-browserify": "^2.0.1", - "vm-browserify": "^1.0.1", - "querystring-es3": "^0.2.0", - "punycode": "^1.2.4", - "stream-http": "^2.7.2", - "assert": "^1.1.1", - "string_decoder": "^1.0.0" - } - }, - "node_modules/npm-name/node_modules/type-fest": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", - "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/sgmf-scripts/node_modules/anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "dependencies": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-functions-list": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", - "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==", - "dev": true, - "engines": { - "node": ">=12 || >=16" - } - }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/update-notifier/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/dwdav": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/dwdav/-/dwdav-3.5.1.tgz", - "integrity": "sha512-1f5xgaey0uQvdRyKk7F3w9q2pvA2FsU2AHzHA9rMadOI1nTNxq3c/ibq/lLFugfrS7g1I1/AWKzyXdiiZm8ZCg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15", - "minimist": "^1.1.1", - "request": "^2.58.0", - "xml-parser": "^1.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/package-json/node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "dev": true, - "optional": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/jiti": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz", - "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "optional": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js": { - "version": "3.33.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.1.tgz", - "integrity": "sha512-qVSq3s+d4+GsqN0teRCJtM6tdEEXyWxjzbhVrCHmBS5ZTM0FS2MOS0D13dUXAWDUN6a+lHI/N1hF9Ytz6iLl9Q==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/onchange/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/onchange/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@commitlint/is-ignored/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/dwupload/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/jest": { - "version": "29.5.6", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.6.tgz", - "integrity": "sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==", - "dev": true, - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "node_modules/update-notifier/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/node-libs-browser/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "deprecated": "This module is no longer supported.", - "dev": true - }, - "node_modules/dwupload/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/parallel-transform/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/prettier-eslint-cli/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/mississippi/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/npm-name": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/npm-name/-/npm-name-6.0.1.tgz", - "integrity": "sha512-fhKRvUAxaYzMEUZim4mXWyfFbVS+M1CbrCLdAo3txWzrctxKka/h+KaBW0O9Cz5uOM00Nldn2JLWhuwnyW3SUw==", - "dev": true, - "optional": true, - "dependencies": { - "got": "^10.6.0", - "is-scoped": "^2.1.0", - "is-url-superb": "^4.0.0", - "lodash.zip": "^4.2.0", - "org-regex": "^1.0.0", - "p-map": "^3.0.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.1.0", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/onchange/node_modules/readdirp/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/inquirer/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sgmf-scripts/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/sgmf-scripts/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/module-not-found-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", - "integrity": "sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g==", - "dev": true - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/sgmf-scripts/node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/sgmf-scripts/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/sgmf-scripts/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", - "dev": true, - "optional": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mixin-deep/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", - "dev": true - }, - "node_modules/eslint-formatter-pretty/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/onchange/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", - "dev": true - }, - "node_modules/sinon/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dwupload/node_modules/lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", - "dev": true - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/sgmf-scripts/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/onchange/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/np/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stylelint/node_modules/read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - } - }, - "node_modules/randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "dependencies": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/package-json/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/np/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/nanomatch/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sgmf-scripts/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/listr/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/stream-browserify/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/dwupload/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/jest-message-util/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/istanbul/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/inquirer-autosubmit-prompt/node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", - "dev": true, - "optional": true - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/npm-force-resolutions": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/npm-force-resolutions/-/npm-force-resolutions-0.0.10.tgz", - "integrity": "sha512-Jscex+xIU6tw3VsyrwxM1TeT+dd9Fd3UOMAjy6J1TMpuYeEqg4LQZnATQO5vjPrsARm3und6zc6Dii/GUyRE5A==", - "dev": true, - "dependencies": { - "json-format": "^1.0.1", - "source-map-support": "^0.5.5", - "xmlhttprequest": "^1.8.0" - }, - "bin": { - "npm-force-resolutions": "index.js" - } - }, - "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-memoize": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/p-memoize/-/p-memoize-4.0.4.tgz", - "integrity": "sha512-ijdh0DP4Mk6J4FXlOM6vPPoCjPytcEseW8p/k5SDTSSfGV3E9bpt9Yzfifvzp6iohIieoLTkXRb32OWV0fB2Lw==", - "dev": true, - "optional": true, - "dependencies": { - "map-age-cleaner": "^0.1.3", - "mimic-fn": "^3.0.0", - "p-settle": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/p-memoize?sponsor=1" - } - }, - "node_modules/sgmf-scripts/node_modules/chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", - "dev": true - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/sinon": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz", - "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==", - "deprecated": "16.1.1", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.3.0", - "@sinonjs/samsam": "^8.0.0", - "diff": "^5.1.0", - "nise": "^5.1.4", - "supports-color": "^7.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/sgmf-scripts/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stylelint/node_modules/camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", - "dev": true, - "dependencies": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==", - "dev": true - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/sgmf-scripts/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-url-superb": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", - "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "dependencies": { - "jest-config": "^29.7.0", - "jest-runner": "^29.7.0", - "strip-ansi": "^6.0.0", - "jest-haste-map": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-changed-files": "^29.7.0", - "@jest/reporters": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-watcher": "^29.7.0", - "@types/node": "*", - "@jest/console": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "chalk": "^4.0.0", - "@jest/test-result": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-validate": "^29.7.0", - "@jest/transform": "^29.7.0", - "exit": "^0.1.2", - "pretty-format": "^29.7.0", - "jest-resolve": "^29.7.0", - "@jest/types": "^29.6.3", - "graceful-fs": "^4.2.9", - "ci-info": "^3.2.0", - "ansi-escapes": "^4.2.1", - "micromatch": "^4.0.4" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/sinon/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-notifier": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", - "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", - "dev": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" - } - }, - "node_modules/@commitlint/config-conventional": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz", - "integrity": "sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==", - "dev": true, - "dependencies": { - "conventional-changelog-conventionalcommits": "^6.1.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@eslint/js": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", - "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/listr-update-renderer/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "optional": true, - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randomatic/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ignore-walk/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", - "dev": true, - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/@commitlint/lint": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.8.1.tgz", - "integrity": "sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==", - "dev": true, - "dependencies": { - "@commitlint/is-ignored": "^17.8.1", - "@commitlint/parse": "^17.8.1", - "@commitlint/rules": "^17.8.1", - "@commitlint/types": "^17.8.1" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/parallel-transform/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/postcss-loader": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", - "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", - "dev": true, - "dependencies": { - "cosmiconfig": "^8.2.0", - "jiti": "^1.18.2", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/@commitlint/format/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/style-loader": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", - "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/prettier-eslint-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/memory-fs/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/dwupload/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sgmf-scripts/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "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" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cache-base/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/sgmf-scripts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/sgmf-scripts/-/sgmf-scripts-2.4.2.tgz", - "integrity": "sha512-Pe0x32CMoHfWNNmIPN8e3NXYBOrcwrJkh5rGVHYBFTRhiPt5dsDeYSE/CYs+mkmDFrL4o/nRk8TscUgwqvGjRA==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "chokidar": "^1.7.0", - "dwupload": "^3.8.2", - "extract-text-webpack-plugin": "^4.0.0-beta.0", - "inquirer": "^3.0.6", - "istanbul": "^0.4.5", - "mocha": "^5.2.0", - "onchange": "^3.2.1", - "optionator": "^0.8.2", - "shelljs": "^0.8.5", - "webpack": "^4.12.0" - }, - "bin": { - "sgmf-scripts": "index.js" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dwupload/node_modules/globby/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "optional": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true, - "optional": true - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/listr-update-renderer/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", - "dev": true, - "dependencies": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=0.12.0" - }, - "optionalDependencies": { - "source-map": "~0.2.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/istanbul/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-keys": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", - "integrity": "sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA==", - "dev": true, - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", + "dev": true + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + } + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==" + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + } + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "to-regex-range": "^2.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + }, + "dependencies": { + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + } + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + }, + "dependencies": { + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + } + } + } + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "dependencies": { + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "requires": { + "is-number": "^3.0.0" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "webpack": { + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + } + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } + } + } } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "shebang-regex": "^3.0.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, - "node_modules/dwupload/node_modules/jszip": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.8.0.tgz", - "integrity": "sha512-cnpQrXvFSLdsR9KR5/x7zdf6c3m8IhZfZzSblFEHSqBaVwD2nvJ4CuCKLyvKvwBgZm08CgfSoiTBQLm5WW9hGw==", - "dev": true, - "dependencies": { - "pako": "~1.0.2" - } + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "sinon": { + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz", + "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "requires": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^10.3.0", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.4", + "supports-color": "^7.2.0" }, - "engines": { - "node": "*" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" + "diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, - { - "type": "consulting", - "url": "https://feross.org/support" + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } - ] + } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, - "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "dev": true, - "optional": true, - "dependencies": { - "ini": "1.3.7" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } + "optional": true }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } } }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, - "node_modules/inquirer-autosubmit-prompt/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", "dev": true, "optional": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "amdefine": ">=0.0.4" } }, - "node_modules/sgmf-scripts/node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "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" - } + "source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, - "engines": { - "node": ">=0.8.19" + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, - "node_modules/cacache/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, - "dependencies": { - "glob": "^7.1.3" + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/sgmf-scripts/node_modules/mocha/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, - "node_modules/loglevel-colored-level-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz", - "integrity": "sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA==", + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "loglevel": "^1.4.1" + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/prettier-eslint-cli/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" + "requires": { + "through": "2" } }, - "node_modules/watchpack-chokidar2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, - "node_modules/node-libs-browser/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + }, "dependencies": { - "safe-buffer": "~5.1.0" + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, - "node_modules/ow/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "requires": { + "figgy-pudding": "^3.5.1" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "requires": { + "escape-string-regexp": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" }, - "engines": { - "node": ">= 6" + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/@types/jsdom": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==", + "stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", "dev": true }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" } }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, - "node_modules/string.prototype.trimend": { + "string.prototype.trimend": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==", - "dev": true + "string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } }, - "node_modules/expand-range/node_modules/fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "dependencies": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "safe-buffer": "~5.2.0" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "optional": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "ansi-regex": "^5.0.1" } }, - "node_modules/dwupload/node_modules/supports-color": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, - "engines": { - "node": ">=0.8.0" + "optional": true, + "requires": { + "min-indent": "^1.0.0" } }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "style-loader": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", + "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "dev": true + }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "stylelint": { + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz", + "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==", "dev": true, - "optional": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "@csstools/css-parser-algorithms": "^2.3.1", + "@csstools/css-tokenizer": "^2.2.0", + "@csstools/media-query-list-parser": "^2.1.4", + "@csstools/selector-specificity": "^3.0.0", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^8.2.0", + "css-functions-list": "^3.2.1", + "css-tree": "^2.3.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.1", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^7.0.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.29.0", + "mathml-tag-names": "^2.1.3", + "meow": "^10.1.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.28", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^3.0.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "write-file-atomic": "^5.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "dev": true, + "requires": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + } + }, + "decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true + }, + "file-entry-cache": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", + "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", + "dev": true, + "requires": { + "flat-cache": "^3.2.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "meow": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "dependencies": { + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true + }, + "read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + } + }, + "read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "requires": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + } + }, + "redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "requires": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + } + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, + "strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "requires": { + "min-indent": "^1.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "trim-newlines": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", + "dev": true + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + }, + "write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + } } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "stylelint-scss": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", + "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" } }, - "node_modules/listr-update-renderer/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" } }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "optional": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "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.", - "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "node_modules/inquirer-autosubmit-prompt/node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dwupload/node_modules/is-fullwidth-code-point": { + "svg-tags": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true }, - "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "symbol-observable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-3.0.0.tgz", + "integrity": "sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==", "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } + "optional": true }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } + "sync-queue": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sync-queue/-/sync-queue-0.0.2.tgz", + "integrity": "sha512-O8SNQrdCjhoVVr+hyY9ZaN4pSuIX5khAXDaCFftoSJCTaSHO4SLLskKC2nNpQwMsvM2rZQXPkEd9lk6yoeOHTA==", + "dev": true }, - "node_modules/flush-write-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", "dev": true, + "requires": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "dev": true + } } }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/onchange/node_modules/readdirp/node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } } }, - "node_modules/eslint-formatter-pretty/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, - "node_modules/each-async": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz", - "integrity": "sha512-0hJGub96skwr+sUojv7zQ0kc9i4jn3SwLiLk8Jr7KDz7aaaMzkN5UX3a/9ZhzC0OfZVyXHhlHcjC0KVOiKZ+HQ==", + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, - "dependencies": { - "onetime": "^1.0.0", - "set-immediate-shim": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "optional": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" } }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", "dev": true, - "dependencies": { - "entities": "^4.4.0" + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "node_modules/prettier-eslint-cli/node_modules/camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", - "dev": true, "dependencies": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", - "dev": true, - "optional": true - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, - "peerDependencies": { - "postcss": "^8.1.0" + "dependencies": { + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + } } }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", "dev": true }, - "node_modules/@commitlint/is-ignored/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@commitlint/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "setimmediate": "^1.0.4" } }, - "node_modules/sgmf-scripts/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "os-tmpdir": "~1.0.2" } }, - "node_modules/stylelint/node_modules/trim-newlines": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", - "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true }, - "node_modules/vue-eslint-parser/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", "dev": true }, - "node_modules/xml-parser/node_modules/ms": { + "to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/xml-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { - "ms": "2.0.0" + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" + "requires": { + "is-number": "^7.0.0" } }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true + } } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/@commitlint/parse": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.8.1.tgz", - "integrity": "sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==", + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, - "dependencies": { - "@commitlint/types": "^17.8.1", - "conventional-changelog-angular": "^6.0.0", - "conventional-commits-parser": "^4.0.0" - }, - "engines": { - "node": ">=v14" + "requires": { + "punycode": "^2.1.1" } }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.3.tgz", - "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==", + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, - "node_modules/base/node_modules/isobject": { + "trim-newlines": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, - "engines": { - "node": ">=4" - } + "optional": true }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/onchange/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + } + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + } } }, - "node_modules/@commitlint/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true, - "engines": { - "node": ">=8" - } + "optional": true }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true }, - "node_modules/eslint-formatter-pretty/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "safe-buffer": "^5.0.1" } }, - "node_modules/@messageformat/date-skeleton": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.1.tgz", - "integrity": "sha512-jPXy8fg+WMPIgmGjxSlnGJn68h/2InfT0TNSkVx0IGXgp4ynnvYkbZ51dGWmGySEK+pBiYUttbQdu5XEqX5CRg==", + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "prelude-ls": "^1.2.1" } }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true }, - "node_modules/listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "engines": { - "node": ">=4" - } + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" } }, - "node_modules/sgmf-scripts/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" } }, - "node_modules/sgmf-scripts/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "optional": true, + "requires": { + "is-typedarray": "^1.0.0" } }, - "node_modules/class-utils/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "node_modules/is-windows": { + "unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" } }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" } }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, - "node_modules/meow/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, - "engines": { - "node": ">=10" + "requires": { + "unique-slug": "^2.0.0" } }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "imurmurhash": "^0.1.4" } }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, - "dependencies": { - "istanbul-lib-source-maps": "^4.0.0", - "@jridgewell/trace-mapping": "^0.3.18", - "strip-ansi": "^6.0.0", - "istanbul-lib-coverage": "^3.0.0", - "collect-v8-coverage": "^1.0.0", - "istanbul-lib-instrument": "^6.0.0", - "string-length": "^4.0.1", - "@types/node": "*", - "v8-to-istanbul": "^9.0.1", - "@jest/console": "^29.7.0", - "chalk": "^4.0.0", - "@jest/test-result": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "jest-message-util": "^29.7.0", - "istanbul-reports": "^3.1.3", - "@jest/transform": "^29.7.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "@jest/types": "^29.6.3", - "istanbul-lib-report": "^3.0.0", - "@bcoe/v8-coverage": "^0.2.3", - "graceful-fs": "^4.2.9", - "jest-worker": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "optional": true, + "requires": { + "crypto-random-string": "^2.0.0" } }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, "dependencies": { - "get-func-name": "^2.0.1" + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, - "node_modules/@types/parse-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.1.tgz", - "integrity": "sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==", + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true, "optional": true }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" + "requires": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "optional": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-rule-docs": { - "version": "1.1.235", - "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.235.tgz", - "integrity": "sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==", - "dev": true - }, - "node_modules/colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==", - "dev": true, - "engines": { - "node": ">=0.1.90" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "optional": true, + "requires": { + "ini": "2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "optional": true + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "optional": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "optional": true + } } }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/@prettier/eslint/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "engines": { - "node": ">=4" + "requires": { + "punycode": "^2.1.0" } }, - "node_modules/@commitlint/load": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.8.1.tgz", - "integrity": "sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==", - "dev": true, - "dependencies": { - "@commitlint/config-validator": "^17.8.1", - "@commitlint/execute-rule": "^17.8.1", - "@commitlint/resolve-extends": "^17.8.1", - "@commitlint/types": "^17.8.1", - "@types/node": "20.5.1", - "chalk": "^4.1.0", - "cosmiconfig": "^8.0.0", - "cosmiconfig-typescript-loader": "^4.0.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0", - "resolve-from": "^5.0.0", - "ts-node": "^10.8.1", - "typescript": "^4.6.4 || ^5.2.2" - }, - "engines": { - "node": ">=v14" - } + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "dev": true }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "url": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "requires": { + "punycode": "^1.4.1", + "qs": "^6.11.2" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "requires": { + "side-channel": "^1.0.4" + } + } } }, - "node_modules/mocha/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "requires": { + "inherits": "2.0.3" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + } } }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/sgmf-scripts/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==", "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "node_modules/prettier-eslint-cli/node_modules/wrap-ansi/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "dependencies": { - "color-name": "1.1.3" + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" + "optional": true, + "requires": { + "builtins": "^1.0.3" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true }, - "node_modules/sgmf-scripts/node_modules/watchpack/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "requires": { + "xml-name-validator": "^4.0.0" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "walk": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", + "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "foreachasync": "^3.0.0" } }, - "node_modules/@jest/reporters/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "makeerror": "1.0.12" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha512-oUcoHFG3UF2pBlHcMORAojsN09BfqSfWYWlR3eSSjUFR7eBEx53WT2HX/vZeVTTIVCGShcazb+t6IcBRCNXqvA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "requires": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sgmf-scripts/node_modules/webpack/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" + "dependencies": { + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + } } }, - "node_modules/@commitlint/format/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" } }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "optional": true, + "requires": { + "chokidar": "^2.1.8" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.3" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "optional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "optional": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "optional": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "requires": { + "is-number": "^3.0.0" + } + } } }, - "node_modules/flush-write-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true, - "optional": true - }, - "node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@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/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", + "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.31.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz", + "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + } + }, + "watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + } } }, - "node_modules/nanomatch/node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, - "dependencies": { - "hasown": "^2.0.0" + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, - "engines": { - "node": ">= 0.4" + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "requires": { + "iconv-lite": "0.6.3" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } } } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "dev": true }, - "node_modules/sgmf-scripts/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "isexe": "^2.0.0" } }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "optional": true, - "engines": { - "node": ">= 6" + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" } }, - "node_modules/onchange/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" + "optional": true, + "requires": { + "string-width": "^4.0.0" } }, - "node_modules/p-settle/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==", + "dev": true + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, - "optional": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "errno": "~0.1.7" } }, - "node_modules/boxen/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", "dev": true, "optional": true, - "dependencies": { - "color-name": "~1.1.4" + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" }, - "engines": { - "node": ">=7.0.0" + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "optional": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, - "node_modules/p-memoize/node_modules/mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "optional": true, - "engines": { - "node": ">=8" + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, - "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } + "optional": true }, - "node_modules/xml-name-validator": { + "xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "xml-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/xml-parser/-/xml-parser-1.2.1.tgz", + "integrity": "sha512-lPUzzmS0zdwcNtyNndCl2IwH172ozkUDqmfmH3FcuDzHVl552Kr6oNfsvteHabqTWhsrMgpijqZ/yT7Wo1/Pzw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "requires": { + "debug": "^2.2.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", "dev": true }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true }, - "node_modules/to-regex/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, - "node_modules/onchange/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } } }, - "node_modules/is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, - "optional": true, - "dependencies": { - "symbol-observable": "^1.1.0" + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" }, - "engines": { - "node": ">=4" + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + } } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "buffer-crc32": "~0.2.3" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "optional": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index f7ea7a137..97d45f31e 100644 --- a/package.json +++ b/package.json @@ -43,19 +43,19 @@ "@babel/plugin-proposal-optional-chaining": "^7.10.3", "@babel/plugin-transform-runtime": "^7.10.4", "@babel/preset-env": "^7.8.6", - "@commitlint/cli": "^17.4.4", - "@commitlint/config-conventional": "^17.4.4", + "@commitlint/cli": "^19.3.0", + "@commitlint/config-conventional": "^19.2.2", "@types/jest": "^29.0.0", "babel-loader": "^9.0.0", "chai": "^4.0.0", "css-loader": "^6.7.1", "eslint": "^8.0.0", "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-prettier": "^8.0.0", - "eslint-formatter-pretty": "^4.1.0", + "eslint-config-prettier": "^9.1.0", + "eslint-formatter-pretty": "^6.0.1", "eslint-formatter-summary": "^1.0.2", "eslint-plugin-import": "^2.22.1", - "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-prettier": "^5.1.3", "husky": "^8.0.3", "istanbul": "^0.4.4", "jest": "^29.2.2", @@ -64,8 +64,7 @@ "mocha": "^10.1.0", "npm-force-resolutions": "0.0.10", "postcss-loader": "^7.0.0", - "prettier": "2.8.8", - "prettier-eslint-cli": "^7.0.0", + "prettier": "^3.3.2", "proxyquire": "2.1.3", "regenerator-runtime": "^0.13.5", "resolve-url-loader": "^5.0.0", @@ -82,11 +81,11 @@ "minimatch": "7.4.6", "glob-parent": "6.0.2", "yargs-parser": "21.1.1", - "braces": "3.0.2", + "braces": "3.0.3", "jszip": "3.8.0", "merge": "2.1.1", "got": "12.6.1", - "@babel/traverse" : "7.23.2", - "get-func-name" : "2.0.1" + "@babel/traverse": "7.23.2", + "get-func-name": "3.0.0" } } diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js index ef665c9a0..9dcbf75a2 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js @@ -187,9 +187,8 @@ function getGiftCardConfig() { async: false, success: (data) => { giftcardBalance = data.balance; - document.querySelector( - 'button[value="submit-payment"]', - ).disabled = false; + document.querySelector('button[value="submit-payment"]').disabled = + false; if (data.resultCode === constants.SUCCESS) { const { giftCardsInfoMessageContainer, @@ -215,9 +214,8 @@ function getGiftCardConfig() { initialPartialObject.totalDiscountedAmount; }); - document.querySelector( - 'button[value="submit-payment"]', - ).disabled = true; + document.querySelector('button[value="submit-payment"]').disabled = + true; giftCardsInfoMessageContainer.innerHTML = ''; giftCardsInfoMessageContainer.classList.remove( 'gift-cards-info-message-container', diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent.js index ed41bb58e..2f4401f6c 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent.js +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent.js @@ -96,9 +96,8 @@ function removeGiftCards() { giftCardsInfoMessageContainer.classList.remove( 'gift-cards-info-message-container', ); - document.querySelector( - 'button[value="submit-payment"]', - ).disabled = false; + document.querySelector('button[value="submit-payment"]').disabled = + false; if (res.resultCode === constants.RECEIVED) { document From 62682088982cfa2d50d94e2ea6913b175976e665 Mon Sep 17 00:00:00 2001 From: Aleksandar Mihajlovski Date: Wed, 3 Jul 2024 17:14:58 +0200 Subject: [PATCH 06/17] Include diagrams in documentation (#1104) --- documentation/Adyen SFCC Docs.md | 4 -- documentation/README.md | 39 ++++++++++++++++++ documentation/diagrams/amazon-pay-express.png | Bin 0 -> 190460 bytes documentation/diagrams/apple-pay-express.png | Bin 0 -> 792065 bytes .../diagrams/get-payment-methods.png | Bin 0 -> 668986 bytes .../diagrams/multiple-giftcards-flow.png | Bin 0 -> 921714 bytes .../diagrams/payment-from-component.png | Bin 0 -> 719065 bytes .../diagrams/payment-with-action.png | Bin 0 -> 801257 bytes .../diagrams/payment-without-action.png | Bin 0 -> 748032 bytes .../diagrams/single-giftcard-flow.png | Bin 0 -> 783385 bytes documentation/diagrams/webhooks-flow.png | Bin 0 -> 1159237 bytes 11 files changed, 39 insertions(+), 4 deletions(-) delete mode 100644 documentation/Adyen SFCC Docs.md create mode 100644 documentation/README.md create mode 100644 documentation/diagrams/amazon-pay-express.png create mode 100644 documentation/diagrams/apple-pay-express.png create mode 100644 documentation/diagrams/get-payment-methods.png create mode 100644 documentation/diagrams/multiple-giftcards-flow.png create mode 100644 documentation/diagrams/payment-from-component.png create mode 100644 documentation/diagrams/payment-with-action.png create mode 100644 documentation/diagrams/payment-without-action.png create mode 100644 documentation/diagrams/single-giftcard-flow.png create mode 100644 documentation/diagrams/webhooks-flow.png diff --git a/documentation/Adyen SFCC Docs.md b/documentation/Adyen SFCC Docs.md deleted file mode 100644 index d18cece3e..000000000 --- a/documentation/Adyen SFCC Docs.md +++ /dev/null @@ -1,4 +0,0 @@ -# Adyen SFCC Cartridge Documentation - -The documentation regarding the Salesforce Commerce Cloud Cartridge can be found on Adyen's online docs here: -https://docs.adyen.com/developers/plug-ins-and-partners/salesforce-commerce-cloud diff --git a/documentation/README.md b/documentation/README.md new file mode 100644 index 000000000..24d1b9690 --- /dev/null +++ b/documentation/README.md @@ -0,0 +1,39 @@ +# Adyen Salesforce Commerce Cloud Integration + +Integrate Adyen with Salesforce Commerce Cloud using the Storefront Reference Architecture (SFRA). This method provides seamless access to Adyen's extensive payment features through the Adyen payments cartridge. +  + +The documentation includes detailed diagrams to help you understand the integration process and enhance your e-commerce capabilities using Adyen's robust payment solutions. +  + +For more details, visit the [Adyen Salesforce Commerce Cloud documentation](https://docs.adyen.com/plugins/salesforce-commerce-cloud/). + +The below flow diagrams are applicable to this release. + +## Get Payment Methods +![get-payment-methods.png](diagrams/get-payment-methods.png) +## Payment Without Action +Example payment methods, that are covered by this flow: Cards without 3DS, SEPA Direct Debit. +![payment-without-action.png](diagrams/payment-without-action.png) +## Payment With Action +Example payment methods, that are covered by this flow: 3DS2 Cards, Bancontact. +![payment-with-action.png](diagrams/payment-with-action.png) +## Payment From Component +Example payment methods, that are covered by this flow: PayPal, MBWay, Apple Pay, Amazon Pay etc. +![payment-from-component.png](diagrams/payment-from-component.png) +## Single Giftcard Flow +![single-giftcard-flow.png](diagrams/single-giftcard-flow.png) +## Multiple Giftcards Flow +![multiple-giftcards-flow.png](diagrams/multiple-giftcards-flow.png) +## Apple Pay Express +Example payment methods, that are covered by this flow: Apple Pay Express from Cart/mini-cart. +![apple-pay-express.png](diagrams/apple-pay-express.png) +## PayPal Express +Example payment methods, that are covered by this flow: PayPal Express from Cart/mini-cart. + +## Amazon Pay Express +Example payment methods, that are covered by this flow: Amazon Pay Express from Cart/mini-cart. +![amazon-pay-express.png](diagrams/amazon-pay-express.png) + +## Webhooks Flow +![webhooks-flow.png](diagrams/webhooks-flow.png) \ No newline at end of file diff --git a/documentation/diagrams/amazon-pay-express.png b/documentation/diagrams/amazon-pay-express.png new file mode 100644 index 0000000000000000000000000000000000000000..4b723e2cf301d1dac7d49d88931218a6488159cb GIT binary patch literal 190460 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
i2Flb8&?7fRuk`%4&If(XNpZXF+_aGqlW&oL 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

VKZ_L{j8T((M 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
f!zojfYvHB9}a{Qai3x&b0MQ$%~FyvUiaZ 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ƞ+M1VTX8C^U`@Ocesm;iF6pK)J| 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
b`j$|Ha)0ph4YX@cB}ILq_7 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 $?=ibALP@XpN}~(-5_9qwZTqyehKi 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

&@?VzA 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 Is#s(G7vi86!2kdN literal 0 HcmV?d00001 diff --git a/documentation/diagrams/get-payment-methods.png b/documentation/diagrams/get-payment-methods.png new file mode 100644 index 0000000000000000000000000000000000000000..ecfd5adc119ae9b91d68e485faa8eb00ce37ecb4 GIT binary patch literal 668986 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

s-aHu{miL-Itt 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ƞ+M1VTX8C^U`@Ocesm;iF6 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�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¥aMJ2xhSt&_WnPTM*nJ^b-;OE!Z5E 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 R0#qxhbgmg_7GJfG{2v{*{)qqp literal 0 HcmV?d00001 diff --git a/documentation/diagrams/multiple-giftcards-flow.png b/documentation/diagrams/multiple-giftcards-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..0b0a991bab585b45f9445774d7ede1711f7a6903 GIT binary patch literal 921714 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%0AX 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%0A**$(mQ`V;5X+cIN3MI zQD5mVhAjYmR*MIIEXYnuJ{UHqGTwl@=ueLLWG3PFltze-z9Lzo!I;pL12=ueYig2r z7kvK`5aGpXS_6{cJqG&I zKvofy)v^wDgT|Bae*$`=TcOpQH_!2O%$EcG-&61RA{RM)nJA-h?g$dd`Ng8!b`md% zA$YvxkHw;6Ci1z9x^Fx-MZw$0H}*aE4evG74n1^!d_CVgzpWzf$30AkXs`h6N*$Ir^Z}+^q$*^QsFIk-0#Pu_3FQs)Gj_yH^^hUK&`U| zXkB&&R*g6%pKuGbF(s9%Cr?CNZ*_72X;}O~`U(HTXW#&qGv44I`iuBx67ql?Rfu_MoZIIMv+&M~5HV>3i%vGvj$=gLI2nO&^?s5Ax8QLYhc8 zFNB=|BzZ0L8Q_y|)if2i zkQ1KTV>m_c8%2WxDNpIJL>gaUn-&Q^pGuOUl4hop4oX<$f9mZ-4m>3=kzT#0#=Tgv z42L+C`MAJ@m`<%>teFHaoLMP~U7u`M6bE|OjL5w?RmM4e3Eiw9MH?Q@CRd<`)028O zl9k365)hiS@uVkx@vEJkXhUD19fGFQZ*4nA^1)ukC~zdY<*(Nc`<_u1lCVE;H!;}> z!=)aGgci#M;^TNA%Dk(_RkPV+^Io%2N4zl^WstHULIi)l2nM` zCF3pUg9wQG#=a-#i3vMEew_j(KsSY168@5)2m0j5y)j2!A{UQ7(RCHdRect>csf*@mlUp0oOdryP%tf) zI6h1F@5?I;I^3SN}Q_Y`jphA`<^a)Uss;z{CB1+vG)6pkGbI4w3%P@nP02*Pwzmm3YLQCl6%ICh4kqOR7Xpc;o|l7FR`$ zBgqRJOn3rcq!S02EwrsSyl6Wf5e|R+39)_8sXyxq;v`a3jp%rL*N-SZ@_63$i(yGz z7zF&{=(0aqy3gc@J9m9G`VeP%qxYe&3DppSMyI zYLY;m+Zfk?R5v_=arJ{L&F@KT2YRvdm7?b+qS(3@@GIC4oC_wGoIe%>b0Gae|Ijsm z3~*5w`1w{%yc5`*>7=y4^L%eOaIC8fk>5l9&-sHJ1iWFe5``+f>y{*tgfUx7;nktJ zsQn$~Z_EQ6k?u9dY;G;F-)ldJ-3T4&4LR%IEnNGa=yn9zUnIIgj#8aWsn#uHK&m~z z>=tprB3=^h8NB5EitaGN?uu@i!k%qYT5X)LbX&K`(71qCdXsdg51Icu;v3S<;Z2a2 zLFs~`L)WPRcwhrVO&H57`IF@3ul<3^Hyh!Nx=pCV+xV2P%*E@o4F^)szi0C9^ zcjNe0XOD9`NOvZnL0SeRbP!fOzl07tNN#2?^2(1LBut39Xel|%W0N9OF!;*8m%SC= z?5ap_3DO~hnuktoB|c3+L|na|CHj^rVs!Y#+W zii#0HrB0!uB0x^J^KHO|Wls5F4x+|8y>f}Wb841ref2l7N2tN?(79**W^)gX{;V&+ZQb zcGqE(Ag-1`+Zoy9{0fg{Fr%KDdkGXoc+GfgywEGd+yA>2UO10K)~P?W$vX|!bCRaT z+Nr`pJy+3qY?8jR>u~ZzAcXlhV0q9f-9}&jK;K==ha%DbKrAWk4*tEAqWWCj+*>Ru z2A6 z-RnYN2=`Hve4wfW>G2+&6~s0EKzN@!5aWhj26lQD3vd16ahQN_5o1rl9}5(@@W`0+ z%i>TzqJ3GB&SZyw0!Z-v3g)o=Y-rN>4sx)NkFO$xuWdB5tUti_K;vb1EqMRDr11P! zGl6_;cn2k}BZ5<$E0a$)^XFjEAHh4Z6~SR)h=DOA$MXwdFopqeJN@yq1B@hoWD)^m zkn*QU2&OkV(&__*UZB4Jy%_2&mrOne@-+mONO5Q| z?+A;_sSB3D%0$Yh0+W6`byS2;6o9~6xLai*QnK(wcmd$2EweU|5_Sjp3Cf=(6!j8!!~Gj&A^f^N2bd>tH|oIceM2QOkGUx*g3s?Xup-vvxz`L>Yj-R53A@2x<^!>BCyz$*WjtI4 z6dKo&`cOY*zc5M(RA606pzYhrKAno5HaE{OL2f+CcyoOJ#d>6lYbf;H4f;`E) z8@_|!oOBG>twc4rT1IrgpU!vQbf3?a1vO$n^&Qa3xEp052I|lRCSb2$Kv@XrmQWEP z{57CHOJ&~&$|6n!oFZeaC~dBwEx<*f)J7@cx-r%V7W;_d<^P6$CP@lvURPV3#CIB# zGaYrnI>m0cM1D}*+>KBcuxOsrWr6@aIIbHlnF|Q!WB|*#vqVhx-TVKmGcj?|-cvdS z*~!MVA*#6hDk#0KpnXWL`b~WmY-WPmCy?lNkFHAUCiv7Rt_tWL5^09z_P0U=G}Q4k zZsu2@@%^b^ad#>#2ndNm8~+08E2uU@*ZeUEb)B9dN#q_X5ZwF!p8CR@4OJF~^y9@Z zkih8A_nzR+x|*aufe3vHIQIS@65$mz@Xh@{A>e)n5?f-ffvfG;|LXmR>azBHWM1TX zHfv=cqN0=pzxKL=D;Y|F^*!jsu_kRc>KOE(XG)ZRq!fB~&;SpzkG#O#4`TYK=nsUa zZAX#dh>oWya97B_{S@k>F~d(aG7eSxbEncXY67QGc*n@#w(B71tUJquDj~N&=mq^w zHc$X~zGhxmEWe24#&D9asmQ9Sj4fbEONalwGuDle)zza%k&l1^B{*~C5*-&g7Bdtm z^<6c3#Bzaz0s0jwKOXA9CTUaGt$)IKt4QvqWX!6%tZ2St?7gxoO-*ST*nwMt9%Uyr ziY+DN?t`^kjm)Rwf?YS8)w~nfTS-gBIfj;d0u>ibeF^{M^rfM%K**CLqi%2c_I$cG zj*;J-6LCC-9b{a1AO+`gQ`5br(}tFMr1yY<=jm3Jl?}aj=Rix>HA^-88^`);Mc9ug zPeaK|BHGY@*hJUxMK~ujq$ytUw4nv9%fnlHs%*`i3#3qblb;tAbvnZC zxuH(Rs(}YT512gjqk4N!Qydx`P`!IB9TsaYeWngMH!)UG;$C%PUL-N$+c^!I0S-}D)_)S| z?($!&(9Afu?6I%?_Vb^PWSva7F)`3XqZVaxB*N^GYm8dF65$Bgd!8zR2)c1`rI^!A z7!t7C0TCTJQ^pH@OANqFqx26aN=pM4aW&eIe=bW*Ftsx!lbr7mF{QW>%=rDAh>7I_ zQM3qZ;?R1CIWLu(gz=f7V@;*5wh!L@<>;_W!ts<35MH=rjt*mrA)y`@jz+S*IY*-@7$3Pzu|=O; z_A6?5dHkDX`virhD$AO(m!QThwAeA`ceMR9WdgVtb#888;JJxxAF+RwFAzh89>mJ@SOknd(dd{W7a#UVV)OBTOzpCZFC#9`C#%TgYR709BRz9ZQLwU- zZEg(l=(j*Z=hrt7oKRctH=KBA03uRw%e!2-G+sM86>b=HdrKP2IX#SLL%HB4Z^ou- zSfF4%RowxWjIpl08I2^-xI*QcARPdl+wqVH#Q2WQT&4jC& zjAri7R+b<_j74Nco)2Wladu}9*aOxymlhawsc*8{(eDcVP499CBsf{w);DH< z{h)HzljP<$GaEnzmed=N5R1M4lym-*?q(kWq2AQB$k#*#+@EKzT_+`tLpYvFBsZ>u zgm?Z_aslC?_bwUlO!Dv>qZS*OHW6t##CD7NYv&6&!(zS`TY=LoB+5pn+ce&brh`FCTT71NOv)wT?slU-c2adC-v$L6yX($^^~Dm}--Y&bmqj;!7OD zQ{R)bj_@U7uAxI}5eQ?NNOh+3-fq|Vn@ZZ&loXmHhaA5f6x1{dEF0!;U@bU5) z!_brmS=!7VG<5?OAMSvo!woms3a;j`Ir0i688f zJy-_=s#M4UE2z$Kj~MG3;S;jmoQ|Y_9Sk4`Un4&~riA4Gd2iMK{F;hygq(0Q(+z{X zab^Z|2j3M9s%{h+KH6n(fWgAY?FQ~2{)KOb1h0x*TY~?;HsL>GC}4tr08E(a@H?^( zZkJ=K*&g|^yF8~0dp436kN3yHk4|ruBeX#%&00cvRGuJo{%mOb9RYc%nwE3kP@ZlA zLKu@9=JTWwmVRp!p^<;EUwc%}tqu}kqS*yKGsxmlU?H>q;NQ&z3i@tTY2jCoJaH>C zy+Io{7dA!`B^Vc~}@YQU!to!sYWC-Rv1mnkAXE5*$kQ z6UqS=(j;S}j_fip!g)~JxivTHPH8HRY_cbu`WGCo?NoS?A2`IJK+ zkQNonb7Mqas)%7Ik3$^ogLpt(a%FJP_!;d5L?bABqxs-vZxHl^FTCsM7AD4syZ;h(&C7@jbRlEAY zG3*{h3GgAv0`cfNaPmt7wcn9I8oHq#tDA_V);HqrXA#)M!vdefvDLmOYd?p@sARYo zSqp-XYI_uQSmlJW?fk+vB;S!R@RC0kr$~<%jqgAqdq6wjEBhX-cW1C0KBNbp(M_2+ z^F&bwc>3y1YCaS=A?x}4DgtajU?p0sMp@~~A#-dS>8cD$rN~uxsWRv@1jy^^D&u=v z;!}$pvq|qpOK{l#548j~Iz!_6W04)<1yKIMOC|&K{KtyvqFO>kdFkFh4aEN4N`gM5 zM@cwQdJ3sGoy^);=UMTT&aR*}05ISJGy1MH?BK6b5>)N}fs*(^KJVAsOOtluFh9cE zAd?40?R-CF`+k3N%}2SupL!|p=pTr}Ku}46I0$Kj7HLvBe(1+A1zO>rtWPorQIjkH zz@2kb(T>`~8+`oAxldOJW{TXgrfT7l7FllFRQ4q&W?%%0g2;# zit61Z5zlk}d-ImUp(hAuE&=W(anE=S1&w5MoWXMiEl6 zn9Dj`0c6mfPW)AEAyA5M3)8nQc7Cdozjyw7bLb*6B~ZnNHEg^A&g*4P zfO>@n0n`_!^mrwNlUB<;V1gT79nDxYAn(!D!`>=?;Odwp!SN({=H-_~(-%}4?KR+_`_s)N3>PMhXi6^jjUw9<iKyi zM5O~InqH~#SNL=S^^)VHbWZRhVu=GA3>4C5ni}^J9{4HD7w^*7kmDc(BQ-&+?fl*y zk79vZXYQ;Iw9ewK>w<5L#}0RYw=N1NdEA*UqLS=a7m+ysT{=KC<-=nRISTi>$_ax} z?4v)$Lv&(Ww~R&IneGWTClk=%MMZFa-6JIZsG=ZHxrUdFx9;K6)FnXGiEr$Cy60U# zO9*DtT>Sj>^?&dF@6C@3=Y=@!=vp&<4;>{YstKbXAx1|r#rtVbhkZe>pj3a`)6szQ z8T%v(f1W+^14z+P+J75pD5U&|w}A7DQL~(1nT1fd;3a>o%qXedtVC6yTH0gk&7>8~ zJ)sgZ)}a>Us;daa-_~znI?yr19|PH6Z5}JcF^vK06Z}mEph?6J66wAtdOyXwFl+c; z0z0hRmJ{t~w0BWR|5#$8Nqylgf#$yV=vfbky4`DOB(t59`P=0+T$^TfX^xFN~sVM82`4p zLIS2PdAk!48AKxT-u6VX94eHcUchxR$#2x9*>;1QK%a)LHZiG7``p@~G;lxGMxcN? z5lrg%v3`74C9_N*o|j;`M<(t0-z+P{aNWMQaI)^aMz&^^N|7KL~++;;*?%4pkaeaX+h`c6jHj z@wQLhFe>owMaKox_1xZv=mMQz$MHe8g@cAL9v6&~9Ns{@HD2ib{ZD8lta0>UZ+E1T z5WT*9DK#L!{{Dy8E%ZtRF8()YB!oXbq}Q?(V-qrgHhXocN%pXU?}_-3rSfs$^kl5M z`2g-98ZKZHh}fao1Ky_b7%zCs1)B-}yd6{%#)(L)Da>8?;I=4s=(#Nn{rT=HkPRql zFaTl&4HdHbb|up#_^K&>YaB_$jOUY8%|60AB12iAQv{huGu0J%C^ zQKXHvS75|X)L4(mh6=7E2+HxF^D83I)P%=gE*`c>V*!YdF9OB(US=iS{aMEp$_i&p zU4zCyHuZR}mxC6f@oCLJRB8~;+~ zOqlf(nRLC)RF@Bzr%W`V?~pRXWePl@Ot(1?%_H#i=7GJC-A0Zv6;L*Hr^Pno5F{aA zds>!%4aS9$ zgk#bXh>=0e;ckZ^Os8Y(<3IGLzhasQa1b~*64Oa4e(#VO!m01VNlg0$?;fVC5z^E) zI{ZTo6kj9Z4ecZhyFI)B+Vww4J}9gIT7{-#+nAQA!jK6#4#u#JXXIb!A9tJAPSXSGk}0UT5CQ{fC`Dg00+7O{Pb?dJ4z zha6!K5tyE9>7zNw-1n&B*PgwW)xcsO@6Sjan{dU5#3`=oF=)jTiF;@*NY^82yZ~yn z-7!kuw!7xc$=p+V)>j!<=bv)N>~n#zoKAu2!7%t$^tV;?Y=TC@?vQ@NF}x(9-)O?4 z`k3foBBrBY1ehE9X>lC<^cPULEui2pNM&(`*&PxvqUI;KEOipVCzAna4#_quCmeQP z$T)>F%TDe&eDYYSp38mBO8vD*E@zMU*@45Mk@v?A2#kaUg7S--mdJq!J3gfoob@L z>FB#!w)Xr0h!~+B4|#{k31lpkbJ_FS$C|X+sAEvIo?-F+QQp`Wgn3Ltmj)-P-pSiw zp*ib!lkD9lS7b1_{lz&K51sEWp6B@Ixg8#Phe)nBo`Bn~lboAMBw=>B=Z~|}6c*u= z=|?sY-#C9x2n?x7KoW@m$|>eC1ugXjdTS|)9HUeEdLJYWG!}+-~g?T>ok^=TE#Y^5T3x;ubKsqCV(tr&`WdGF@Yd@4C!RR;mU;1iAl0KZ^ zJO~?Gng2X04sm=TNre`rga>NKUq?edP|5FJoL(KtFy`f}k;@mxgB-2k$@ln~fd!4% zK#_vLcB>dg*Wh|b_`{J6#Z;FHr1OLn0?Ph@tsOpXtl&I_H=grRztGRcKIPO;#Xj0h zf0=Q{au{x+#P7BTMdCld*k`#w6^h%54zGE)az6}Wo#g%r_oo5=Fhj;h_@nf=yzqx{ z1tNzLc1nYw6Ny^9lJKX_2fg+KT|y+qdzAf{W_CXB+V25ifrRU8lMRmiPJ$Qp17kkg zsUYnk9YynX#d2o-fMWks{qVQC1zcdpy^yBdi41an{gA@!Ldudtni_|A$-7k#m>}ETdS;*>!ua6G|`HcLP3E12coW5(vpsv z&KQPW4gjf^u>I-HfOrMOnE~dBxHA}8eY!1(vC*DF0)x$OWwZ*CDJlo1kYDE94RzGW zhL(E7N!Juyo^Dkc6722NL3*I2>zbuPHHUX2^=EzCB!WEq51Z(k|EhKn#CsyLp#{-N zybshxQ>CZM*37wp+f{=cT~ufqJRHihnEMUwXz9W9Nj5V{wt;Xs>_cap&%HwdE-Ao= zh*o^`I$ud8r``Te6hU9D*CqRt)1~#dX?G^H*3bRKAvc@<*W%j<2l(Y?F!hiSp~t=T z#|NTv13ke6EM^!3*iW3)>;zI4bGoJzhZV{zCX)#_CIJY4^cMEW;z)#^A$(SoMvB(Z zH+E_-{K`EQDfm%=ENooIbAY8A@H5@?^jKFk5+- z+xbiuJzPNKdV7?|h-+^%vj>}uEFelEccKuyYL;RojZnM9LnAb=g~Qrw6a@0D;^mnx8Q&?4|q4vT)iH~5qc;>x$D9I944lmmiL zG7Mj0b3nR$B2NP1Lza}(BvO2ckZ5Mh@uktY5vk76RGjh#Isx$VsoFOK@Fr?J$uXlU79xht|x$acc zhLryQIP>qJcw{G%wIa=NhD0hJ!Sn0idXWIp$g^AeD_ zevIFuD|^v4?~ux5yTJG?*j(~+a3tF6Zs?=~f!iD-czTg~+}}IBjoCS`;VZHNUtFk( zJoX56A2#93)e9hsJuTO!OUlY^1xN1)s6C$j;)%nrAn^d-FHj>O(mnT&pv#?o%m)l4u)V^=m6zLTnDzEqWR9`h*Q|q{zl#? z@ege+=kZJIjlK}?wUw5~MMP)N=UY%f`8othF?Noj6zGB)NP<5WgD0v9D1`)MCwu?+ za}wYN9$C&+rfHm_i1+hjeR@T)9LX192W`I5R{(R|IQ;oTaUA)KHt+vj97BE#Bc%NF z@Ib#_m>p06Qy>hfE#?AP?~9cT+cVQbz1?AsVqeYYQ2_rs6Qo1OM}Grhq6}A_`M)!>~>A??`CYOh6Qmf%s~4MX*uY`39G>XHYEu* zDi#vuu!!-)QzLT^?D0m zv1U5ylk)L(GB=Dh zI(L3$=L3qa>`6TY?{Q1D7(n)%?(evUOc zFXY3R2+b;VEIzmv{3P;qQwz~?13ozJr^d;3JRlC`5wZZX1j?NsTfXml3Ie8LxR<1_ z94{Gf&x+$Is2aTeGdWT`4qEuL^MBKCx}u*F$xSF_eac1DAla1k?OuWWCGBb-z)X_t zzO{re#r2jXokNb1bKw7bc=&gsPRTL+`35?bzAZ^9!z)pKeOa=1hJrbd-KpBj*}( zHEp!)sFPP6`2Js5cf9Ju1Ki7$-qY#saEtvo#QwFP$UQLhl%wqgTKn2E<-KQ={%^R{ zR+XM*$lQX@z@Khsk;zng>0DyAXm$J3BDpW+STvY)uc1`l=8B+Mv*B!>k=fz0t97{q zw>u2AQDdGrUb@?!Wv*Mt>SmkjwfVML->4<$f9ulv12!v!o8yt1DZR~}yQh8FF)m3}Zh6)DuT+e}+;Ym(WJvgxBDLTI(nUh|`E zCaLzaytGb^^h}!_uAkqw3nOI$6xbgor8F;A*l|wp@yv0h9L=Fv91oj?ak4(Ev2{ys z?Q6red>XHEC#O62n=kZYI;BJg%7e zvEJBCn&z=zUU7PU(lJ`wF=9lx?q&(?qouM*5uB+T`o3CfeHGW~p#kN(N%Mv#<`Jp z%W7LldGB|Um5HQQUPjWflP#Fz;jnDwNBW}KGL5l$SOIyh)BWWZZk#O?$$AY9PS+Z8 zvevDv`eL#>O7A+ta>I0c$IhB7afNbfk>=OCaivw3B(qY=w}n1eOAm*7a;Qm*lqltv zJq4P%X1mAI+A#Mb+uEj~|8SuX+pKN6%a6qLep4i}rfo8dl?>cAYi`+zAuH<< zqt@A$!44%t$-;!|_lDfD->w|0jh3D+cWQ5va%|_Bw?4Bhlm_ggw6qANYh6N}>*8vw zvD(O7FJC$hRnT5)Z_GN=21qOWB$-$Kg&Oji|PII3o|)R zlqA!s9oPFqBe#WJhSoN^(v(eYSF7XGlQK76cco;yJUnLJ%+<2|S^#cH9m>+)>Mb|5 z=~nKTY<(l;YjQ)E6K_x2+bEk>*3Yjmig_FpW-|t@eakWvs?i+I@{D0V88clRcG{c@ zd%IG)GwhD~TlH8JcZ^k3MlbSOmexISI(;GBxJ_5rU8dGdbQ{%9rL#>-<93(Gjbd#) znJ=5|j#%p@t=&~>*?I>Jc zI%F0v?YHJ2n`29Z)>G2RC40|>ezgg=!>_sKa%e2M&LXjDCFD)^xmXwKZ^m=CF$Y1K z)~z)hmf@xOOFhr?UEVZ$BcZY8HIWgI(=D6NR*RES^J%&*wX}v|)r=t{Tl%0S4ORMrDbYG8)%#syGIfh@e-QBA8TCMcQR$hG?b>Ii& zH?7{WbzHo32b~x0kW{mUQg;nBryTeFJp(PjmRxJ1FDF{T+`gt~+9ugeam-Ol7c*&1 z*qV)IM(Qo{qjs{#cK8&VJc`em)pFNa>inY0cM>nNr72nct(hL?s@e2pvnf>!O;p-S zK3N&A)Zy|~-Wmn5n8LT=`ed`^zIJcq5RY>6gS4I3b(v0h>ey~ zY|dWwdT04u$Papz7o{+RGCHo%vBoQHuRaZy0{1MeXNDrF>GW327Ao^{X`hu$qK=zu zc{E(*vwUW1RgG$|*z30zYQuPKWD@I~wks!(t1?F@x;1HogzYB9d}_JgPI43NDY-iI zhwc7&+go+=;;@`f*X$RWU{z?ua!gxI-s0-B%1f=0;p>Y$h@D=ttTy%wy_gi!4Wpig zOX_k{S968FRo`~2%~CbJSRDG+Z1l#D%pzEJg}%mT*6S3IN1@Ccqeg2Z_Fmya&$Y(5 zHy(}oa-~w9f@Cg?z_KV<6REx|K1-G*HinaGyYh9jF^;O22!rlI?M&*wE{a@ zrNuJQRTZAi<|^d{2RvU&jrt{1oV*$1esA>F7Ufz;IxgF}S5qy^a`&ZCWvA0huA1y= za)&FYs=|sj+i=_a!}ge&E)Gk@F6Xw%#mnL4&FUWdVAZh1$SMxO<|))Aaca)tRrF_zAHi~+0n5{RZ_GbOuY&Fb1lVG;T zzy(=Jk6%Z{HoJ3U&?UW!3b=eLyyY{S##4*wp+_V+RVKY zDr?9uo%~#2S{B;}!MtOaTXDN63*Gey_SP5r@}<;F>+qrq6((02E=`MX?UUVn@;Pys zYUN$|X!T1SWxX!9>%~p~$jAvzou(^BmstzEwIw=+o4r)>TDoWQyJDxh$i6VI^KC_1 zWwK*ce*ycTAQOWi&Gfp9LBYyoGvaW*=&kEDg-O3io7@|-oHc|*p<3B(UP@I(C`-&d zZ3yXHZbi(C;c7744W#@+)oRQ9yrXU9LgIPUFf(mwGbswCr^8^pYMDcR!S>qgYNp>y zCd&EZb8p9{pI>^MoPU|}Ww2aCGt&WcHM>fx8W@9V%M>>09&9M8J8{(&kG*s~&t}V} zStzxW%%D5SuO?^7uhtWp#CF;rnysvQWM|D}ve4`87^R$=gSzKU zInjG7zDkQ-s=6x`dct$D)SDH0>G1)ChGjuTD5X*aj0o(QR^h7O7q34bBCAJ;h8li(jfWF95;>Hrpa#x+hc7xH)q;l zkQ|Js!xyOxw$hWeuD#Y5Aizph`Isw~du;yY<+W}svz1)`Ny}tgt@YT_VLU`DvwW-W zcbQpDU~_D?lCtzd?+I+1E&uY`-$-KP*bFgru3?c2G(V6X!XltovqJPyufB! z+F`*~2R*U9gu`daT0ZwS-cK!dP^^x3(s4I4Ue$@luhv$()Mm|Y+H$0m?qVWai? zZK+i>D{E$*s|h*dc|NLaay_%GH4Z6jw&fbUI_%ciml~_>UqFKE<@$5sxLsri>;8~6 za||)zvXg>g>{D6msPbS5b}Q55Qb-mxxmaD!l!3h5Z3y}7%dLWHSxc@m8m=p~f%@F5 z3=_>F^p~6uMn=BJ3|nf+5Ifo^*(kExcA`3dTGZ7#-0G-ud@B^?mkpmt)Hj1k>Qz5( zxOFNA`;K$s>SY_%dTugZb%#=852j%102|@&RDONVuBMqu;w3#_t%R3WZaZnezL}er zC8YMeT0E{=`9WpVn$`L2u`$n@v)4lNSj{QijwtWS;`y~#-LC{jsana_eppwUwM9~? zmD{b!A^(zQvrn^qsyE0LriXE5Q=IRInWwGwIzA?ghE>(y^aPs{o~L{*b6jj${cV?j zV>|uXx;j5pB;`pKGsWd1)gHe}d~N@fUF^Vx9nY&$e?O5`Zc=>7Jx`8Gam>|?w{~v& z+Fvck`Q>acH-S2nn~}b^o~zqlt|9MbYnl+%%=2qXm{p~Y+S`F-;_|Pl;#P#h;?dx# zQp_aZ>W0C!sx4t7g8T5iFUk5elX`3K8>QCN%B1?Um1yqQ%@NBe#p+O>q@|~wNtXu$?Hkb26Yu|)FP7`*UHvZE$w?^t3NiIql0`nCL4v<0ldOO9aL&zI!zRs zlSQdpHR|nw)g5FjI=5?Q#A&Umr};gzHHn+iXEI=<7eHvVw8DCo%RX=S8~wS-)ytLj zarD&6Z#&5j5ANe}UF$3-C3)28z7hYaSOF0{oemD=ZbmNmR_!cv=;xZs%b=1Ri&|@B zw3f>`QR6*RlZMj1*{Jmw^=C^TB`f>l(}Fv8N`}!c47ZB5s%FLJvVKgwD4m08bQBPp z3vMSI_DgZnn^jo(cqWk)l6Zu?O<3cPI_v>OfI%c9Q_1WWm z1kgaA9kqxXsCC=I#9DL4q`{1uQ?g=`$--$@%i&5)EeoT=uGH+M%mXKLiI=xYflrt( ziTo}pru5g{`Z;A-mEokk8ziTuQk%Cb%W8MnV>Zj8(cLe!+&nchipuNAs3@>-1uOkB znRnazD$N}P@tJQc;4)YpvCOaY4UwyNM)l_`(~#YC`fqlyhlQ9|Dk<}Y~jo+=d z>-OYO73Sb&wWZEnJjwvvHCkEVxUTY&?g(Ht7xY!#Dk*Z-7%@u{(8(^XLlR`LIiDNV z`Zm#OtZTd8!m5s$!{kloa)W&{3F@pcQmi7!kH*LJ9)3k!L*p-nA5fH{j*~J29As)$6Q_ya~QOZz|0kS;WHY!DLojKnI#^E>+v6Q|1uJ zE1NyO$&wd@Y-Lgz3~ZOPTjmXm`hd2Z{cm4JNo`K9$r?TCr<|Z60oX`m!$n{ELl}8O`c(5KhGQ7 zLKXDXVU^O!c{BDM!$$f<`ZL_~EDcXUF4M}}_uNUrGmvGgWS3-fS%Iq)`fe_UU{~PL zP3Pzq9$lW8XloOn+MjW-vsldU z`-kbax><5rp{9!~coBuy*VWFf^3Qv#rM%@EI-eD5wQXTWWO*Z1PwYF@S9w)uxR+rw zKNB(lluZiCfvK&SRp+fZHOJi3cy+8O#rZTO!xvC;SM`vnS6> zo+HUuJIUqYshV1El2!33q4(tSOX77Xq+#!7!MAFgo|sYwqc>QeY^8SGcA2NbUV4+N za<;AvGx{>QoEw%pe_l;%^NrHky{naNU=+UoP5}qkNm7s-8B>7!Kkw~w;S#X z<({w~z4bcmWL{9y1#Qf!sfLtinbzxU|Fo|d`Lg&_Eg1Xqvane7v|YN>0q7x>P%C`V zXiXcVmw8%mWM4%9q>|Ij6L8q_@RCjE6GN$K$X0@#?2?eXP*~J!g<5HsP1VXRS!fC3#S_Hv3FQADeK_{oAteDgstssHfNw#J4MN z`8lyQ@~Sl*E9!*njP>EF%L3I3Pg++N`I)Yb*Qwg>rE#nkj@49uwQTEFVVp9vI`_2Z z(~Y_K+Dr7bTqkL^#`6ltT5oc3d^j|FlYYHeI<%DMij=hUe9Ox5JF@oWlqihGi$k)I z;mrf!*BOEli|Vwy7|#<1h>+}Zk!Z1{192%9Z~YeqoRNye6r{H{5y93<>=?sJW!rpR z*0LFOQ(qa4jA*7a8C9vz`Jp9cumsXK5{4+dvcK@or@z2A}e8#1Xk<6AF z=~*?EpJfZL#;Y-C4zsK}uP<}b)3nRJq&Cl`Y`gVb$c$F|${_ugei_y_u!Bj?O)is9 zN{ddJKplE6(JH(Y`~2c{u~?9NyKJf4ZS67}qqW%%j`hW6y;Zg~^Z8W~Yr_WUZcuzH zKHI5?DJ!>ZH&cL^3-x@aQyW-Gt5GmUgKB?JsP^V?3w0fkLHJ4ctu)E!QVA~k#u!aj z>KYjdupw!gOzoa3a*ZAIYNMx-kezB`E1x&oyJ5{Z!p#h3o!z#wWaO&w+9}BU!SQ9v z5kP2@(vJf;z$og=iqwCd*9VREqQIA!<~W-=7B~A@C)G)bM|ES(ddCf)5oRx)bf?rF zG?W6Flb-EmSM}9sF*xwAgtE5jV@rM-sKx11s?{8|T2E+t`xbY0txDnam<$l+0d$Ot4d zZz5-r)7Rg|d(ZKDZ3`j7Oiy)nb%C{m8p2u)p|kWqHS?~tJKU7rU!sOJGzj)W0^OWK*GbCcKUmrDCQ4M)n45XHLsymcKz}fJN?vmt+1GCjpR;-Ef^4Sdgn8` zKW!x|WM%vt#jh?TunZ2$@nP`DkO`rG3UjX^hx@SL?s~h?Lv-M%d;YWRwGQZ{`U-Es z5z$R~=P+m?&mI)_jy*qQ%61X$EDvOmu!1J5uYdl{b5Vq1Oh5Gk|AMFVE@7IG z>!)q6-fJ^cre_H~BO-xh)QdCYb&veheCu}@=IaqKFffd@^L0EjQGu&?LZ0cJV%GUp zfAlO{2GUDmMf&V^4VieS7wRx=uR7UUCb%J*gHN#Zs8X}*&#;G*zKXq|lHiu^)qn4W z==u6tHZs>Yn%qCbssvPW>d~b^F=*F-27|w6Qb%u12Ma3ar67uUMB~N3czI9s;XKdgrr$?DW|1dAz0m=|x z1Q-v;AN_oL@XT|mJL`Y{tyokf$<>k%{4hB_XkjS0oyFy>U))#{*l{@X1F2>L$*GdOG)hKJgG^GwMzo zWF?+A9P4wSm3M(yx`c9obB?AgP5wT07Hm%H_YBtDoBCgjvYFC`AA@Vy2Hx=4w5}ak zl0@6RINU$&Ug%!+j#?g$?56Wm=1*#Tqyti9F~VMo2n+*O{LY=+jC{c2qnDJ^rHa+2ouqa^=i%Rp8IRBg`4EM)gNeIdV+>6tv|` zk&8Lm8E$5E_V&Y%XIVcO$qu{%7=8W>J`xw`L)1oLpPo*F$RIMePE)Cd zKP)60lxYPchZ8M1w!K=BTnGBY`p%l09Jgl3j(Lb!40jptK_|zq9*(beFa4RdG8V<+ z*6IUsZ2TT@5AyNy*skN{#HT>mfw7*Sit!SREe_EZ!vGjsKoIO$bwCO3%I&dX}-AQ6aiNY`}pMJ&=k&RoPABL>ng}A z-d=y^gH|T-Cle?eAFb$sXL1R2zIXy$kaPb<3Ug*w6K65QL?L&6yT(xY10(|DUu>ng zrYz^@!bW8B_=bTd9uFdL_mx#8oZ<;aZ5P8F2dn&j_TcGS%{*zJy@0XDQP}g2x6YEx z=wb$|7Aq2JaP54=u+?XPio&^mqmc^(Rb-&rJTl+c)ViQa!I#oR{a}5Q`rC?F*V3D_ zj+UA~u9Pzbk-yVu+DwBm9A8o=@KE-Df-+=V7&7J=o7d|8GYcM0KiFz+BTUMtfgFQ? z{1&76Wsoi|SutGXw{+tG%-3_O1YL#x)zQrCT$H^z1hdl*g`2jX;Ps{`C;Nxlkn(uh z8M9dAon+Mb(_)j8hGA=aA!t0Ez8X0R&hgIkUA^vmsiL*>9P*^YZTGH)YR(;H9ZI4+ z$+>aU(5G6p?su@9!r-#AwD&bw-_>-Y7I*CyJ9y#J9P&b7bp4D1&2ARUuRZUv9-!hX zWFw0fHZyt<@x)_|pKZOlusiq~(_>sjaVu|JHBY=Bn?_-_t3-rn6yvx92>*`0S{8(8-Dv zq*2oh)$825bxpi`#rt%9or0L39u{6+p?h97+vrsk?;rC~=y2CFNx+`0&*}5^5rjLI z{=}cTZJA>73O)=;MUIPgFzWf$H6_9<^M#5r-28KSdUA_p?)Mo`-$NctCH+ihsm6NA z(C}^!sO8TnXd?u49W!_}b|E~88QKOn;vSPD3KT5yvvM;u5&>X;h%ukdf3GGE$7)zA zHYpH)$@zY0%mFeRfgnun5)mp-FIY&ZsdLyO*Fd%mPy)#NkeQp>6uci`1%pFPbB z=*Ov_5reL1-21Et{#b`?V9GsE1F>)nA z%SbEVQ|_t9Vd49w1iUPSPW%pjj}{pJBV-^i$PvnEp)z9TfKix8Z##n7$?D9T(I#@ty1rU1NfZTAp9Ox)b4=W4r6rE_`! zf0BY5pWaEq#Lyh8M{~bYR|^wYB!bUIPjTyNLqY6F)*iT1ef;*m`$$lLT;^DfC&?r~ zpJa$4-=EDZY%{v@JmLErOd{9cX*xV$xrT(SoaR{BL1m_Ff_%b`&{(`h#|T(WNHLH zq=J$qA%kqgg}{r4%#1j~w=9UJ_TUZ@?*|S*S{IB zI%5~6+Ye`r5HKLbj;zR29Ky=4fJJ&&5|%m7pB8+M0O~18*9o~MjQ0r|UYC$exBLC) z2E+ZIOr+~REcT2ekqxjTB|py}#b-3U?0ERIJInl?4IALne^#P%g*rBcOAon?r-5yu*-`D>ek0@ShnZ^lcYIeB>6%RNyq;`qzIftqD&r z1b(5u7niSzKX|oZQTZO8XNJ;YuNzN9ON&ajLz9Yc-n0A4v|}+9wg@>*4)8wIsN04Y zit=?vz-`o$Uh{+j^-+3Wq~ab5$hRXXZh`=ezJAOYp=f$AvJ`zT28}ApJ&HTKVBw#+ z>X&4$k12euUH^JjiyV)=(UP?cQw})=jBDB6yPiD{v^uHe7Gv>O%93QeElb@nnV}}{o*aRx1r0P_SW;oh;g{XwOIVmB z+<(i}cM8I^q~~D)RP7^<^iCU4-WLHr7+IbH%X2O@@vW!VoV#ru1RJ4K5SVU!XxMRq zNxe_8_JLKI?&h!>!dMnZqFCC5p-0&ihmo6Zh?c{g60?ic)q9n=r@E#Qrv6<_KTarq zy9U~roNAup>WfuTQ26sucrk1jy9fL0-a9!q;^u&iAa_{g-6Mns%L+(uOImuqk;nvQ z%rnXG=l=rdk-dd%8f3SqMte%!MMA2Uo_=ES48Bjb`XV=S!>&8Uy62q&Dzo<{tQ(>I zB#f#OybRS+S~^;3Ph9iHE34&Ao3UX%$z-t?lSd!t_aN&yL3}-d8^npTG8qJO*2qs= z=vM{USzKbA&*G1tw0?=NgsJvD!+>BM;L)-JS0UU}(|EwQ-Fz|O7&2Z5*G4=yo<%cn zbFTg4q>x>jFnM)T%UFGmoHtXgZq7t7V>#N`|K81|^R>5-u#sO*>_BqX$h$Mhpq!9d zzp!Rlz;^LSDiEIeAW*G zX{wnL&GPOjiE$L8Fkje=59O<9pLO1%gLQsnC~Sf7QH7u!?hW? zdtc@Q17wg#m{8VG+Y!az#a>X1yO#)*UFv#zkMFaK7P)iNOz=tXci?)A1mdZd=zh=z zKgDO~jUZtZh25~k{MA)87q~KTMAI&}3S2M_)8w}@8ix@=r$!U~UJUu*uY-#P5l2M7*_lpQmZLM7kHtT8 zt7)VDN}08|L6IoUQZ1=B&I!NUS-;k?+FE=9b8?7i97PSodW}%sq*W6;CaHDz8o^KY zF?|#mP2%ttwWDigB(AN{xxVkkdi9VT>Ju3h;(mocX)T|e-JFgyp95O<`X~>`+ z(D`DhhRAl$9Mb>bl=Z}`;JxsbVINTTZK-R*qa}a8AS#22m5p-7&2U>`1Jr2s(Z(;s zxZnuw0{4a^50Dc#3%mcTO@56GaVKd&Yn*7?&X+I-njA3gJ)u&Obve;GJTI!OhqxPJ zAnMyvV{!^Ejcqm{j9O_MfJ*DG4~(_A_h?UT*EJ537FA?dkr=Nqk_Sq$d}T+A(Y#zp(e= zLpE=bItX=zUya7qBMSp7_ZtmmBdF?KHz2)y0a<7WFk&SMZTh6tW{K(q*K_k;=A%9U zaiAOA^=A>kU=!*BI)1A zg8x2ro5@Y=ys8n|QC%R<%$J^9=ouaR`nxzUFyek)&*S6WoU({M_Inv{bM(PumKE2C z!o2TDXk<8k!2d#fV!@$CWKSE9YVjYd{JHwwS3k@*i_pD7shp9T8Z(3dfb(v?01Bnz)7 zHWw;k4`9v|Hza?(W#+4&Ij_*?Hch}1QYX9@CIPyNa z->SU>5&nY^-~tdVdX+(sz84mg44RUfF0Zo~(&; zPhsLY{yz83v>L;FkGsIWIDzfH%pTzI5uB8Vq5FQWzlS)zq71IqJ-&He1+0P`Mua_m z{rpasn$JL|eubs>J`XiD@~*$GO~YSpMT?V+`?^r_&I^H$)T#+qZ*Enx?=SD6kwrDl zUut;4E+V{Ii&L;s@8}}92K!B)-_xd}`MX2=+Z@e^t)z*q zfGZVf$j_Mm%{mKYdj#W`vm244_QeW6LS#`I6sve1q>__Z2dfpy;HwYSmjoZ)26sb{ zOmWoD1%i1cCEp9dZQ+!EFQ3~5Qp`zVbSrd&ZiW1#f&cj`SU!68B)p z8#0Hb}b?n(&8@~=u zGZpLmdh-wU#?=k`X^|0AML_Y2e0^a!-=6?q&(U` zicTJ~x>ZI|_1sXw-DtnqxH$|s_N{Luo=%)VI>0dzPKCZEfWD%5hGg>@1{6s%<^}gp~ucmPX<6fmp{vQfo*7f zV|!@S`q~Bx3Y}1Ls;XqqhkuW7qEw@g(*SR+5!hOqZKT|CtjNI!*suaQUORmr%L*t&SMth&ePfN!}n^6K^rRau49UcA*>NTIKlmOgk&iog? zwZ#SOvb9%!)v21PW+4Twexptm0m~PISWFkpw^p90>Tm)&0!oeL-kX*;*|D{GOqZovPf6vYLEwWZRCTN%W$2-#F>3@-B#h2BqNR1fF-B&AVH;{T*Qge^4!@>QV0!xL-D_{qb!i!A`;s_(cVeD>T&58(-XnwTV@qJ;9qrE~hhFIU)N)})QZz5V&=R^~nFrF* z$70B9;?XaYn#ADqSPo}1ooM@$Pnvs%#w_KFgsf&XP*{OL84`)EN9;q#a}`+eEBpp- z>!kLVY3d`ghK3OV&1KnOFD(ecnM(uE5IeX=3TE`I{F>UFbq%#eTb&iU*wJtEXda~V z^yt3Opk8~&yljsHS(HbiV4<;biQ8q5FS?R{am&93FH``OZRDq#uu@ zn=DzG64hOx=A3;*?Pj0O*Vtje89$J&mTzC9+ z%d(nk@|=}PQ|_C#50LWt!J{~}K+pyKIKZPJ)2WHU=-bl}7J|lff#al^9zI^wZk27) zhxC9+COfcPMoFvvbKj8{SPU?Vmp*InnOVp$`Bpt0+D*JfxiRMvRd4u@2YLPRU3t~~ z$ZxvV`WnK3H!#-1U6H`TGTO=R?v~2Y2*>lH)ZFE;kq{7BYpg;VZm0@!Qz>c$5VIt} zu>u+pt>4>1QXrG%viq_zG&;~k-O3>~&v#IRcFkZM(NEXEyLa={ZI{sHt$swKvi!*n z?s51mP7`J8T?K(1b4&)GmnR{8?_B{GQ}52pgc;m`kx)Ld;dUO%m0tQ|3!FgkXD*pf80jhJYz0hzmvK zPA>~u>M$2Svz=LFSHBwaKy;?hly-dRBeZ~3YE7r6U++^JSkU(kLjq6>?`R-yk!OO2 zUmy3i+6q54h2E2p!ZE72v7D;TL+F>>hT;a_QY3ddy1aFfNw4F5h8TVx%jn=2hknZd z+%>3Qercs}%zJ=A-=H(26SNiupdLOvP=#D*bCISIAe96HmO9z3l#4TTSHrN@48351 z73%Ztvow0kDEt-v6sTEinXk#t`OxlGS5a!q?-M%kW}Ul6S?{}--^RVMHWr{38*e!M z#wI5Daue>PS`lV2hlTAu4TAAeF+TlB>@yb0_?0ARhnHkTvug<5Y}u~Y@x~X{!8k_PtV7%52u!r~dd(?^b znS#R7DCkFpE)e+h9wj~2t)2~Y*xx1-R97b-lS|8WTZvu>wjoIPa6G$FmiR^C8JA_y zTKD2oo&bg6_R-Z`n-rYoi;4cMw7C!!q?X0sL++&(c)}`uS@0&NhkOrLSe>@$q zHOHX%QMmm9`eN4? ziGIx-1JxCwF*vS0M1WRexkIC{DsS;_OXqNC?Hn}ue&#M^H~T?H`oKyc({+#;w|rnnCLCDCa`h|+f-{FjNjrDA zY~;V((tlAM5YjQMq*ICfdw#c2F@dcnM%Vfvzdzv7E*qZ4iM#5`K=uvlS-i@~$4kyk zG&xa{xWWD!!Ailej+-?%2p;h28wXo$aboXxP&bU$l$gV39Cq%Xpnb6=eb zI@8qrbxA5T*#4FfrxY^zxIU&nT2r+oxvt-!R}SDZqU)oi9$-hnbDA1<&@H9bd}2)? z07Co{N;c4*Z60$`bx<<4J(=lT6hP(`+BjUThHAAQp>Im>*7l@<;XCYa$~}wqbMuilC`Q(7zO9 zzCXMOt3N-E$@yYZ!?eMDb(=EqHVhI1odcHWAvJ(2NmDX0U#RTwJO}K<7PRwhHw^Yj?}+CGZ5l{BU9)+q^65wYMt97G8 zMNriUK#;mm6uWBZ1$e_t2~Rgz{_seYbWRzvDfw%xp(JM`O4BdwP5`tr);I7Hx|ACh zx-IgUq|FpVP$%8tftrE`H3R{FW+!NC1LEh&3by)p+a*o~*(5_y@wBUOy}iN(xmUr@ z00yk9g24LsSt`c8EHv38{B8D*kWAv2?BR-kbO+Dd;EbRvC5rysAx$8FFOHu@v} ztxaH)Gw>b(@fjX#hQ$kK?(?6@C0oZuty|hx zL(ePF{mKH(qI?vH8+FaN(24s3O@os>#^X*}XId5w)}wDy54yv$EcsGuN1CMMYtbfe zfe*XSG3ImKaTUIBXaUh4PW;trL{v%hb?$HftWeV<|D_&H=1;I??YxBd|&_ETXA z;fOe5Z`_Ey2#50bP@=Bv{j85~hz$2caNxBR>82dLRi(&b?rlGcAkj6NIz|K^njkI5 zCSN}r)RwxhQ~4u=h$!wXfIeug#$?a{5mxp6iPKYpW_$&W<@d+n#feO!Y(+f;(n(H( z(2(hIjDT^|8``!{|26oiNVpt<{bZ;ceP;WhfLs|X{iBsR@Qf3)3EwT|GR(Kq-{6s* zP$Df_EXkGv;RO(4Ee@hG3%flzup=2cwJEl z*U%57`__5j1x2TFRubv&%pXKP57co_eRvI{h(OZXMf0sT9z(E!+2-r$YZ!7nbO!Na zmuU4QQWGdH*UAAmBx0pPm$ksOPe>aBA@1mg7S&uI6fQl#!); zi?H+iHHB9f9p7d)@4;XIc}Ojf@2?#|`H%#zh+=!X15gnaBSQ8Y%}~M0*=x?jAAY)+6p0GCrYyqzuJ9AVs&U!R7ejTTF9@6ZXF?hrU%roRcO(z zLRho3?)lzSFihYm=%9F3*prMabGFB|>P$=+cS+}GWF8T!vHL}(^&8-;R3q|Guoog@ zH|6%`5sz&9Ts37@km$&uI*035x|H{kQhqL4tVo{tXA}M73nme*BpgKiXnusF_H?P( zPBRE(f>($3L9ARrny@S{?R)G3$1%-vb%a|_afSd+Uu2ab1ctO^E6jqrfl$pd9}JK-LY(h z$-}wMpyR=A5An~IpPB?LNF+!*G?CvP5HhZUYj98TR{p$=M4T`ynb$@>>&sT zDqq)yA|eGUG5DB;jZd{U5pfgc>*%9Ah$kBd2v1K0K@MZdexGB0vms^WvKMoi0 za-Y9vl7zn&b`a$|a+y14Dh(#TK5hVK%CR3IyQn*Khe8Fb8s~Dw3?f^32EDZbA%(YrcmmSC|O&@ky_Y!>;J^ zM;G0f@nl0oO2DfEf3mLx?6M61Q=0Zpvp|BIr2iHCWTWyjR{g9^$8%KVMh%EA5}OX4$vvO;6J$ZnjE~crkEtpU0IQV032a zo??I*8N4y@ISA6(-Nk92PbXdKJhj3hhUPzLr$FU?yWOe9flUdGcWyxmtj%+0yCb3; zpt{{&fFr)(;ggddA%G3qbyQg?I9(6TYyf1kcWZ+I8gZcKYhEwI%zn8LUqHxyQFdSi zhOU3(wzbEuZ_L~JDiuAb8Zovl2m1CJ<1-lK(>0o^UYC-a^1Bb3eu>%rH?`V_hPlfl zZL;;v#}7;vnOef{m78Z@-{viSaFIW4y`~(ZaIUWTK*SfJnPk-UqaR3Yw^-O18b!Nr zkkB$#eqSC$tw(KaRlaQSn(Ufekg?0Rsb}*M2>K7uU6YCGg!9lJ`+5`mtaeQQ%W0-4 zx(2P45c;CP9c!t9^GpunJ09; zT1lTBl0pj2^O2^N!6*IR?tn#x?;XkDYpzUVX^C1d!7z;h?bol1&a#rhfTA#HlY9S7 zce#+Kvv6rMAn;i%)v24r#{+FssUW9iwQVVvUC_u4`MX$g;IXG- zk$An>61j6evU5dt@SYP39Vt3~zHDabG*>Fsr^vS5j&RULL;6;nYKAqv4!;s}FMXhm zYUeJzpVt)Xxdk0=2(`gj5PY%_ zOiH$epu0IK`?+2^;Z#kPoN2z-SY`S~JngYB>Q27^mP4z{iz#|>GfIbEgYC0{p%ebK z3ukx>us%E5bD8t0E^tTF(-AoY>b05S@P6ZYKZ6x18qj|=p}Mo?1Q`D!HoyclAHb9F z-PMVQR7t-&@j)KiBm14Cl|BbkH{aIMWKC~PB~fp-q1o}AmKVeV&iBY#TrZaSpuVI$ zYnDjsoy18wC8!{FDx3aW#+P&t<{1Z-OoWDeA?WOMLMa_~@C1iORd|)4D2C24K9*$< zAQi{QKNgrvFgN=4^($+kp^^cYDAlGx+wY_09JD=j8R_6+qBBqk4!{SJ=Jzuh-J7&Z z_gp&L!Mka<;CCH<`#f?^~WlWrGd=v!(8+x&6?eXYbiJk3QZy8g31F z{-iQ$ij~2TARt7A0@rHwzY47ULa-^?Av8%~rwGOIIHEVQU15a~?zG}LL6FTNgM&en znfgxUPh4sNjOAF*Kf$Z)z3A&R)_roj2~$Bz&_IpyE77{#dRPlK=FiBwrS(Ec4&|i!F}P!)H~9>dguQ5;bt&g zb(n@Ke6T%6rOWlf%`c*{UBj8W0maj}q*}I^!;5JfQaAJ7|AkluZgY*b?NNTlSLM?m z5d1*C_;vkNA6@_sSCp(nm&=ytjQRr<;zl$W#0|>X{TH+ovRg@quEI3D7hLJ=@SDTp zs{a1omNDTc^fi+z;;U1bp#n^7aEi`{IR7W{T0LHy-{SSMr}y8EEk_iM?Tc5QuT$h zQwfBKKredfJqVab87XL4f&(DaHAl|J6?`7Fb?HoznYWXV=wVe#vBTg6Cxx(%n7dl1 z#!$ERAgzZe57P$JXWe)%@T)G~FpSX4zitwp#%(OERv$qm7Ig>PyIjIcGxW!0ftL%N zm1$aYP$AmKqr*Pc^K8fwU@2j`*feZNjbeG>-DF;a-9Qlc*Bnuj0=>Qyty&uTit8V^ z+QkJBX=?fOKkD0eH;LIgp?O`Q8K^^Qs#@xwpjIma+m<4O-m5SV=2U1XtTLe43;huB ziww^fQN_S?+5TEheU0|u3Prtdt=O|X^X*mU9fHH7ThurGMtx?XI?%2)U(oR{KjY9R zoE%e^pxq>OslgY5Du(0Uw^zpgV9M0^U8(pe0n2F6OE8b~m+M$)5^m^uhUzg_O_V2> zx((I_aHjG}x`<#~EcnqaA54F3Avk=}Rmk7bqH+7ZoGY9)#NBE@CCLC!K?vGYn|y+? z6jYPNN|A}7qzoRH!$+PR8>q_92;qdkG!Lx54wfB1!J9Y(Ws$(mF(Vjo>RU;leZ3J3 z1^>WO`7u^$!ZT5c)>l@youQyx&x`MD6<^K2_^-ubi-+;9#^KM;fbB8@LV0Xmd#;*+ z8jpP|Sv)BNZCCn6kPM4x=O@o(cDEjjEv&&=#<(=LZs3Ll0E@F`=y(CV25y7zRhP*3 zY!mC_UZf(9>p}1u$v2bF?6N@nWVc|>KoQ+tFy*|Mc*kOQ_D8T6h$w;+8enWG-0?p| zPeRQIEne$TWm}j*{b~GuHXiw<@rcep+T@QXFGo7sQQp#w0+{cm8TRMYNQlrN@w=DT zmX25Q?}sVgh!pc6rxLpGc~B7{ET!GN0$~ zd!yT*4zrw_#+!q79ef9stjX$^hD0Zd z9dU~ixiJ}Fl<4f>NPBZxK5znMA%I?8&d808$yN^7kVNqbO`B*Sz{J$EEd-4+YapE% ziq`gm)8P%XP3Sr?w@E}`(s0Aee=`9xyAHTVq_*{u6j}DM!dd8E8Q_o|4C65otL`TTw;Ei$5 zW5ELMxA603o?kFXqdHyhvkpq+7qs$kU0ZU^v}kl3W#@9QzcTGX&Y{?+8h|$~2(tu+ zsjSCz^@7`#3;#0*2@VS6<5_8X?HvjZ{~F@s@mi)b^6dj>6*}$jCm)FyD0=SMfz^Kg z7c?9-z!<&Bb&j)%>W~NqFR$cWg5-@wYfk< zF)9(OVk}-Tu>3gYuy@w5U_s^JJO_iR!A%DK1~s`iL;(2nIIfn$Gz<>D-WrK|F*q`f zEF@OT7myTc;%#niXf}V+%j%-y->gi2|pBpv3{@te84GC&F!TID`mQ#y|n< z9OS}Z>5QSRL}#EBVY0rbGk!a2tIlRelT$*{AA@av%QD7$WG|h^fV*bVm7pVHRdDwF z*jU4Wm{Wtcj8$CuEd|MB$LK7=(?k9`o^<+xM()eWZ|1o7^t;Ze;OF(Z@e@M&K;muw~O|G=qa2x}(rTqtS?OtNvgXhg>;OjT?CBV-Omzaotkm-9a z;#_K;=AtR)PwG^sow??&qCgQiiJl7C~ZQQm^yM5HlGY;1&ZE%^{Fhd?# z`ALS`6F%g4sq;$)9&w`UcY&8Q)#qA(mntaPz_Iyd9pL-=$1-*9F@@dw{zT>zsG-VD zP8k-rE4A6_ZYASHFoG0BM?_ce@A!Zs{sfe7kGU)J5m%a!5tk_qy&;@OHyH^!x{A*? zGAr&wy@!HZE=B=OV$X2ow938r5^$bb4^N;qvYLDeAUKg9A&tMH@S?@{_xlY&-z{26 z!%E-JjQzkP6q~7g)oDlAV<|_u8%2Vf!JN5Zc!43h3ojzs>n!Q&hkog=ePby3Y0D_G zbL{g)1pcaya39@SDp&u)T&W)?j$%S1?PGCL$G&CGlgX3+R0eNirx(g1i8^qXov_u)p?Ev5)O7ZpD}PB0>)F7D5cS;j)y;7T!Qkki_ZF zMv&&tS%kKEfNSpwVpEw470C5PHx@s#+K;>$agSyO-8FHak$-(3OK0$cEBLDLYoPcq z*JM0K$w;kq{7@>)`Y_I;Z)Zf_vI>7v5qSh{v@x~{p01w+q#hdhehWMs3CgC+S{w2V z54~BG;S#{Qh#nrIASbEl5lmR*x zOmm*1Qn|T7E>E=l*}vTIz}uLI;@@V#GY(Yk8ATs#UXl<#jg%5ygC%hM7?Bq1em@*; zGi|Y{!g0XdmZ<`B7C+COnAy8pg&_JI3WgU8Mq}o_0_{7fPmBK z2MJsE zMPl${G(BJU^+uXKj@J(um1MFzF2m@3kv2st-DxC^euy!+i)?}h{hM%Uny=k#Y{87m zA<0s3rpTASS6py#5E+lWvnH^2OOa0yyq?~seea;G7`PKn~sm7{6q@>cP{Zbi($bf(;8WnV_ukyc=LkO)hXMR{$&S1M@ASIS2>G z7Y#R+Q$BwstN6(3$v!&PP1^U*P?r_Ip1v8h$NNZKy=)dAtr>ExK<~LPoFr*14Uf=J zDU);$99rj$J4O{0+1K!dlUY{pY)C{0tcJV3zKO@f#KH{!xZn^cvlo5YPX(6Dry+5C zI>TSz@w(t?OXl_q6KQctd$(!NCkZfha1=xTZ~|#rL5t$-fHNS-yJLBO$6)y1if_<%;8cR7 zgDuohf_QBj2hUV^etitsjnT>~A9>);w!!8vL{GOhwr6;g5^cCp^U1(kva@#}_x=Xlzq=OSR9JP#jdy`PuJp(kF#>s;=Z>L(@{Hn2F%vGgul$5l>!&~kvD?*vR!e?AqZj`hrg z;q`rzDVrNBK<%8(6DASDi2<9JAcypBT(4=JqU`oMh$Xw5oxdqu8z zhZsznmyHDoo`p&|Fjs?uNB#km>{x}3~i4YU+KcJD8FQ&N|X_aeAA^j=_`-dMoVcrf%V`1`=V)O9=k*o*!b(;#T)sJt|Wawhx z7E{!JMh9Nlu+9EE?xnDpR!pTY2b<^xoc72ZIMdt&tr*SJ#~spRh^~(cSPK+B6*}C; zZ~+wm@Zvg!`ptjry}OSq+xI6lB0{5)AR!>*hq%)H25!~Ek8*-!yY05S-B0(+Ex}dU zF5A^@yWC~F-EJ5%(7=B{M1m$Eg$Ux25QqszA{!AA@smb~aDw5pckNZR>(MW_?Y8@z zt8>q>tIGA-Ykk&dJ@(o_wXVHi1f8oG=Z{#(V03bIf1hV>uX1`_9ro101Ez_0)92~) z{AKYPEW6S&H6|5iRk>^C`quL!X3=Ib+2pWwl!sIojme9tup`++ZnS&$FW4-$Nv@f{ zJ$k@=y7R`_=rVIxJ$o4&cbZi@y12M|y6vCdO&Yb%DS8v-CZ=gsa`#hq|EH$C(4THP zy_=&^_r?Y9sZ6r-C*^v`6hptfdC~@>8S`$&FBA8+*f~5Z;7d-u9@nh9i|$qD8trqB z#@6H9oK}X;wPKDh9#IKwJ=pHW_2X2*3P!j4t%mkky}q33?Q!R(b>nLF(a|j~4Wy{^kF9b!XrZN& zdXVcP3yI`6bY^^n;wV*pQl9jC{pt4f_PX4-Y+qa+jFd_B{J4q?(devIzDl3vN8Kuu zrG?czf@59D^!10%!oJSHFce43jLa?%tgEyBLn~YD=+BI{Xw6O*$M#ozBW9Ime*bgb%%&Gt<-FOSqF;LV;>beJ^08s%MSWM zk8d;e$MQ+#%HFpRN~qnq%=9P5<>;UUf396KC!^BsVZO0w%;DZEr`gKY{Pyt3=r-+c zWTi?n(tp@6@~2Zc6c;Cyi!Xq^H{$$EGjbpphsg>*JrB1(l;N+TvOy&GUcV=oa z*HD~X@ASwh-1qLPIdfXC9z3 z^?f&UdUdW;9-r0Hm3nJ*j~iy=W_VFKcxqG{!!D@KWA9{IniZz~d=veZroG2Txy;;r z1dfJkSA9Gm9F*pOnM(up$7ku`-LX}lWtB^`%`$Rl$j@O3qAZHSIFYnV&c*d`TzYo* zPs$xVjhTvP!hv}@>%vuA(9Lycmt0>mX+0?ptJgnl_ zo^xyG>xZg-SMJy+C}O^vVa=Y07ITp+Pe+f%1!lu%2BVUBd5+7MvsikteKu}pu8oUZ zWqytOAKwg*?``zpXlDy-5_2top0%GEi_1=5Z4MDbnBQS>EVp)7oi5Id=B%Wb%u?f` zZlJon_ELVzpPwUjyqJ&F>&nx^%f;c%14EoTrl_0GXIad?)X$I9LHp%cA1rE5kIH>% zXm)MP#~hpv7ERQ5HeECly{VbK?176{@-SUopVyynj+zsFbcjT=Zg%pgJ%(6St6|vn zR{7zm#H!VbSoATI?xCpUp;#y(B37GPhlp!JwR^RjOBbGbyXMT1i&anvjNa=-#(s_3 z`0g@&a(8Jk8ZtV(aM`I(M|h6%Y12HswJZ7kvv!wR+v3b<++4J)W^J0iaxZW0_b*Sc z^}{lrqk(SFcfH|$YyYr%lq(%P+_@EPRDYhp>=v&c7H7@F^z+5=9!m)UcMDA37L#tK z(P&f`M|bm4@!_m?)|?+-JDPEiG{Dty;n7f?XT&+$y~Z6DZ7W@wXk+&k3-^AG@=o%>26Nx_5UaWmp?wVnOllMr}SG zcX)8K)GBp{a1c@2w794*$`9?+>QQGlnio$HS4EKb8Iy9J3&zRSg_bQ&hW8V!npSYj zXN%J|^ycoQo;Qo#R@ZTRmpQy9<3*XEA>Uzdj^_TDn)7^nqqR#{C8tuGPP^5YLjQi; zs2n|HjYZ`F>mj6vlipdaUArG^&sPnFDf8jWgek(YvUpCSZ#}0}B?S8n?Cow0~a8U1Xoz=S(O1 zUGz1;WDe(iWIVhSI@f6UaNR$w;l59en%XQ8Ge&u zHk{Qi=J(^P>^j|l5k88bOXXOTwPc|pN3T(64h zRG*K^H~8c{6(3J)2wmDruJ)W$@AeTBd3sUY^W3C(adLKDeeSXPq09cTG{%JW%CXvR z)Y|vM30A299Vnijw2$*g2UzH;hczUyq~6i~%cOYjW|Yp$^-*WucyX>WLzEL&U!I1} zW$R*aRBbZrQtk}&vE`0xqoWe*!dRQnF--{NccXgdemF-8qi&$ciu6qY*Lzjt9$gRXs1K?1 z4lJy%cf80~jf(M7zfvdnch<$ja~!g;@#Z9ZfqwKEE?s-CDVJsT*p440ttc!*@x`B7^)>^>ay>Xv(#Hk9-9 ztX{8_M-M&pr+;o}Wwl_YujbFiy!vv2wxrA-fL$3^3yA4noVDv%SP7M|=Zl7YVLV)3 zG{>2<`GJdOL3K?zeX5@1GB2mO;tb`QM~AiZ0(^OfN>#0F-qp^X%gdZ)UMvQV>*3wxO5OU+MaMujeFhA)nl2v>rz%@M zu`%B4x{RZw;@#?<(s2tza?@yg_=B|Erheg;B!PK4_2PNkg z6Kx)Dk2-hzk66bdx0pX38E(b6KtDDY6B-{MTgCgbdv-a&RR2e;xKlK${pvyOu$nE6 zZqMMeRZ7DH_h2@@yx&*KFQ=#nKovvb-YDDH*GBNEwQpLTDVnt72{Y(7#2hvzKV|KF zbX1*=Y~7f^C%m~joWUh?u&4LZaB+&_l%|=vejI12%^uE^86K3|5A&z%+M<5&@=|+FKVF`e z5B1(lXN=}CPqT66CcVhrTu;i)hv)Lq69n<3|5Si|xG{4*WvJeu0YKWQpJKUN6hj-e zPO~?B#IjD6rz@;wY@W_el<5)8A{(?zMRdi9_s36 z3_1&iL$vh3hgtzEQ1|+0n49vDzPoP@YyGp+PJ7rKsiVO|`3#*8$4+%xId`)b8l}v6 zD*wf;J`Y_5MzC^pH<@V&h%|H059Z-Rc5<6GuV0Q4YkfRyUk?syU`7XHtdRT2C}bYZ z4ekBucxI}{R*6k&tK6eeV(&4%s6E#P#Rog{q@Anx>J1hn&t*^1kLSdkrBAR*ay6Si zs12(V<2GxRFV1S!W~E)XYWce-c9!|&ta@L&pEu5r%jXM}pX|5#CkF@FT6?ZN6w+6d z!)eX9xiyB1Quz)w6vy2xxHSuB-x$xHE6>{b=}Tvkze3fPed?aK=2+mw zIy8^^nph)pgwJi95y@A*_++_LyKN2%Vh2oK zhuu}twI=q9+2VJo;QQFIN7D(r-AwV1%s#gKp|NYS6IjpuF*McNgldwJh1Oo)kFgDz zV0P%(ba7elP_%F9UH8+CM=Sw=MdR-OYUr0KHO~&z%YP_<2>j^vKYD5Sd|)|4Yw9j= zoVdQSr=ov=cdS{ z(si6}cVgji_AW4fAAC?8DLw1kFGpwQWQb-S0}S|^uaVt7KTN~&Zf^{UE?(yoxUzVA zr5SQrLr4#Q5J~1HeRIr?nGFX8EI%oW7Z=4dXJSunhsj^dK|EuaAb(S5jIENyIHc`fun({yo2-?DpsA=p{5 zjRsv7u8$1+8ir6vr8Ih0CGB+8{ zi(icSXv}R^P_85n(VjFW!R<&J+54vv0hmZHS7UO9=aaO3GIgB?C_8^W`{IRl?E#W| zp-m9CHeNkOG=md}Z%fa7$D7ElSz*Qz`&Y*b8P9u%vl)EqU+2? z9lW8<;YvzP3y6@AgpWOYJ2I5`2W}6R(5;8CBr>XudNc&Laa^#Lo`bbs%E8viOAn5z zJA4EgQMtFKQ}~h$HulXKq&Flc9{#fnVK=@A;;{-Nm)o`k zzhE!;qlAGS2?dCglQe@DcBa=ZiK50H=%z<$K66Q7vV0Tzw#{9=flG_w4+*7b5j?X* z@Z(#Fq|Hg&Ua>RYp%RjjQ329Lkh;)WSff;@d@NQVtq zj5(D11F`um*j9u?I5lx7+t0uq^k-m>u@ZvsUAk6#hL({})&+Ar8LBfQ9yZRnc842p zw#y?5H-d|^lZpq7yQ8bH3gqA_5!_aDaa*pk5^wh2WLuu4ACeS(zhA)CWM#J*l8MN8 z$Gv`etOLs}kM`uWo&A2bR5yP+}rpq<5)OWk5am& z=q^3&axi)6#k_E%s;m)4;J8fzH)C6$XX7$f-~wmt5MZAc|OUT^@s=XAl$u{Wk`URoxTI5VNQtmJ~{4 zM9dG<-`&et;31a63qdHM%|alA0;R;O+YFwh)QJA3$aImqZMm~EQU~+GQQJK}Yq}Zt zx^w!d&XWjH*#ACuI!KIhhP{Ik1Y{4%BNDFE&w-_T@4axarJXhXm=+41{KAvo(~-y~P}Q|xnz z@sxZD%0|k1N82`ID^yjFa3wY;i5YQ{m(|lt6*IE-3?=wa=(Rv7^nTdO`CJ$uA~&=& z`P^VcTfOWT?Ss>K8OzLfu^fh3AGZ_aeq_xNTn;5e!$D_-9&G&+1M7Ql{-B6KLg;Jxnmg9S^7*ml9SZe;h=i1(S#Ae6Fh%#PWK_*Hin znB$IZ7;z{2XrJP}Vac=DcGvcGtzJS4e4tgc6bINS&=Rr=pe1s$<-nThK0norl2XXm z&-(+TIY>YMl|Ta$MeBF51-u#hlTi5(Ew;#H1uT+mte&_=i!Cx)!8z!XOCunK8rK>Z zjlVH*`#&XYnW%1Y9^+MSh-^3#YQvH<9HWYFH2rh;=yc*Ue=*eX{lywlJ}m+pq-R?W z`{)Na?ABx2i~zDj&z?#?Ws1A^njKS#~GFq?vRi*K8Wrl_L!g*bnt zh;|pjU%;0nge6q%|ISz?O!rbVl(8TOGpQPn;7N|0e{aSrQ5BO4G$TfTJBslV@19HT z@<0;FSo!XUWNRrgEf3@OW~>rl1R;{7zj0HsBzeiy^$9@(RxQl>`{36!94b9w$qDdt3>Y5F<%WC@Ch(32obyQPPdQ ztS;rHJP8mWmCkB=c`7?1&a`@(hIJ|7oCTRPDr}PPLb}COg(tq7!%ZHwDq$n)iV3 zr_;iYd!h^r2$GFNVvVjhZ(#{p-!dyfj7Dex@Y;KsqylTO3DI)DG=&f7nmg;eQyyK? zJvOj>O34AnsqFP zl|HN|Z{53P=SouI?N?l5L_ z0m>3vO43FOt9{ETKB>pM9~3Qkpv>CwED;O|6&kb9jCXoPqfm`FJ7Te)H6JUq0zabgAzEPPe-U`KXFEA z)PhR5NxY53wii3UjxNi`RRH-)CQ=BI5*A?1Tu0E1R3w43+rTK&=)5zCu~f}QbulrVKy5eWy5ykC=YG%~tQ>5O^mGf3`LVq}*E&(dPZ|nH z(6U0cJ~vT=0SV$#@us0GI{zp8*SvZ=X;n;Lj6N)qO0MlFaikH?0$&EGUl<1>j}-=wMIgT zUf~C5$|qw^A|?cXQKu9_lZT*GtbOs>m{2I(w88+<(#2#Fg(1|Gc_?k$j7VnFxjkKz zN*uj6B;=E|%2U^0g_$ObPM0NqzDw34Q8(g~Wqw{%i0l8?qC#nu>G9}<5CH1`u^Alz z3Wo_372uHgZF!g|(N?AfZ`rKd5rp&e`EWK^%Tr}$kimVg5_5%Uy=*vtEfTm^XD7=3 z^{f!?6*)UOnxs!)z4r49Y*^9#t7_ERWS6?Y%DlB~W-l#SU?ZF`N#`*UBI~D96q=zx z*tB|IF5v|U38HK6tTRXSI}}pe5@!y}%MGxQU3dcRg!d|A4Pm2Q%6_n$=b5hM8O67| zd3iCzme|a0&Du!pa}+1Co^h7x#iu6hE#;OiAro8WZN;G#tcVj|g4Wf;dCa+rUUC=E zJW(cvRg%Dbr=6?BXXJXfgxHIS6DBu)Pk%9SeRAXp33n_1o;bTCE_Gi-Lh_l^Jv~Q@ zJ2ZK?D~*{fpAC0yfzPy6keeoUFGMg+9B_Sz8$)dcJb5fs9(me4|M@s9ANcWs%r#37;drX+=5gy3J5j0#&u z&`5L62&UFgMq~9FJBy5zSCoWur`hNmnzuX}ej6PX68;nFKLwyma`qkI7j9FNn1SG) z?Gm!GUGy>1Jj-vUwLXlDt`@eFtpgKF0^>_*?leRuJ|kDpC8VB8L;#V7E`mavVTh?n zw32*wlJG6hejcmUzlwv>!O%T64<7gH?wxg+FdO5GAQ?F63YH7-obo1j(hW=l{j8Jj z_ZMUC0sD2(VJ3^V+hRkIC|zZT8INJ%*6~IXC3x9<{&wNEn!&mbLE23CT!IH=a@jpY zS}`Z$p0A$wX4Nd3iUhYKlJnB-WFuWUcYz2es$RTavh7;t)H-!Lmb-&dfy9U80`oPL z&*a0kfSZX55D|_@+m>Veeci~EtaJ4_#}+rgD_mmw9rff{9T6ssSN8IL!*37c1t_z6 z6=tV-bAtDZS7eM&d+YN^D6jj=ss(3UCCYmc_8!WIS$tyq6RyrnNcvV;1FXs>daMZf z*ViBFQ2n*63FXmZeC{lw`!qhC9o?*f!nhIP+rudU%KXK zVz#HYGulDOe;sa?P=tWk8`)gA%uyJC&CvYFDp$n%cZB69%3+*ptcc~a%5$&pFHqhy z0XeVj@25;aD6H(;12szdbE>gk$}by(*FipP41TU_@Eyh=8?isxsFS_3wm@K*#KL@A z(1{y^OJ{1v*OcD&$w;q*&+_&_*)ww4uvbcUbu;!r54#^JYJ0UK1|c)O%9rPz=SE4n zchmJ;TI(Is3zUTMs|JB_@>|eoScDjfH}DFV2-T3Aq3%)ONLUz%!)F6Y-s3U-@uq>{+P|YT%QdS5tzDNPhxi8 zb!MZE)e*FI-nXY#V{Eor>|*YkW8iClIvn5|!(Q*#PnJ8igb5S&G8Wue-YBbi>b4@r z#E%O|EY+VcE_Z36esnZ=8|^cfI23Uxh`s+$w&9`J7uvQee!9BJMsF{h`(o%Tx=@#4 zaP#`9^osXjWfw3hB?7ffwoKD+2-3KvIrsiyOI@=(;~$z)T4I>q&DZCvTL z+}U{@OqS3aayFE`Tpn3X+0ET>r)OH?lH_j7t!tvltrOBki4((k57P5IruEst6D2bk zB2ZAwJD=e<017Ic7`!u>paQDsI*Fkm*+=0$yl7&gI13E=MO-XZrR*|6GIhKmWmtnz zh%TDwx6`I;?kw;pMV7)|GVn4zLBtGpI<80u9d93~S z4dh?AACWj)RPeXl2qZ4PnIwQKF#=fR++U|rAT_$S`QQJ7wWSZq}&2Ju1EfrUgH z)w_E}Hr7FTeJG1UqHqv97p3>RK(!O4JWjR81H^}Sb?R8+GjdH{LJtJC0bEro7+5o- z7FK-6s)G_=db~2h)8VDt7y3jO)%?1@IIRFs!_OTDG@1ui*c{R3@35~tsp_$a+aEYnB??MdpM~TW|eWe`BENr64Sw7W2r$7(#ZRjkpgCy z>y+?%#5!+qApcYjas?6V*Q+bTv5Lf?1{a|vq<*W6K(ymcX8p5s^W+o?)c2S0BK6w^ zoKMujxTmPY`mC&b(WopRNkkvq9+as;OY~CS_Eu0%1P2C zcY$RO7G|sJKIhYe;%zsZyRD5=CkcYzm|Ej_$@64x4+rK5CC~^OO`-S~jV~%ieM1%cOoD)`~E~PMx7R$kVAc*JMW~YZ!>8 za=t9NtZD|`S@=e|Dp!l9o8_YHk7zHGR=f)=@O)vlr{<`KccCdFT7!~S?~;Nz_{nbR zzDT1&cNGaBnuDq3j?gNp$g1Im#C&vZGrs89@cF=Uh88OK{&@ST#L*>d05K~6p%mET zCH`U0%n#EPo7LyzNfX6B&N0+IoROWFEd+pndX9x>QkYO{O4o(xfXw#Ud&HN~G=)+X zeEzdNun|JXa>dHj!C!^W!W!XU%n-oa;RoPg7cyzN{y|-9+U~Po@Y9)3rads3xN6GS zTLl@P@LKu~d#j4cFN7tM+2`??j>EUMGwRyCnQOB4RJeUSlw3@M`36vm;slp}uu9Ir zaq&V%j;F)+U=Z144(#3tM+~ek`x#RX8}FhZHcy=~I~k@q*rQ&ZAG4nhwp`e~K2t%q z$-!^C180t}eY?}a3xS@ZVak+0rKhH2#~w{5IO2~?5q~h8C1xr!7_kz*LsjTIHtEGN zmX0quBRq?V-{EH#G=7dLLD=U#_&ds+C~zbO8RizY_bxmBc&m zgs*D9?gghmvOS!r42QtlKMAck7fip6u0` zY+iD+AxuRDmZ{_nk^f?ia(wG$d(!--#?JfPR89KM*b`}U2Ac!E#tk0>fWRDajT81N zWP^rI$7CjnDIq4pal1B$aluzeJ^uE71XCrfpm*rl8S^%a{sDoCR$BPEr%oN13>*yzxVR3L z#SHb2sVuDxOM4p)IVQefn4BfC zpN#wi+I_42;IY!eSq+p`uZnEaOjYkye*=5+r=z}$%;fKH&oGOL0n#vM z*Z_x+nGGQbil|KRM%%T(0!Ey}aCadJj`&Sw2+BOL=3r96DT8e|DK91C_{I$ZFDk?4 z*+iy1B_SqN;wv(+u^%&Fm2S^z-Gie1rYCPr(q0GFsT4_iR}0A7*d8qqFfD08HV|1! zwm8s9qR%`5NS~|$+=~vg2-j*my^&xeA#lWRC$o0jvLyc)6d+Iu>Dv4vBlF4b!F35= zlq*gOUS-#I8NnZ$z25}=?KTB#(Ew^Dy%ie3Lrt#ZAg~Y%G*QqBEgt&EPR9xdqxjyA zZT4IfVMgi4dWp6ML89N67y+jJR8 zsIagK$dP=0FA&BeUkAaRX-bFUeXPqH=TjXKw@@*y!Q0YvDM}{1F}6WOXK@78mh@(J z2kOP+1meJ{;|!)Y0>$!1u>29TBJwuVb)9+mu&y%@u{qxdjP?EOSq+dG@g}6hZtM;` zbAADXppz+X)e-?HcH1h2IEN-3j3^8Dy!&k71@HHKQ~X8J>wHBByxnwAEZQip^O2ZN z?6>}722D@Da=N2~$L_q_*G`o)z4!QVTPSAE6XN~2RfHA)GFjyEuLh4}PhsVylSvj+nU>=^i-Bk28jiJPDLyIhsFo7UWXZG2jO8U13q@ zl-C7^?HD|cCVycl(RTlp-i1XrfV-peYfVgthq=U~1ON!>i$Ax0tJq3Nve} zpEO#@*2+t{3487XlO~N}-R@fK)#H65vS}lMz^u#uKx~#KtQ1*b5-BCVpJkZ=Op)|4 z{E(SDv7f99o|DFT*f@sK1lRUx1>5D>Jt8U_YXL@_hX$RrR2p=j7s;BNp=9s&3_FmU zfw$yX#zs4wKjbMwX{3=Y>^nVYWDex9Uj3N8F0{+@3aSVY<4Bc-p<(o1hdhdDI__IW zaWp9AN`vm@SyS&+TBnQsN7tvC0e8??5ffF81VdB~wno${IHvBf^fT|LcW+In3*n<6 zW8pyKB+!-Sv+3Bwzc!i9?&YyE;d&Z3tW*j%Q@ouC*KTXkE>la_Gm&Fda9x(2QAiwx zz9zb^GS`lOW{&L{s}{i7gi9OkKTP)ReXnbo)B7*ybEoI=0Pi(?1PtiK#U7SXV}^zT z4^(O6^H8Si~L?DGzv@i_B_|zVibuvoxI_FHhY9{9r?eBF{EPgKO`XOnUb0kds3{%kU$`-n z5Kt1xEuZ*tcho!EPaCQ1O=)~~*VQ_++v+Ps(@$C>v>cJUUz}~~S{RkI-C&!EV;{$% z*l2GD+f2OsFJj4(Y?Ita()o>M-V@)0z{9tEhUL18u?5Zy#vD=6?=eZmNQ>_uuj2Q4 zDW+|y!GvEr;ku|PmktUnS2?zb;nI}qRT8I@dnQ<1T8S9Vr3v>2SzMw-h)j~Ccf1BV#S0LMCguz< zN*A%7qBL3Z+g3@~m{;h9rn$oy&O^Lj0PWr7dP8$6rsm7MO($1IcJB#XWeuT_-nRg* z(z!f))TZV0&QZlWy&5#NY*Kg?{t?e2u}FN|wa2LM*3euIb>xV{c$MwHiIg|r!FOfT zM4SXLBoZkC4_P3-H*A+E5j#Vq67T+tM2g&UF^;6?vR(`KP##6LIy1+E?a}LX5-G2t zlux9X7yH=`eLj&w{{z%P$PqpjQLObu_!4MTqA^UMQHiqln?^ww-usgf`15n;Ld#+x zxC=BYQ6l0riq-PUBPHPE!7a=!;ZgSst81YoiHBwj(rl)fJcbi& z@01P27=NV1!csdKi}f=J^LNw{<*{myxvM1>YMQF*gaBzo?PaP!+hnfbgWtDsg^P0Q z;9*fad2a0Yo@?py!~LzE5H_U=uvCA}g7<8iLe?B2fma;0ChVW}N)F`4=&%q?OmYmZ zrDu0ma{R6`Z%B?`v$^GxljJK@+HBH-A2W!Gj92E>v7e|EESMnUSAa=-zb0eeuh$$5 z@TcC30rjIoG89l&DKwzMmG~AUs1&Vwd(oN|_wzONugrY%_;OASXrwSu?ENnrepPj* zu|fD%Q}g2c$HT8HXm6NEW_|>bR~3>mA%|HCN|1c5As`y@m(vsirc3SulfNv~iy7zP zqHfhQ>GsX@QE{OqXhJX@WykpY>zckie^>T&BNxseZG?e6AneclFdug5SF$z(sT`y8dL|uRi!V-SzI~vpoY7AC(W@67siIXq=}S zcOip0iovW8arJDt#5SV~(nFWr1%ms!M1-pIDcIAn+$XzjO;Ws&lUH#jM6G|_O#>#5}l1!TNOK`6YX5UAqVKMsIYK2!Itfm&R*#hcv(6Q3o{u zLHi2qV5UGS;Qhr5DRYrpq{RF`9V5#`EcNyMLLuzDM8#sGy&Z*=uZ#2&hE5PIO5~G; z5fM7c43f=}N6}9Pe2Z!qp7Z0{rSqBlBjoa^pv{LCD5pC zPyQ!9g?oU$QK5sK1d2%b|cj_hxPz)#TqBUIzL&g zM?YL1eC7L-Ix=}XyhbTrOD1>7*5mMh^kllWiIbz#zsb6kPrUPwoL7!(V||TR4w;KK zZ0tH|JORJR0391FHzn2%i2u@Y$LJU@PRUBR@nhabN|Xq)lleWrXrDd8!UAXr#da#8 z=2K{1KboKwJi73CkINgu;4p|1Z$-zpip$I$w-dfG|6HlL)q1d}DSjtjC0R-cW9XW^ z%#oi%^uqdb%Pa5UJLrGuE$xt+qOtbFh&8+CPvmvt7bD1TPdZkF*4Qn+d7LD3q2oIC z1Px||h}k3FMn_Zr&PI!I7fXqFEw~gc?_i3TFD6t$$VF=~D$nxUZg<4wpG!6{ChwYm ziRB>BBiygsdb4wv2pGRpPwHXidMmbak*XEn`;<^Bu>y~5(zj5CVfM++?RQ=t)oe3& zbKq2F*;iUC(e$m^)MhI`><;gzVq&p)$tGmMATs}HFM!ej+anA+!yjK4<>e!{MCZv1 zpy82pI?0(MDEO99OsvcjfsnVnfTbh12ye?}Kx&$%#4i`QRW!a*DO>xr$-6V@Syr&k zgS){Q+3tNdER0C-eNsCwzR^?k&nCKGFXaUBz-nPwYl%;RPpo<89`h2?CW#YCoSX@u zZJQ}iQWX+kA@v(5`BYWn^mNUrRosP?c%tSd72rjx*%jA%oUsL~qE>a=(*n;J1W=8AK2k4L z@ELAW@*8`je0}%NT;-2~|sH1XUpJvJ1eQSREM`_@Mez`Ln@R ziI_}wZ{qCh%Dn{f5CsZIo#|*iBx9bCf=wYVEfnnoz8F1{!YxPK#Mm_o4)_~gA?aqU z_Z9?{6*xpYMWKm4QQ-i4S4op)`kVZ~?0J`v!mXmeIr8y@C}yH7iLJf@--uq42tP^x zE?{u!__5P%7TT?wdb!rKAMcFx74bGn1N_KeJn*-Jg$&7R!1aC!JrHON<<4ayfVfdO zW(AszT=-xtC<2M&mVF4Ngh{>`Ur~;Sua2*>A>zjm_{c<&ti)2~+ z36QMnc_IIV$=U3lsE;O@Tsd_Krr%sNNsS}C7^%3st4 zzwi=MRJi}gXh)L=@36qsT4Q(bk`k`?OMvlqk&;Z9o%?MnNfuWx{%V@!T_|1bn!6zX z<-U7l9a}X+J6WV3`sGx%*h!H8-7cqmUCEb_dzplULj#-PAVfMMQ=+zsStuc3))beFS<0vZq4_0db8W> zyT68g=K@U=a!>a2^K$~3Kulf~%g7TQ{kF&Q#=he`Ok(7Fi;L*Lp_oQhBDvv@*VISj zXd9genJ6tEpak174>IxYIRjiCaA-J$Ve^+Ol3XpaeRBB&OJ(7``Rhe}|0u?-N=%1; znNifqO?+n*si=e~#YRU_sb(IFUA1ms8RO!?p=(6-Ic zmOK?BZH|%Wsn>(JWQLxY)MpnMd7{?EEg%Z~I|GYWf!M(;P~vlb(N=P;*Tu^cLLk1a zS?I;ZcC2}|Td7w&T6unu{%f$v)H>7aNrk`K3i*i5QS+<+>^h=|*6WzJfsofqZq#yKjNdgto+ zWYN$E3B)aCuRn?Ol-~lc*0TOuP)%N=kWTZOozLQPU_DrKey{4?JE4yG3vX4yC;9u{ z1Acb8((5Q5M*Bp;=d5VgopV*C)*M3qv(ZS?>honk0`3zPFHV%b(g@+5Uw9Lhb`bd! zpZ1Hy8d!ol&2ZbN&G_g7`L(dsN$plTP3_!X)vw&qef~K8a-Q$snP=CD$S?WmKXIWK zK^6$U$nTQfY)XO1ZuYl&*@ZBbSmZx5N-SXu4QwVdA&)>fm-8fA@09q%s0 zwG)LuDL5ekm$IvKd=npbS>`CYOsF!GCmC$UV-gtq6AWeCG5;#ql8dD58Qx;NY=h^} z6)b+#UD|o~CadT7@!HvhK2*$VRy5&f<7{(HOo`Jtc{Nwg$Pzjt zfSmQ*%?R2@*t%IHkI;uLFB2bEO4sdH;rOU|+k{n3KTTtFAQJ>k+ag#9s2r5;LEoQfT8`06$iEN!x|$OXkB|iM{x&1|YIrtWN)`7)g1?JaAjyBkOZ|E^BCjM08G)QX zM>!z#A1+5sG6F$;VsJuk5}0tjn%`c55qKTk!$#osr1%m_@Y@IoGq=k|AhFA~psrH8 ziXX!L6O8~zoF(MnHv)ka|1sA_i+E$;XDlcua~YbA@;vI>_;bw=BPyt z>EAAdd=g>*$8!HK(tN{6@8$FP41%{%ehpQOp{QTf-IU9GKcZh=SzSUkT`IDS({AB> zqKK_8S`T`!=KUrs9x|t~dgv0!><#ZnN{~ENhZVq25}$WjZn0G$n~QW^@fVmQ#9MuM z{YL~?5+x!YSI1fsZR@p_fVX`@e&REJF`CXibxql9{Cu~HMGyDuj#g=wj<2$#MRsuW zP&_OpmJF>ba-#a2S#VwtYFV^|xk1$X*za$gRM{Ddb4Y|*4H|ZOCr1(ST2b4BtM^d* zSE0~qnq@LkxlR8?=uI}WhipmkpJyG{2mLXAjY-3ydGEWxuM-tC&aZbiiJJI)U!>Wn zjxfT7oSQKLB94=yo(l^P8Fs8VCUHboA53TA>|4Ab)*p-a+6r=@d88wjz-=i@t9z&P zt7Gy@%pV9@nU6Dh*(SUmE(zO&yQALOe%eT7Z%X5{yRO!m-Bwdv$v@)uF^BKKa)uV( zDDoRy#rR{rw@5eE2m7(+&(XTxorV3l&-=4re_0<_;4WZaqv}@yy_?1TNL!^;G@iHR zS=8(OOykUYn4aG(4i7S}aolVFwFX~+fFE^s(c%|lxrM1D;MXGMIe8F1n3Cn)i{*g- zbwCdTf3sE|UJW0+#awMvm|0W(q|y2rz@MQR7D5v@Fp11x@tZD5`bf5B7l1!e34ajZ z|01>5^XQ1JXhtrb$z_bZY6zPsh8!**b}M-ey*4y0myHCvR~JyvMLYUOTB>b1)GOm= z@A0l$SE|#RJ?|~NO|e1%rvseaumZ7(%es$H&!7 zc-jcdX|E137IW5A67*FjeTw%FS^&^vsemD zp%ICk-+w)yJHL)K#w*^7_{c-^!zHKg?ca!_OV$9@%Wu9?_5%4~Sg*PRHN!|JB0=2V z@T@|rksV?8kONk@MG*3 zv&BC15OBQNqj$}O4oz)mG_u-L@niNx-l1dDMQHeqhy0=?f}u(4Ve2ElZ3Zh4>kjGZ zmRlU_U^boYkE~Lqr9Zw@YZuxph5FuvOuH4rDu1iZPV@Gqv&Hs*M|a!7f$zXtK~*-6bHudeuf3u z6+Y8|OC;TUVLTpKDHdr;4eZGjr}EczPk7QHmdmxFHw-fsJSBg`vDxY1?o-}s+-#R- z4ZU6Llqs&Jsp(=Y-jBb8ydtei@Ag{epHLjY6e~iI|3S& zJL55H2(I*DwKSz;we60@UMNgIf2;U=ZcqF8$Hf2A8^@yaZMM1XK+oB4r+qdi-5G#Q zQ$(L}#T+`b(R2@6*yZrH+kLD3P&5bTsLc)szOch>c7h3-n&2OPW$$DqcCa(Ut5ynU zHQL8d!M^Ydw)}HBU4Nr=pJ=a$&FtoJ^`PC|t5Ec5HT^zU3)NyY=RKCAul+FRiBA(mz=GoxY}S8rd9(- zF)*IHCU{(t4M=yur_1z#*%pK_Lj7LFXBmgT2)U_f2R))kQpl6bFMCe0r+Ov!V4QNcQF;F|A29vox1hxZ>zy;X81QNJHkfCNr;(h1o{Y!$FCpeKMQA6yK z-yRK&j4^Lx2D=3PVHEv>@mWDggdgG$ySS}v!fhqql^(t+b1=2skvX-BFrpptvVm>y z;GcJU8+1z&B?g1f$KM>xm~Fy0m1ux4`aQ>DX5X{#UDtuDLL|avG|{62f3^oUd;=_1 ztaNM_FMGiJQ%({Jodt{=Tdz^aYO}D9*ug0S{*@>O&gD9T0i!vLD>)wX@QiyvfWXYy z@4d~$A8^O)Atdif*z%7WaPq1=!dGP4Ap2BPX3EK~*R3vdfzrX23%l2+P03b$YLYX> zNOaf}D?&_5XwvjY25-OgN2Ul^r|;Or4tJ;U67eji&Al(noJ{8ysO<-}H*w&XH6G-| zM<7%vs;tpedK=d0uC8wfH_LyF9`4z&; z8jUINAxJ9aw#|?ub0GSXvEO>S;qavLz-a?C811!36YzQdVfq*E{`^;?asev-TdGOi zymuknq{Pu&tyB{e+C8a`7qX@UsSeO|j3Cj3!#nU}&O9&|FcSQ1uW3k< zza{h>&~9y5sKPaSD%Qo|iv6BcMN@6xkCh@kCOKFcCRG5$_H2N$6F_(Anxl!?p4tur zMbERB7O!O6_&_os75Im3o=I;^9oMQbVu4K;R@Xwrk&9!&Z8ImjJ)L>KbpV(`20WSp zX28yj$PK%&$>J3qm|b>e79{abFB)74VSG(|e$xg}5p4qitJ2~T@96@q_MPMid=GCB zHR+NrWSK6+*9lSJ6!6#`E$c9w+5^S~cr-1n0~C+r5^Ikbybf3tmc&;Cx!8qjOhM*| zMX{Z(-Rtpdcv9|nzs5ecdK)`Z!~uhovRm*D56=3VZ*15!gjuwoINUvT5VgUQIv7k! zFFB1C0>&gRsIK$m-?aefqac>;No2sg@taCu{ex2m+i+4oNhgqJ!CaKtgau_u$|*`+ zwFX`+T{cYY$IMhnx97C(VQqe!h>g=F&f$aL9Euh`M3=VDL{KDCQi^;a!IG$POCV`N z%WN~umUxR7UGX9#1m%dbIK2_fLm>G=(eT^JtlhRO9xL(WeCF|dPrsyV^NWnkC%Y$@ zd_b1C9t8<%Wo-5=-2ZPQ@vTNe+g;A23e}brLJt%oAtne1feE*#8thZxk2aWqPq2;r z*06F6E%+czhx+g!@Gn;}Yvjy&EE_7ak-@bkh2Tey(Z4Qglo0#$!<}<++Til9yUnfH zbjm%U78G{Kwbgtw?Ex#V_^nQxcgMq=i>eM~%0+RXt%+Qk_cil8=RBs>`{ql!UnyQ5 z6cUm>xj>)=?Pu-0_aG==s<3hm@E`dK%qAhJ!{&rM;7PDBCQIU=O+_GH%`hY=fxj z#Rejey%|yilhA=v$65SGpORbg(!SE5>(txeE^Co8qsLUgj%8;O(Y^;&qqaEqx@56#K0h z6gj~lZhNWIoljlu^t#tSac&-G$Mx==`+S)I*f_U29*1Bz0*FbGY^g#?E=EFrwPRXF zm$lsuM=-G`+cvCL7kfZEtihQx;ZafyW~`8u7oAE6c*#%7kj4(Dy3>{emg5!4u}6?! zB(c6|=>4_vj}G%eFcDK|RVtdh57umufJ~(&k!3sXPi6d;P-3E7;C-=ICb443MbsQe z-}Wv8URIU=Sq#?v-gdvo8KI!zq-ctSp=wc)ZLUilM@t29?k9_=rVTH>vejIPdH zNA#D9>O#Zly$*R4{d&CZvD6|IEft!v7GRBCo6aZW^;;qk>9V&3U)xL#ab$VJY_uuS z>ZkZcX88FAi9~hj3Sx3@);hy4G6BzjU+=p*GBu}LjZN^2o}R4r=T6Uk`mLPbm#8xF zdVom!Bx2n+);sWBWv8m1DBdHqmpBh_2^bJ=+wb{(sOf~ak@P2F9%-VSiK)dA2I<$S zBG?-dG|3tG6=|dv@f~)VM8=COVxzq+B$C853M$Kk$C4zH{6ezK-|qubWH+S35vBd) zJT>&Zz?x zk4SE}KQ)W4xiq<@Bo4)M-v$G5^m08I5``q8{(w(TO3BkXVvri27aWVHMuTUcXu`nS zw}>zdi>!nL_peVm_U=;Vc58^TtJH0cL?LGgeU!8$G0MJu0T>ks%Rn}Sx)rL)ePhl} z1et$vI;D~`=ZgeElq?by;gOMZ3xjgBBwI)(BICU+gvyuS)iJ8bwA>`!PDqWUiHMOo z*aAjHA$C79B?jEa=whf%7C(5ptYq1|sr1&;aAXao@i2|-ysn9QfxT)qgVZcprsIfjfUB%RI)q$2C-y_(H96XXetYo~;ZPB6aZ&90IOJ;g2q;Q!zR!iYqM^Jrfz zr?Avc#$t|hn9QRJC!fvf=B}1gs0y)qlHM$dl+69;AesAZVbKjO&nqDp_XXi1&`cqG z=;^0M`CL?OL5d#GCxUn{G!KgmmP|3 z2C#$NRy)))Eh;o#YrBs9gee2O313hj?d`%Dq`hC0GVj;xjSi?n zZeLvvRw0c?2O>7&a~?#(QWpv1@x#cqMvgyOh#2s%o?XWYeI!J>v*Aio9mzxm^OT~( zi8>Ts+Xn+7745AuQW*!8WKKq^w0=sBrRa>DNW7E8d3U)PMy-jMD=}({FYhv?re~6b zj@dRj!3@%^KbxEiNprJ*XP#-bAW`j*rpPFX<}Rn6nRR546B3IE25n2I)ED6>0==DY zVsPt4KH?J&DCQ}KGEGKDW;zM6QlIq_B7A?WR7c zk3MDfWuBWO3%*6e|AA2X*61;b>gx13;<98ZSRs#Of*z9uY|%LGP(is5IcpooOj?M_ zJL5=Xaf`+=9>Mestz2V1>YxsmPo3oL?rk~y#9xg9#~IN8^oZ}|F*hnpkF+96>D6rkkui9UcGyrj=J>uX!K@x z{p)zm_RxGl7sF83))MkrTb;wA#z&jUVd4@}_Vc-0G?0R>NGcsu++SxPvlI_`XCRTj_ukSL4I~AJ-q6U;Wo&)N zSvbi}?&GQ|6>A0)Uf6URrV8A{#h0jqD?81K=Y$8`q<^_ppc&Jcn|ieD7bXFmq5+f(_e6MjUk z+ijrl3dOL5Uw}51<1W!o&T{y zpZ8JvH~3Dy@%(I?h*Y(~p zu~09Zl*-#&eD5pp`XLwytY^QmQb?tm1RsEfA3_qjlK>o#pT`aUQn@Q-50&yE8m=pb z_`U=U_cKu*pra)O<*AahR^C&rm1|Sb_lI%qEX8<)oNr>ny6?mi-2a>j>-w9ifn8wP z1QF|pc(80eNAtOaC~8Iqk6d{kWfN93lkVC$+mHqER>vl94Vp?U&6m!}N@%Jb?1 z_D+2ikA+(hg1Myw@VU7`+D#&H6{|I_cWzQkH5Typ6i@*f*T!AwcrsrNW!ME^MFmZKHV6zYY>JmL} zK8N1#M%bx_<6Wvw;Pu1oK_)_*HGg8u`fNemJ)mkZy5{aef6`2vN>J*z1JM~DJ~o2? zn5rwR<#*se$(;}Xk(AIb2HOQy$a1KAS{7@h$rD9% zq;ERRqLng2Vu|pEeF6Tqol)rL~5gfq;OC*B?6t~&hDh?pp?z(Oh@1g#IQcCE`{|} zoeu#3UdxV&zvRWoZPCY^h#v;?S~j~Up=uuU5W?w!w6>Q`$6%Kvd-XVPD0^s$>i-80 z5V;>@kc6hwP3$bpQ~AH-s-wPaYMTQz9TI4dPdkv{O%qyd1niYO=HJL-k=m%AkU{}l z`0_$XNg#I-?=!1U`3888MzvvXpGFPQlChs#1c#XSfm#1D;HUk*CaXsLcXJ3r_TTjs z1WEW|7UXvZVfehl<%r0*?UYR*>{vhgtKbKUq8n(^mDlq|WKsu!Ilq_BXY(0N)v|yH zVHXIPzkkknMz|$%C#Map792ovq`DICY8fE*%wIw={MW&4GqJvu8u1q~EnRR55|*WD zrG|OYNMDrJx?FDxt+qoXL{n%TiO26~)rs7xdU(x5T@X1Ac-?$-)MvL%p@W?b~ zOZy|=y$T(=sBuCo!TyD1k8I`)*e|H-V`z zB$0~Vy+uvGZWyI@927W^8|2Wo%?N9P{iMP{lGvrO_*DZCDHYNDRVL|@OPlO(hyQr0 z`1c~D9*Y`2AJEdUn(_?i9}tp?E<&oQRL3T1i7y_qnnY)XY=KKaiIUYv+F6_gJU5h9 z&E@@AOb{ty{y|W4&%Q;|suXHp^Gb#922p-!x|JqK5wrDWm!NI+XsXd7hru-?Ciw;pTq8LfswJrM#l|9I6+ z*fhLXkLd|zLe%Ho5ILdt`|vI__lMDCbf4MNG2w~+i{!5~^ugRq)6}f>LB6VIjlE39 z&#q$fot#Ef4IW*kn^Y*xMK`pxJs?KE)`%EPrf5hQ7&NirbMY#=+gL;_b_La-h}7q< z@X3hScY7x^om+O>HxRTY%wr&h&mP`+eOeg8F<*dJiHG2hBHf4(pd2j3e2t(2J^1na z%=cq;A@4(=K(_ZGaAi#aJ{$^Q5?}e_?Uj&(5Uw!QMGd$@;i0W=8o0SUmkxt~JXboS z=F(VV7p1i_P;08rcdKk~PN7Ty;q>?Ww9vF@I6J6fQT}Yq+HGqx*^)kF8ywZVj#1T+ zGFLRk@at85dzHx|due3yYDUYY(~+u@Ef`gSOd*BENGq~o_*^`f;2QIT!eE`n3Kjyr zKLgejreJQ3Zz=>+_Pd7#Ck&Yme2GRqK8F22jjU!fd(;uY7fldHe<@$WnbpT6jBsI< zrsA?#6x#n!2q4|S(uDNe8C5*p7vN)5qqZg+hpFD13QM306s9j^^u)zKOlsbyGakv0 zQ+*-uh%kE>CsEtQ{2K-M)_~Wb*B-nw0Qc|}SNj@ZtA0~maYFRb@~HoBz-GCSxUhX(NZl;HZl)iNF?cS7A(Ks=9#~M!;`>7v71~ZM5)CW1NC<9uk(N@qz$y ztzpK5vN&oZ@qQ4+M{)myUW$bo<5%!s(dVx4$uJ|mzJwd1FsE-`=#gp6mbNY5&cx%X z!n1+dW)*j*ZpU)*Z*exAIwO22Jel^uYz?-#)go1q{R$Oxv~sVIO6s*sGP#qKeVwU8 z^f&SNbd#qJbKV5|*JJ4k0TF){BhY~iKV9Gewo!>v5Icr;rvq!E z7vWaeFWjn}LbtDxUZIG++h%#(T0Lgz5a=F^Ef-MckkTiOKNoRE&>z9 z|7j3Rh)aTxIu7q;5*)4`f(=4k|C$V~SK>c?I|K_yP=esLYnfB)HOOV+v>g*weAw7b z#a_F!5?kIf}unsS>kBuI_O zOkQ822+$kDWoS2n`TM9Z2>K60{dANBYqUZGX~61HKiVcy`#Ece(zI0>_02(hHURLS zd0o>lU2`-s+f&;aB@pi|vI2x68?gdtxEG1Sdpf=545>&uMXvoLTBlRhgCvUHEB!M0 zhY{dh9ln5P1JVXHtO{Z!EE2;EI#o4Bt5JOJkEQU)fQYjpK)ZxR`6bI+RK*CBCr!(y z(b-reh}MVUX`1BC#u##i>k7P}Ywm9FB%Ucnn8U;HP8`JJO0_*ip5`pCAHvbJj(ScA ziP&r(D?MyIenR-1G6E|EaEZo8qAhG;!6iV~6aEC^{o`peb?YIxTRlxqz;;91%TpIY zy72DeY&=^jM@aaZa3{`|)Kw=&41En6q)}>6<{<%@h#|icISX5V{M~LQ=Ss zagw#=Cn-$gGh_ojr@bJ@QVbbnOMr8e2iuM13d%o5k>3x6h_u2F!+79rSig|@Nuv-f z5)oWI(5I1nmII);ZiK(@EXGqS0ExqJT;FEWOsKGaP-j^$a?`&9(^KeFEel?XrZ(>~ zsv{P`pGguqRGOKcg@v-G%4}*6CNb%o^vyBLM$d+Wy4|$~Hcvs1E!Q4eJlnlL5Syhi zMzQUTrf5pWvf(_B-F5~8b3CzGQI!|?aIN;to!C#-1vcP0*|7w|y}}$gYGOlTfkdF#Ag92oVna@W=O|ZB0`&d0vNQ`P zBo6EyN@1{gg@Qcvjyvr;J!fPN86rvDEag|_kraa~ z4+h?t_?R{Qv* zv>57djoOoFuTAaIY1n)EchsKHVT;tBLYT7JZ!3JSeH?cfzT-jlm_9DM3Og@A@LlcP z7gu4A)Hg`&{sY&2orS<3u1Fwe^TXWm41tjFh%}XoEeVxY?}2Bi)Xl#pQDC~}?t0)N zlpyinzBxjruE=Cfwz>$xAlQhSM)Z(&MkA{|6@|tC6K>*`XUd4#r8Cs)W6fm;Ld>Y- zl!R;-gQ%2$mgMWJz)o2zf0jj)dB=M!RIS6Z705(>1tJ5q-lEc*lY%T`s zGvRC0t|A_i7Vnr(i zUU2AJKy9qPE8`(AE9qkIlS;ZiR^Juj(^3!T;ACIm(?1NH^O0p6G@YU{1eB`>XRJRI z(o9@4yQhc%3SD+*@i`yQ2Y6)$M1U`>$C)*mZZ%f>%D#TAR`#+=MnqkRr-~HlX0SS9 zCsM*pks$6ONv0g~3bEQJ$$LI4W;EGH+gHHVQ*=2KA=JZz6`TP_Bqk?xAq4NzW*WaA zhRoSmjDVDqBy;u19H-4Ii%T#<4nw})g}w68ca|no^SS09bhEK;9;!}hNC8#al2`a- zdy(&+U6`j(bKrE~jgGw;CKHUT>lrmq-KA6~Q_Ag_W$0t#`b`=LEh?tMZD$4SZN{Xb z3r>h({e-{|tw$LVuEuo1%O8TQc{ylJRSaj%gJbHBGZxnC-kMGq4X;{)H3~q?M`}Yr z^9I?3a~2H}VgGmLpOCS{Y(okmF=NSA-lFfX*h@Z5Mauhg=jUT}bnjYJGL-LHR5HC^ zx2PW$cZRr|@1jjT{6jn`3~Q6IGn#Bk(<1UL){kHrvioG_^l1F-`zviw;u28Ih6x@B$A*#Zcqki1OmR|26xy>OXC#sj@i#dKGMc)tpe`JJQI7a)k| z@@OFvy5{ZzSv;@y8^~C6E?SNS&RQ&aIPfx1!Bv(N$@TP4ab_hRGSo3O_E=Q10d`m~S zI8MMwWLFJ@meT2jo`Pep*}tQ!MZCE!uhGgbGKKv^`*1Wq zo*W-E^2hg&_o*b8Dm&m^@Ubh~^Jd?BTP9 zf3O38v!41XF`b|76rJ=n`Ym1Lcs7{YW417h(zCnMw&`|QMTaQvz)}3B5DW9}B7A2p zmrf%c*pEHHY`|_{U`{5m95_QVE|U|Lhs* z+~4^5=%%9&Jg{jCJJqD`j4_)ZpZb78P3c%|n>Am+csTeAZxw&fZS-5fmO0zxzw|wP zx$LuX=-MuO8wy*R0H<)Q35K7|FW2+96}G4CfReHEPrV<^2J8)sUMGqaZJT&kWgUv*jL&=D_r>g9e7| ze(aGwwegWXGr!6N30ZvRufn?*S|mt2s2qcd3x_u}U3^hN1J><}Q;9u|&p*i**_@~7X4lh25iYe)~-#7}#d+*O%{JG2Z zNerehaBY5LY#`bDjtn)uChy7TeY?#haPG_o>|V_t8jIjxanIgwUmI5T>gWX1KEJOi z8kb0?Yq2kXWEHViH9oO(TjmIwicizN$=<*mOK#vFE=+tY`xPE7F3IdA71&S2D_!1}|U8e-N+-5IU-)F%W@$HfqIHfQQdJ%&)wHi2zb%dF_CQ6@* z3_rR9-Uz0Tl~mBI1}mwAdW^gpRgO7>ABoi__kc*Tg{FC6R# zcSVy{Xz0xWx+aa#^SsC;SiEq+*B>9b!wuHfCQ1zkhK-Hnv8x>Kuq|wyu$mIKbzNtO ze>_aW7Z58K{dBP9!tV9Khxw*t zWSg2ab(1vOQ-{!x-gUMI+i(^&M}Dx`@9F2 zH8^pUiS9?evyVw=($Z0}N_6i|B$dun{4}IHqHKT^Mi>T6Oh$+!-;_aS; zB@!k+nbv%BfSH20VBcB_L_zyaZc~p?|@1% z7(_A?+EXQBB{8Dy!OD1SGRLF}fcV;?FWBq(J5sZ2wv7)Y15$y1*ye#}W9qn8g%JyE zy0E&IYk6*U!EG}~q74_C2|?R|vnyo4bDY5p*qITKVXMt>f42j(%g)SLhT`!{|%-K@peNB>wgMT3(*X9Wfj4!kPc9=fJ>~1U$MzSB));C zuhf`=h)}`QwR=5&4NuDbmK^Mc&mP8KU>i=#V{L&vpNi$*XA_F}F%6E$Sx`(xSjbZ#Y5t}j*H1%@#bRs^#As+~^Bx#Z4fYLH~1X-djUU0<=j1ZC| z$l~-yunvLX3q6AzPgtnl;-L~x%x50WCl*ArVmzfAnNM~Pz9@buU6iX)3XumSJ6OOgX6#eoq@E-s*#b{h&JnT1 zkI)eAIB;bfA%CqY*2tOlSRyJ&@p18Qzn)-GY9kyk5z6?#(x9Aw*mlGijV5QsuC#3vDS3jJ8*mA2NX1x5P$~|JeDXt z6(+$H;tQ!BzCP{C}(bYgxgocFzE+l!uXKvT&45??Ku;Er_ALX99h~Cd8Rrl`%@1cmR!? zEjbvw0}^;bAu_5aPa@YYmZh@*F9zvS)&uP1XTiHJ0l4j{T0X ztKdl#cEyB_C~j_F*flemmvhaDem)j)?})^P zA`*W449NhgDsh_-0}~MREetGIncUsnI+F{d{xT~JQpN7LmjER(EC&fHxGt~F;x)5& z8+8U!Q>t*CmOq~&I!_rtV*8euiH8F3$YealoAk`)f&}N|-x#>Fk_v#HyNJ$vj+-7~ zf8T9Z1&m>M^zQUKVN!nBBoB>bnM`M%Hjp5%eqM)0^OfnE25q2gZqb|$UbN*p2qNg^ zKSU8SRGt5!f-V#~_K%UI9E6VHdpow-b4}EV^B;>JbZyp2j&1qtU;I!1)<5_M|G__~ z?H4Ye|I@$!my7@L^#A_X|K|Ta`e*-S|L@v=_uu?Gwc>yI-~XfXfBqkp{z>Pb{_n-| zzyH78{?q!u_qYG=?7#X)=llP#{BK)-{;&V;Km2bG|Jncb@}K-a|MNfpSO55=_aFYp z|El!Q|FhKp@Gt)L-~Z!(^{@Ynzt8=f|K6ze|Fw8s;RBrA5|1f6tNH# zP{eK75~?DobVWf0q$G=8MMM&cO78*!DqtrT1Ox<<6#_vBNG~cXNKpt?KxGR^@4eh- zdER@+Is5(x-p_ZO5AHE=$0V#Z*E4^0ssyy}SSNCQ1=n)_QQfh6>lUNX6EPZp{o$3@ zH*7W!Mc#+BWrgNiX|5z;6g& zZPzm2>h}lz?^pZxLipdS_TQHB|E{%vO$yZ}u1XoZ>LxldMcixjAL_BIKbC$)AM+S| z9;4{><-vZd3EQ*$gFo!de^ZV%KbSuxZdv3zsGq3L z6MfkB_R@TXSh~^FVB13X>2Ut$H@qr46JxkaC~3Lnx3^0iRlzl{nw|DLokhwHo>)M!R{&?c}_t^RIUv-mR(at7!b{_99 zURrQ|{rJt;mSqRa)_ba1fj_&dq9p^?%hEm0njxAY}a6f&LXk7&( zU(!n7{P<!BTdP7n&sA8|FM_D*xuD>r#y~3udJ~2EPiEx#L7xBv$g0p-3(r#JrFj?L48BlN(ngaq!at~G zagm`NzqnDY+8ga?xzkxUkacvgBYc;g+VVI72CO6znJji{*(*u&JfrI8$CW-2&!AQg zZ*Ok7-%bn4MG=Pg8TW;WMxT=8_`-`7k3&lvvb8MORc8iQn z*+qCPi0nO51FHQu{%Lri4$zoTZ= zA2VmR<>%-?PDcyR(XX2`s8;5)s&lxn^#sGI_JE}YC&Gq-vqPG4vzrb!)$1x)`z6OW zn@yX7y4XHLa2Ef zju(+!+L$E5<2BiD?0jD+^)x32XEtGm>^Yzl`&Dd9B~_x&`sE;Tzs+VN^a2ro8&xHp zPJktJSgv;__Jq}OhbHOtu6ma|_W`nFYxV?7CVAqZCt^g)+=o}}bI{|yh2up6(QkTt zMopayZC_EESn*3cNg8R!ndM4|_Uz)^kdJ~na<_tH{p;^I-yeZVWgW0)W(shR@dk!8 z-9Rd9-Y58fPLqF4{LM_&=YdHr>@?GyYB64qffiesDkBvidblcoRzCLmd7&OxIlYFe z7Pe`kMDkdUev~hnC`d9Q`y*S_kGcfiMw4&3cGl4iBP3 zcoZSZGRt>o8u}CNA#9t8UXId^NP8vp-lzL}!_t#Z-P$UAFwKNr5qz1O>Ya|;WmgkB zz)4%Rc2k!7K#P|r{lzu-Cl&*O&#eXXI&N+IyCvJPRgp!qLRT133>n5D(a-M6h|g?a zw=A9&kqB2~0Xba*J;%MK4?%{pX|qI2* ze{<)+8DwG#2BHSa(t3CxGRzwXPZ>Q9kCJ2JyNw7JNlmm`eF)>1G)coq*8x6KPlJrksdhy_inCd~2f*D(z2PXb2g2+5Pj`OiE{Fq#)LZVJs%~T!j z@I1!o)vFTI457B>I8T+x?l=*WL^$B4d~x#)LJ#spsLq?@hr0EAJ;(iAK6UU95%2!O|Xi(+d?D9im*~) z1ElL;ExEq3Xg51ND&Hg{^o|JYkzeo{9xa4!5^eH}ARb|_g!2gF-93m;6-22difPEp z5ju;cn#w-n*iwJ)vE)E@OCpzbNUD6|;ba&ox026ARjg|AX!m-*N_)*82+mf(O!YJO za8)E@x~djaQ_j0s z2kDRpvoT#yk2=S4+ZhpF5E(=sWVq_7%==Y^wO(0kxRXu7LJ5cPJ9}qq<7;)le|>$m zQ!%UF4JUx_|K)H7QCkylUN0k#7j*A$`kYeN!gr7GVnb-qS@XnR&6pZmiLSNT?D#LG z%N&2UyTHLGB-^C&>5)#R|HABI<|O(;$7X49VK9N99r8qQ)R6tM`rXD|@N^yzrnt5L zL(@z2z4N3YQARAd0;x)ILkY6$#PJ9Ep6fC50sI6|)(bu7Mr8;S;seGu{Y@E*yJ{7X zN;7sgV){*FC$f%l@A$fBcy~$TS2v3N{!MTG#eH96KrN)@;JALPKARFr=`rDcA*%oK z=IbNJj_Pp&;mL8j^zp&|20GsvLQh?81U%@At?aSxnxiokx{L_kn{b7MbSG;^D{hRS zT=tKVp`&Mb*j@|2QsR8g8!ZF;-VTs87~k~z);YEb*3G}ayZb0RxbP>{G@)>D`1_l7 zvMk_$&*!(Srs6a+Z7aLF{gO2wOIq}O&Xi3jsB_3imHQ%{wxIloZBq3{p0fVeimTLO zM7`VG8sBwaOFOYF@t)qk&g?90y@7umSKY%^ ztvOn|RJsoa>EyPKEzjfWeVj4_roX@+uG|e%krS(_rr8c7y&CNOku5C~aVzKp^p<3F zE3wx!gTCZ$ad}+badsMGdSV&VBgsvK4Oi3AO=^OS8qLK z<<;!|{_P*Wj>x?i-0Q@*jrUn!{lhEG+PGFz4X5U8J^t{*eV12qRjyv}Hrn}z2hlKR zMc_})f`9X_KfG|g$@P-MCyIsn!dZF<SMuJJI^XHu}L^}tN$7B>wZdorexT= zcc12pzfReP{am^Hqw*LL=?}DxA|MVx)+c{HwlsNl@#Bxe=6JO*497DK(=A4dx&!>I z2U^%n1Ez^V?zNwlvpoPsn{DnYUFra&ep*SRFV&(j4`G_fep%SA;M|(+$OJ-fka9le z%ox+MxSj73zogl8Lc>Sx<-d$!oT|~PN*H)gxHKd0@6|8??A|G%Wi_)zmy|Qwc&Vwt zE3?hDPJ8ihSF`?tL)=uqxk)y_@ya~6KK`MpPa%JJ`yA};16QqWX)pAV0D;4OcHF*h zNn@ABU18afhhtq;nL6k*X5l-v_`YNjtj1fBO5{ zzV^cWC1tzn=M71k+tYiA_->8ee*a8eE;7r#HshAl?#+nYrOX@YTCfER$~}tB#8D9YrVT;JX-pjGaVaJjqg*_E8c;+ z(T2@l3QD3sz-VcE-o!&4##77FsR&*0A3SLJF z$Q(#08x7`FW?k(pZ{8g+|D6*fVUji6cO+*r-}RTinC^?~vQA%{;@T25c*PL((c1Fu z3h4y%;+Za?{Jyk&hmImYgCgIVGk9t^zXYbg%*j2IrCh2}9E*q)R%%JsditXX-RxMG z9GL_+`-_2%k5uu}Vm^=Hkq;6s|9tq4PeAz)D|BiKxZj-FXl;JuRB+(3!}A_%bs4`A zDoZwTW?PTY{LU9t$RG-s`Q6T6%B7D&y4<@EEjTa3gr<}Ochf0eJu-UZ1iWP zU3$?h%1Je@d-E26hH}fp6cV*d-j$`YG+!5dw2JQ2*TAIYe7zQ~VrXsL zqidDxK48MTy5{-u&LzL0!l_i<_>;n$2xmx5^xA>!R;Mv5+2n=L>`LT=X|k4pWn2*U zD7BUbuT^51Wjj2Twg2+=jX?-os$e)ModHsb6Kyg-M&50-ud60*Xzq)mj^fCTwQ<{J z()%wm77i-Lg36!}ntcNZyd|clxcAnJ1{9?kzO&7DADB0H101*NeFM`}<8Z`4VNZTy zt{+g@EZF6HjARu_0IoRT){b)V}ky72DyjPV0p0NbDYDNbBg($yj)cK^9Y z!`)*2^#!0$PKX@t6`;mTSmP6Vi$q>LmvelkK%13uJ;;g}EIcS}(DU@T%caUkq7Mx- zDh!9jw4WVW90P66mw?jZE$BG1iF|ngCpyu5bIaa> zb416>_}8MIL@R+hf37fM0-Jah9jaF%fe82_n_U_qJtnu9iSkqrEEo(NAtOVM8^ztop zVJB&ImORN@*@aHE}9KQ6cDak{E(q zU4!_lEKVmX&GsZFkKsG~=Nz3|(HU9NNDA)lyYTIExe>S>hy*>pLaWN}TM5SIP1xkq zq)R~KxzrGI>@&;=TBH)Ry$;>IpPUMd!`nj(HeDfD`Np2ee{Q+IlQ`Tt5J2VQfr>a&|vq* z17{z+Mb5`551e>deT&puZ*|aKdTR}d@{+XmDqvqgI&L)!shV|bt4Q{0?s(4S$BO2*mu@01@}|WHR&~YGT|+*I*~M|hnzt7JJgrxJD$W8 z=F+Ek@-+6OoMe(YsF&@f&EIw@de#OXW53ofk}gg6Yau1tn*%B293RAP3_^I_&j@+7&rsYBNNSG<$7VmsK+SP_Fr83Uq9~C3S_OO zZa;T*e)_6P`eC2Re*ai&-_Rfh?q}!&Qb>F#-1)1=yhbm^>6AV@Dapfa17K>T;^Uhz zUZ0Zf@~{{w3Lb-5k3@;ywKFV+x0j z9(Eb{7$VnDTSoQOjiHnA1igVh<72f8W}gcF)`=ar>)pkTWPTQ~cZMN1reYEvo8K0NzS7sP*Eo!BLfb+=b*_X#*X_9o`eY_`c|`VBR=3u}TRf+OUdOC)}y5lOed7 z+*>Ag@Ekhy*3;$es&~%8zV=r`z;S+;sWy++8|%0AV}9L>U)@#Fc86k`jZu;)08!O~ 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

}W6ylFZDY(s8LP1s?cD z2<~7X3~fYVVZHtc*+3)wHtu^5=Q#+l2-N@f?r%WyMB@Kf0_DC$_R4T)_oF@PoWi-UxxeKW&jF!| zPR)lIe$6m?A$r{Q`yMdMrVs^1sb%l$br6@}&P%?e2U5ca^kOo};D3;5|FJ;-!5;6{l07gSnd>CDnu|9p2A3qre~_}{cfq;p|3|_3 z5AtZD+dtHnI8z`r{(3pxdT^y!l|-opsO6_0IJtzv!Z@U21Y?9MiRTYWn9Q5!Nj|Dc ze%p3JtBPEm^2 zFREvEckeR`ov8EORCy(TO&3eD-SD10pl4o3el-;o_^)7-g%Tz+6 zUv*`ynmT-Othy561(GO^LGOWtQxXWBMUF#4gcL4IFc#)03if&)A^{|^M{nS{f= zh;%^yqt7@PAWAM9D3C}v(MPVdVKw|9zI($ooD9W?%_D&I=2PGxvew z)CRIXKyi*O@L?m!OL|fvy zDyhs1$;kM=G^I>Lzi2K^VzBD&N{r@HyKUPpC2-Kxq z?iK)HT7kf)HwtUd^O!gQnfjA0co(fEttzb;ASG{&t{6Az#mC9#48e$E6UiTo!gj+Y z*`Tvz9j}5>Mg^>brN!bPcXOha2_@33RLu+I(5)Y~;VDxiREORk0IBunz(WBAC5S(S zrSE|(ASaLZC@>~&Us8FGPr~g#9meH;fC*&E>nUC1*PGXR&YrG#%>#sqyWkOX=ZLl3 zncqTmXTq$b$F1TyOlefOA2JIZTI4}tQ#ktTzCw&L=(>lx8|;}NWD|NCItL2L%EV7& zV$xapwI8}tOMe9yA%jkVD&`Cf@ZC150fFZ6iwIT%?^l>+n>1^Pk4@pR0&Qk$DmMk5 z@k?j(*fI}jPmzdCgZ7n#ns<%qBC(MebWdVU%D@nYS5^-n8!5S+h48S~BZxW>acA>! zyRqPY;HTJzuG)f0i_8UNF>LahAa4G5H_<`Ff#WT+hs$;9@%AdjfFc+B`IRg*Sh|_O z@&99|A*^2Y8QpztFhVH(mip4LS@#XoMxFB7{Xa~~G#_Y+zY#j4m3{a;7RtmG7*~HZ z;5A>tD_N9)%N6$Sm#Lo)wIDPnq}2li1rd;!Y z9o$L5y$`G@Rc3nsuAXWAFO}8MO;>Gs0R%l*w1$Zefq{4NLn!;?&S_ z!+RD^fMI(F4Z^vv(DZ79AVvMq>0?c`b^BxO#8o@PkTW<)a4IoxAy^Ur%E&Zck?Phz zp$PLh%qPu!*@)L5Tn^DDbj~IS{Uc{xf}45xq)WpQgjykFveNUu;E?9d@$70Nw3<8% z>rO5fO+yif3JeY>c!rNUar){*W)8=*IQc~HZ__QXLg~o=zEN1S0hDs`BZv+F#^8J& zl@E~dZGUCzTs$>1f`?ncD(1ljbGLTh-rIyuHF%Kz-EL0IW1byajru?uA|EZhd>?fx zHCZ8yCR+@A0)W1J#-U#iCqxOm;95dqNN^9>H|K7UQ-q#lo9``%roj;e$j=R?rKPac zA(y16-heVkX3&{b$_1^!Q@^uQ42j}D3W@(;`EeLn!`m0G87LGLfTaqLyqcU~!?|kEg-X1^v@aoWJ`JH2l1%P*1Ef%$-Qk6-Ge;bitv}iT5HRx-v{XDCB=su6t<%>r}WC-*2%ijBcl)b-;pTG1oLvHk$#;peo z9p8tOq-WN(X!LRgka#UK(o09|h;jV#Ww;gh&*BbnRPL-p3?cEes^V9GRpXh}DuNIC z3M8%P`YWyHROgX$e&#mOlU4b&plRL8M9AWk72)}~==YJEABZ+2fN5+7N9$g`Kk&#s z{N5cF9eJiB@161~k165fBPsvgtZt=5=wm0+>SbxMv^-?FLz`*+;n;Q0P8g5Q2D|l4 z??IhND>*LRO!c_=Z{<$PqP6;8M$t~_p7mFf>S~Ro zSphDDKfP-E;zxgOeX{|vM>i0Ic?=5@5Z4Y!bFgMG7v%;8k{F-Rjb$@LC*i*S=A8K1J;fL9i-X#n>W{x9Tlzw;-`)%?H4Od1|I4Cp z=#@*_2naFI&7np1eY|HlrOzG>M}Vnl=xgWh;WyNLdoQj7UXYWL2xWZz2ZVK<#HgNJ zLxD5boGv^*I9z9Z{@4d-sBi=4Ri(xcvI!(VItNY=^8R!pj*pQkn=Q3XL-GjYWNqc6 z)Ryhp=g*)NMp*aGeJX#X)tp0fd_cV8OTf4Ku2KWkM0;8-nM8|b0g4X->;_KSvg z4TAaPPMd&TsW-e!Iyk(imeP%Ve#j!14iW;yQDO_||0j2zbU00H68ER0^_X!Gv?^>( z5O$8(lrI7H0?*O~scZ!!&ZEi?IX>QUw!f&TTYp?)0gh12&pdU)lR(`<Pf}womcX2|PnLQh%A)5pncH@<}8Sg!Fw9sxA_*6m|{{mDjfk`)XGe z{NVp3F&fu|Qo#l+FOck%ux7qLpRYp_hFK&8H^_Oz^p_088U&aaxqG&duAZ#@>1yr- zCcTS38;kMdo5)Ck9h4E4S6>zHoV?pTbQ=g`Am>uBhP19bTbHZvU>(oJG0mPdff-D+`jaM)b4cPN$0fJuv@O5Z1?hoj4!{ z+U6Ug=8+3;O028u-jI0lbBu7jrM~+x7>V?OK4iNYY7Bxd_wS;g$XUOmzDa)n zgs;zpI&zV`6W(y0LLzt@5e@x>q`tex_vR4vaM5M~fdQexgW>>^-3~)}Fo?N71UD(} zx_jJ8^6ZF#rNR^kI4?rH&fiurm&a$leF|yFVScu7C37<$R3`j%w^=TH3u;Bg3^2Fi zI8MH`7v6{OmHsp7z)4SXbEx8E35iP4pAI~}SNL2Xg#q)M{Ao%H6suu@84rxTdW3X< zw_ps)>O>RY_cCbWAB{s7;5}yLJylB7hBS$}RZH-%Kc|*=mz7$}rnRy=YUKQ}#{5eA zj04NN_dOlB7xCeP1JIxjTA~-+I(;Y zTwK(X78*jRsDsAfQmujv_V%oHH9AY&ZCc&N0o_(oHJn_#IV{ni%zMDC7b0IJfLc8t zcZB$mp0SS10j$>+d9vN=)|exL6ZhI)uzwQeb7sG5Nq;$I39Z? z4HI!&Ic=Q?!{CDNNqPGBz5D(2U#JjItjW%(UF`M|CT5o-hDiIBY3a@^m@4)*z8pIs z$|{Y+dm!9`D||pionHKg&T#NqL!+=rVU#Qx{W1)!eh9^e3eY_C-ATqe-!uw}R7&lv z>Bh2>Q-}xSWGcY{I0g#mR>Z<^6dZ@LPTz`4-hH1{ZrqU$Y)?+Y%O0A1&wg$-D0YOe z4&JQ?M-twR}R3m&7!7ZSxX3VH%)8^aw|F)}eJ&=T}JdYyV*mK1d&2_F)G%E{JPwVhTBj=(V= z`f9Gls9djmD5KO`$f$T9hiZ_e`}OJ6%i>F0hD(*8>hVsayE6`8QVusFXjZQ6G}zH* zp5ZK$M2I?)dgRbEO^W+A=q z+qWg(ktcVA-IK&?iIKiCzK{cG>!NGa;G{lpTs0O7sfIzXupjsq))<@>W&CLSh4RW* zx*0M3Raf?!w4hqEt0U-*e#mM|E$~iKSlOL!jpnghDy21jj=l#dDsaapx%YCxOmg4x zKwUM1CSQ^r6r;7Fdan-%h@@%bj3YD#;EpqN`p)XZb?XlO(->vl``jmf($kj&`^W?# zrYdP7{;PpUpH2r`$UF@udVP;aWS9%oGa@~OETI~=e$p>lu~BO?4C*QB5ns$afN{YZ zhTV(PnJ8?q0QD{6vpK3;=Rltchkf#d#UkozLl_+tA-b%ecf*3qQx(FH`O+x?M^VR? zlfPdgyGZPHcUC09CRkZKo#?GErNI49dnohZdvDs9u99vVq@Pm23w~1`3fPivS6r~3 zJONktGgj)krI#O1qHb^pB)#Hd6B8&wmBG-@Y7#xWI!f{*QSM$Ugx542C<0zJr7=)j z(ds;;0c5bqKHU53q;{5?93sWK5#Sn< z)}_(x1dE{T@Kk!xSY`YVX-Z_TGmiv_)QKz-ekTqHwiPT<6!%(2hGDl#vEr$HC%z~W z!0#C0{n`*`6@%Tm=>N`AcIm#z9@EVkJT85Y-4$BFRK=r}4*0QI${2#m)L@3iYI*-- zY{y_UB<|A6Vf^D7ry6b_FAQs>WMSnF(|%prSR{fYl~+hx-rJK9duk<2I@3NA&g@GhmD5(=`p&dsrbR;|~e6e+y;L{q7c7qk8_P4e=5aRK9l9*Gm9#anNf zc0Vx&^z5!~k38>~^&!&U^jO={-*jF3l*V{rz?V_qy=%rnA||WjuWozc$xN;IH_gA#gK`Gjkt4Ul`y=LFBb_SiX`R!ggAr}#l^_8PUXMW3ybZ&I)A zqP_Su7pBdl#@YxQhS`w~kieK9vWb0u?GG+MUU~iPWzL?TM>gHJ!&jyUF!RZPEL)6) zY8+t^7WE-+qq=bRweNNP#&pS&`8^L|^Jp#6_VvJ306KP)=|^}~o|8TINfbKo{>F6Z zOa)60hQXJ+KgE${bi}|jM6yBEdVV^$NF-JwbyHqNceJWM!rC_gv^J&YG*KI0yAPW% zwDubV&2cHxaQEdQ%eQEr?!a zN_x6BTzsQHvV$^Ov*sgzBs}i@F%GXZ_ER#?QKaP^gzZ;(DlMX;37siVQItv1&e0bu zcvuRbFM8MGV$9!*uRZzkmdK#6~73JjXANyG^_Haty;(r2o&$ z1>QX0bkI6vbF-UKyOy$|H-gjTQwCMg3pY}O+?F4v>v@kR;CegWirzS?OKI?;Z)^U_ zL%(aP79H`zO%iKqa^r@pX^tcPK^cB~IWair?b%MTInEfrJykQ+230>A6RFX39sQt$ zLmlrFM2qw^WOO_%IIQ%CjRYqNb}lhlubFc%+Zlei={Qp2;NaPy_<3E{$l&AyanJnX z#(Q(I;(@%!;t#dC)1(}~n<0t6z#`*h{_Nmx$-#2Ty}55VMn`ZU!e87z@#0|9`U+4T z-ILFG)G8*=tY1&g@mDsQPZ3*^dU5moc3#ddJG*|Y9Q@D&swVT-juWfxEIs=nx2>LA zOR*+hHJP!@F!!yDQFUNp{YGeG7k;qMRr6%G+$CuvgAbwCCCQZoP;^+Lwuh%=jqY`( z<_q8jwU4B;V_v)(C%N&>Bm=GAs3BS&%koHk?R4U9?bKms-?REOS|=~d$4geEh&c|P z+B|J`GWQCM&se^5^@7oSV}S)1MGo2P3hiwmJyv|ZU-3GZzO6!guYpSQ>`?a8+49SP z#J@}|GwQ!lZbz#OS^@H7?^wvCpJm{BnKrl6%r)5;b_~f}XLq#yp9z$7$`-iiHl#5! zcXfz+%uhNqDoa106VBY?nX%mc8n^7Ak`2+Yf}W7_sSj(#LtO7+e49oUNkDyP_$DsM z>Sox*e$IYMIQ&RkQ*(yNCqTabWG%bn@(t-_3G<~h0;9*e7{goLdo@UH{CFpHqScKf zE9|1hW$$JPZC(&xDk*=jk!lbhan356i5FkTIK{`+RMg=#mrcyP-E|x5`OG`c1NipwZyF9-do*gm?pTCU9Te=$j-ceQ(N?| z`x|9Z-!R0k{5HDb(y|thd5cX*JF-np3X&Pg zqo3)U&9!)ixWy9n56_)v?^$=Rde64k>2=(6sBC<0{7&_A{4t)ZBzQy(swgYt@>m6< zXsdXGHT^VP464^wM4!9M)>0y`;9$dg-7Ch>9^bf;H@CLwWn{IJ@2`u>IFlZfQ0EDJ zEPz>OPL%vOv!OO1!Jz-3YsNq#Axkc{lwI!36*a5)n_1eaI>`g;@rC_r_4gX-IIQGC zx){+m%mFxgqkBQr^+G{3PQJv<*3+D^@F=R$x)JEtj=nQ&k&R90Ief+DOG(x1d`BvY zyIk7Y-7k2zwjq~&^)$aiJHLo^`^82>Z^U)qtNQnB)U2|*eSE5&Y53kKEO|^A5Apdt z(G(r?-zZKlS63UoDmmY&;T!kVGmzkwBs#F`1R9UPwO(gvAzG^S{G*HAHxsNMZ#Zas zbMDBza8>qU(lf0lTgVKYjGxTd5YqEZRdrQ8KZi%rBC2w3o$Yh>rYmuqzM*+(`Ooah z3`X`SWu1HJNskRS5*lMp#Vq#f_P37pvQT7jrF|nKR<~ivVG5D4VO1rVKC+&H@r_8) zNsso9w%eA77MBV!Q5i7v%&^E^^|&MVBJm^3m5TE2ubpxN!z+s8TD7*W_qVZG?TOF5 z>~~aDvqlxDJVp+?+BnZ2crK*lK5?_O&%mu-hv{PJ!N)`_d`u5H?#v%8<)7p#DWZHS%BHcw3##U9mMu#(u+YI@G-TrSS zEl+nW+|u7wi_c!ZM_pfZJg#igEvI60FxpoBpb7=E2+1RPBTj0oHQhsas`WH-{6EjY z*DU?`YQtpU%{8$#Z_A9mQvSO+S7+UlgjhT#gEGnvbW6^a=VM|#vTKFmIFaSfY*Y;3 z->f*8e(>OWT{+`d-B@x4pJpwxt!yEs8eA{_*YW{2jAg>LXDpbRu;2sa+)1cw6eRzONnL{N!oI^t#zghMMa7>Ujs%^#m)vm6tVKkEyUe zM(NS_TRqk6a}GI`ABjCU@WZc7jzf{d#bLd3<=m3((AS67?>|x%8_dLsUz2#4j?t6Q z?^szfv3%FxQ9D0&c|yV5O_)uDM1ZcoXj=AM4wa%&W^n?t<;zWMOiJ}5*)ujCF-hKf zMHQQKTOYZ3S4TW$a@12hcB13AIIK$V*7uuUTiOsYoI1Ro=BK|U_hR6Vb8A6wKWPqj ziVdUxS$-m0Ao>1@9^<~f2hnSc*q9)Vn}l>^XhJw-6j&D81N#A!ox^%<68E6^-r6^Y z3b7Bd*YPE|FyGqnGKExvY=%y8dHBXG5zHNfD3`N*&yINI<&&}vtoD|pjgi4uEeK~- z_ABZ~h>o&8JBU5X<@2S5;pf-`A+4Nc2@%!S(sMkQ(!Nx%VEAY|VuCW*9Zk9nBkFbB zI`r$h2XcB-ofyG`XR7SZRUS;~^J-p4J2H2tfiyV|)6%{>W#>9S;!!@#L8o=xqI{I5 z7~#6}?y=yT7VXkL7MYxU_BG}z*ftSbv5)$NFzeSXLAhnN4*kgClK%I$3F&t;Iv(50 z-OCW*8J2lQgeFo8vQZvn#>idm>W`DomQ_r3oz*NV$`QJ83$Mh{u>P=n?15ejD+!-9 zZqK!Gi>8Q<@mJneIlT*Mo#b83zGQxJhyJ~z6-C#F0X!xTU z(kyBu&2s(EG|S{}#+5z5b}D_@^z*Gh-=*C^r!E}=G1FX`bh8ubvqcrBy)+3v4kmqK zzS>mmMx|cqVJB}~D{rpXHLi!^EKU(A{DH1FTW%&^RgECW@&sNvMwG6CvI@Z+3K0#m zA>tq2rsOtgo(yX}qE_-U5dTQt&Z4U2)snVDftOxH$_Au9`Vk+3=7hUh8ighgKoKxM zJdGD*(=EUALk@1~IVS#$(!48H#>4HqKjsr~2|yUpG4EHGQXy4St?zH|c1snck~U(+ z$c@um(aDCD)ey+uRj+YxVPXsYjH1JFEOBF3~jDnhXoy4-wf+SDc=}znpu=xX^*e_pfxG{T&)a z6yLwSIFwcyar3M3=ENlab=-UgA-Go}>!hx_$n~e?~yloz$yU#lWO!xLWgvuRE zXIeJ>%>>SVcO&OpnmY25$zKWk^p2$M)R=CA#El(;iOs!RZTS7!mlMMx?Ik-(yj6|H z1icwRACeG8x5O|2Y>dtIA=_m0vK32luaauXnPd^Wukxb(t4fE9G(?9-eEFlAHhVr_ zpZe0~H!d}J;K;GwcB%Z8&7oV@Zhp!Ze>&j=0xhZCYDxF3u(xI>47PtL9cH|Ue}L@z zOxj}c=eUULmIJMu9tD#Anxg*A6JbwS18{lSQ{&bwpOladu@)A?WXiI?!-H`#4|&+F z#PTartJlYUYvj6*pwGxLuWffWxEI?#9or#&Phn+lS}*2bT~biKqvTPnEz01wV9xi^ z&}<&>k%`2f$>(h^qvyJxYc*Be|v;;U-$5p$7f%cqQi|g96$GbK~jBaS$T+TMl^=?ftZ6Gi^-|>WU^-#P?9zpP^ zk)cR|H^p<8eB0<^77>yjcz(1tO+PJ%6%R2zjo{mtibgaY1vD1%CAhUjVGb)_m98Ub z1@d1zzy84f&R3-n+S0j)QL`K`$>l(2STOOwwYkqR{9!arKyG`&| zB=to)lXSFb8}{D`E$tuinZ?>whtq$LYyamy>|Ku%IN4H^H%&b=!u;1!>t>d|XLCG; zG%^s!{zfQ&R?a9>p+abaogc$PY#Q%jtw+?Z@GEYVvy)?4O0F)bF{`jlh;uG6Yw;1Z zy7-C&_;*Hba)epS>30hC7&3CCsta@_qWf5gd?l{Bb?qg-hON8g&)Cf&Y8g=BU3&S% z;EtPJ1j>DU10|?9C6K%wVZh!^CKt@)>*Hzg;~j*~Yk| zOGQZi8J5eqlE7nlY-PAnQuvbS2K9r>ehqdf7K|PklhebpH|X>DdM=vSMjY-@n@gRx zRJ&&*rWX9)uS()Mx&4q2nc+b>AiEC5GNBggY0O@?9`#l~^2Ym^^spOFmy_uV>3@(k z2}+Hhe&B&=!URXu>rr5*f5Zsf674B+57FQlW^gSg@08X7?;+D9K(R*5L4N+wi zBlwP)Zvr1h-u<0Qw*8q(u5u_;VkkdtH;?BuA*|5G%Cf?a@WBY*yAzL@T#h%1VK37( z9H=ik;i9ja{43MpS*7}F0{ba{*x@MzmES+27O?|qDu`J>4A=RVerJ~>tz;d`aQ zd6Dl#)6d|Zv;Bo9ikU@V!Gm*kwigFW-yf&XjO$i-SBnK42di}{gv}X!SlB|{_cl>m zZtp{v1`}AqdCnr=QJYC?LYgpXw$i zpoC8}DDTouM-a;PD+0?O`L~0x`aYgMbG5)}QJBs1vgPNq(@F`Ag%2{`%es8JX}!b3 zDunT6HD^as9+MwhI$R zO**!(ZI%3Q6RG(dsJz_&_FSV*8tY2;Y&7_3xk!HVMCad6lt*wHcl9nNf@o&=@$B5)2MJX7uOIULAOA(E^shksw~!JzPV{A{ zE1AB&J6XS*p9e|s#4=~e&?@9#-X*L#iDvpeF153_w^tpXoW(~Q!&!qnp+W55o(kbx zx8T%&Z2Mkg;3q9 zgzxXw0I3{E2>u9#umhgX{mTxx-SJ?TfC9Ul7wxQ~Vx(Hn$)LM-Fz__- zL#udBr^eP3zn?j~9|r&9nXY&L=VuNTIwYPEQP-^a@MJ#nP}>uelNV^vFtpu>lAN5I z?f1j0{`H0b7Q2rs1;AU5kpFti5F}BUdz>mo#4ZEJUPUXNj3`F=*HuW&vVRqRinRat z@bQ-7Q*oMBTc(*+ zl>_~c_TbS$!?O>zAW_S^oL!9k0U7uMd?uWl@O~}A8A?Pks&$6)+huSURIpY_KKdO@ z>y-9`>2B7>KLRyvM{#C@xXcwAe!NSf!x<6wmm2K!+Kkt%zc0>49sgHxG4cfIIfh2heioSP&U2MRbyXFV-^k-0OOe%qTX*AP)ZV&AXv^p#Ldb-RuKU|aA{07vz51?st zuub&9dO+*CZ{Ym*Pj@_FBGVvf@#ffPplNIivrs&`zkRwxR#v;Sbgc|50Y3y0Q{{oZ z7Ezl$(Si3Yx&+*YkF%#9*cUZ8>$TA>SqJxAjT5+TEaU=$Msp;zD$6aVoo` zfx#2+eo8z`in$L*tc=xiJIW0X|32l%_CpABsZ@>{ITo3)lVAK^Os4+pZPJrCAZtHK z%J6{+ppJJAi{L6(YCeRBB~MuHZO84*8`ipB_S@Z>*#IK)FpRezomb<)yr`JxHT7NZ zOT^s*5|26OXIP5qhL2aCI!#+!oH+rkohpgl?-Ltsmb*ot=Bj|<{$Nu>baYZaEhxi! z3d~MM7fi%WNZR&(&PbJgx=ku(j9EsyrFP~uyW0-pn|Q z&X*sY#XrEzo~14&rc$6+8TtBFFTpPG1f!#KL+79kbrZJOQjG3}LjRu=OeamXCh~yP z+plA!>I%b-U%#7p;!sd1wYSx=d@Cm3doCkx7<^&us(sdrq;^*$MPM9mB~ad$qLdh2 zmcX3EuM+eQORz^bFL}ZTtnlVZTNSO{iU7mmh8UJ%(9bLk6+e$Sajsj;b8(g+y{7-1 zTAm~j@xjoOJ5GW(#2Xs$!@!Nd+;qY%oT}u;h>McjF@(o=p_$R6SNo)cj#JYEhJ|ej zuunEWaD~MRew4cDm3W)Q57%l-lXn(v-#KgnTxD8$&2sH-fL z|FUu69&Ne{_h_s;;6>2%{&k(Cs{|ZsJ8dUyF#S6hm5JQXMeTO9eFxGaPQJN7sXisk zaS#R}%}ge<$ESaSb((7!c;zzT*rh;QTH0^YhIo1yR_M|BQwEzlmByOGVZLB8=J~;? z;81Q*qMzq%%KZvQRbL6OFBj=SEkl)l`0!!R`RwPzx|$L;q!^s^Ye55Z5B(b!t@rdk zz}k+rNVar0G2U#4Fqx`JLCykUisiy9KqMK4Rnb!q-`Jy8a^Vv zc#$s;cl*&RUWXr*A9vobO3Wm$wsp_~UBfn+kmU#Vd$g_7uKx4e{CiOO z>)W(FFki?kwDRd5?bq|SHtO$nbtxi$9EP$kJD>3f7oa{mAV8Y#SIlMkeD|*p#&4Ca zex6u?0UTTkK|=PLSlDJMzoc9Bf(7p#?Rfvz^q6BkHTR=qbMuNq+ftDUXHSLq*!yUV zttq%@Jh&Hh;zL^}A2B1Q3Zt8Sn=%I(tm&O!rR=~iCu|zLnii3Oi+Poso9i|)qgt=3 zJROu#BpVx;ohTC<=m)K1F+clUATkcawAb0~7@Xc#-(6aZ!P0UV5S3u|E;cAO zedn!!pOvX&;a#d2F{K@Koid;pcn;e=e@Cqt9bqDB<7$5dnN>zr);e;O*7rpQPH!Vq zzEH@{?Y?zh|IdNS8-M=@$NnmhnFZ0?i?cVatJTHpyG3=PuiZ!TtgWn6$X<~0DnmH^ zAW@9^?>vijKO<6BYgRVO`I+4sJpb@}bXAXEwh{HpwGLDzbrmn)YX>UHA7#A1kZc6ge? z>2$S>rsIO%MdYt!2jvLyaS+EwaZ~V>XH~OsFszr#XYN|My7;y0ZR;C{Qx=uWO)bTr#b1N3;6nF=cP>W<7hMw_KAs>RbGLl4sBKt$rD{URgo9bX z-|(`EXBj7^)HcItcS^wDZduJZ#pIi>r`bDEb-wkDuWyR2Qpm_U0`!f@?*dk$;!~x;D;FRH|_Woh>z8eVvZ}( zVR`BJT5dG6-1j0@duKcpFGgnLuIdA}U6}>#%g~Y_$Oy`9oz78zQ6!~*+mJ50wMuU~ z*E&x~p>!{OGJQ9{$ zz=KAhqL$u-c*hd}6`$=F+%P784n_FtH#Wds-YSv3z|ca^q`bLXfFKkpM8}6#Rf*UY zf1hB^KenSrbIHoGhbpBh_|DuAQomn>;-H-IxcX5=MP$ik&h7hyl%10tyX;)wB7vYZ zI36b89CorI3%Q(~7eSD?b!cfgD=%jwzITCLq||l_O^W%n@u_zNv~A0yh6O3?S=-U4 z5!t+O8=74sajq2-d| zNawi0q0AxTv{C#`yf1X`eCa~kxbPG~ku(g$p*FGU_~=h9Ryj}S$yiGj3}!K$@6$cd z4Ln_4#}P^!oe+la#yc%aY&0%5Oj7Zl^c+Dm4wJ|tA^lAMSJlxx6}W#{WE0al559L( zi7Cu#SBSl!&olh^NNnfQ$J*MRofZEZ5VKJp=%ZG2Jwn29#{qDtAmP^usoh)q623df z5|!yho#6xca_6q^hR9n02P zQ~BY>7LvUo=6c`HBdUd$QpKu1O`gH`H%txAeKYY2<`CI!KM2uXngc3%<8#|coy14$ z8-6ITAE0XNY=AWNexHDR|FG#$VQaYL#fkJN0CeLuIdp*#U8?%b_l7uFH<}N*+VtFK z6eMj!GSSSZ&i2Tkt`|Ce>M9umtv151;(Hl@0ILQkw~x`G^Qr!Zr*vm3p8zaP6sZHc z#f{nz{T)i8B@J}iUVE8j>iH6yxldPOUP(?vWBiPKK(srxN#4e&Q+{cG5t0Ed-OQ8l z1-Y0v1hpN<&Sx_H;38QGVvwabWKt!>RGhEW)t3&#Pk>PlzvfR!_N$fn7r=XsW2YF-&sH%>yha zlSm&YdraqDv`oKkB;ASzuM>IM(R&7g2N|W}_72vnn*#6bz{GvVnOeQq3n9lp07pDx{NnOJ z8`-h^3y03VW4-!xa@YV&8&f4;!yNPGpjpfV|27VU{nj!14#B-(Iad1K*49?akA1T- z!Z+3NW~-3mX@pnlfd-fz*+e2AEb&Pu`bYxIte{AUh@!E^`gzTNVpFmQ0eSb-18%=Z zqVpeM>|t-us)+7#8AK(PIAldUg@>H7Id;{DUpy&uLEAJ`z4L4hCAFuMOl$iVZRw!3bQNU=|D(qF1Ump_hJB2%B9OxX|NoY(S{nB+?;4 zbm$i)@g;Q+Ajo@2z&SjkMA!!b?Y0SD5d|tq15|B|VG?UMJiwk{uy+J(JUu?w8y=4= zllEP^&l5-A3+C_mclDCY?2cbKJo1&_fEmb9=Lwz9MlMf&J-?vyxOz<6IX)Bj`qLju zLcmVv@oF$C*d6{H4*tHy6YIQS(SBN&&bLLqE_!-SO|k}oDOcsSuNCv>)}@*d-fcN$ zsAGA>nw~p@r;md~QNFX_nrf{5iJKHR9?e}Fr-1s-dHBF1mR%U8{7-BpI#js!s`13h z-a5%kau=z#hx1+9?lvvIukUg^e1n7ceyIfiy(o(gJbZ;_4fBVBeao)Aj(KpfDlsdN z^Og+UUS8@j615OAtvOHzu|EjZQrw~>+8`Hp!U9^7AaSsxO#4U6r{&m{4DMw+#8)yv zz$WJS0e{~KW29m+0IzI2D6Che5Y(h#W#j^xI1HVtZ78b8)`zaZq}OAUTDNaPJW&CZ zJ8#j->0*;26PXK=RjNY^(Cd`eVb$eQYU?<^o^kyi$1ITm5wkG{X_r-Um21*+u*@!8 z6lEdD<$Q$?evM9U2OUHkYjvK3mh?}K(}7Kyh$+$}wvq7?ckUfykxZ`B_qOCf5^!70 z^xr5wKV^m_hsP1(Cq~%l+fR%zoyv|DZj8Y^>$v!%5%ZJ*&rg?mcG`mu=i+g~4sj5P zZoQv__Fh>QrwQK(WsIOmrdQg>8Kzsb;N(^=0VIocZL2svF-dv5nK-o;^E z(gaqZvrP4LSNpBAjH0cOqiaUy zJFIU@ws@zAvN7gdPU$rM98?mnUv)dDg3AbI2SBYcahb6|E5|UqAnV=O`Tab@hJ4Z) z2UIroJ>1egvlNDL*50FS*Fqc{5kTx7i!YWNqd%5|NHBD69r>~3i(UMxo{->$tZ;@ofWY|D(b0MJ%d@8*IunoM7 z^r&^&0DoKD$4KrdDfRXj3U9~5D`~)CS7_JY_sVs~7VwT26qtx8&ayQy29$R6L*M2y z;J5FUAdb?Zj;Gj(I&P=29ef2+6m7r^dix$m#FQqDxMeMQfW@o3(r-_1-7!Nq6Sj*i z+|fLx09=&Ka6M67S5eUBbabfn#aF5t-&oX*E{n#t^~IrbIMG~9oUEuK$XauZ1yR(G zesRGTBMv!#gpu+qfOD^fb*q2wr&NR-WAQM%UKnI3{i->?T7hBEZHZ77n#2DK5ZK%M zf7!c(eTO7m3yOS_y&IPfx1^t;gcZfU7x&qqZyiA-xw>%RfGZ9{TLs}Rp)7qqVLrUs zTH@0)2{>w<`~H~K(o*f0sPF33I{it?Z%`o-4^YoUMtc%A)_kU7biQvOZZNh>3w2-8 z>7t{jdP?)VNBLdrQ& zPt~sif`W}K+>ztOr3vm){wyvOFRuil>80W@_?FBDC?Ga3ftJhy9;J@buBt$xxe6Mq zXkGc50I8EZ@Zs=nsb7T>LOs4ePe07zn*BgqGu|Ca52`&6iR%Cq>V(7?8?X;@lU?>l zyO%UuSrUe;raj9p^}Bn}A6-bqgD5ASXkKRIZecWt-BI%7|Cf~a1v9VmBad`=Q1mWV zH{0@D8{b(hxA(Z#0Dsynq}goQ@ssGVDoH;Pgm9chCb5S`6+&-gGmp5#ZTuah_%8`g z5F|7F>tbP*)r;_R?f~ep%=A(JJD&3|zw56OCeAxSDh$d`c5Bj)|B{macPuZdnyfa4 z3HQAv2HH9=`RH~)eviMg^bx4a!)e`J_#fHh|Db}P=cYKwE~4lU-L_N662-)o?Y#$1 zezCkxT-SU~%aLqH@1?n5>1Z3fd(0Dx{$=O6Pk282fy3-rSCYrMR}K0J;>G?+$GpA= zbaa1V*i_Kn&IB3W-z_ex-2`7Vc)gYSk%$@536j0sYJ?R(VVq+Kbf6(KXE$tz{hR64zbRM2WnOOX(GCAZ7lK7T6iHCuDBsFjpfOmDlm%bdpU2^wL;1qPR9eDXc!meyHTkHMjq(X`ki{_(6Z8(pHg$+TRXHvTGwmt^E^=bGW zOI02xCe@nl;f`ji3v(}wVc;s#m@YmzcIIbi`WHD%?3sTF0PY4!6)G&cru3R;*m|0e zC(e{D&lFkA9K8L(>y@|atX29F(bbNt1y_X9<9y@Kx?g+Wf2PiZ|K{lQU|dn^nDAG*R<8gq#W{<>?+7#~)wQ_R~1yn=mxcTu3RVHq3xoyI2V zR9g(2{xt)a*A*u|j&_X}-npok&~F{NR&qew0O6^6Ze2P#61J>Z;5uUR341xrPGH3! z3vXf&)JV*`e2LRPNDlr>g-BAG|LAO;oVKD$>;xz^O?*}d_qDtsqSQY{jTLBC+}U6S z@@C`A5m^jaT8MwKk^X;O^p4eM|Bd7RleDAU^4*A_ePyERtJEJIjNFkrRr)Sy-lRNq zP9Y;V*m`X)(mF>ifrF0yREL3Uy!iY_CKveO=+c_5mkP+SV)p!lZ0&E7h~Mc99O`dF ztBqmGRv63Q^RCIf9+wJ+%Pz;)aSbIY!om zYfYB8?s?PPdE)v6M2B#0oBfB~{@=amKYe|^Ql%u=Aap57ai3&W^8u4srH!`R*b`^W zLwcbA;T4?+o+Y2*LSQE_SXKyQ0;l*&5j3gY(A3;Ovh6DXJI|h+0D#YG^r=U7FO)Ft z5EYHoe3ysRydXEHI!tt07*S|u0a)q+#WN&c_f7)#ln?IKe!(s?iZbBnrT`hXm!yHf z4Isg^+9AaWEI2Kfb?z5BFvpw7%XjMPxHq1$+%4{Xe-XHU7IHPl{Ymp$3u-bQ+p4S; zXdwL2pm^S21uhJ-LZp8c?6JQvfh){F5Vb?X19)uAZ&ru)dqCqig>ZLp==K7)bWs!% zt#*2G$SvpsO{op!8fC>h)N&NTjXoZJ>HmUX@T$ldvj+r>Pd&fSn}?Xuz$IahFeO=~ z-yXXR1+(E^O=MdkOhPZz#|SoFwsq2D@^rV`*U%Q-rx73IL8fM|v{po;CRvX=DoD;2og84vzWKZH>A%m)8P)t@t$wmy<_56gYApy?$aK1g8T=*q?gB%6KZuj4jF zfGPucw9DYd>U<#|+4I84edOo_%-e!;1_w-{8Dv-F!J z83*KpucA#60Ov)mrnU(YLia#?or99LWhS`ayMfx&LXeEO*47oHTVpI8*9{B|EWW6D z0#_*8d4R~TVE2}C1OHqw{**+)Ex91t{&EU4^Cl=sk_>REta5R3g>k`3ft~Cj6eh7Z z9yRIE0{}>mWqhJlhK))TLlBB8f082j0Lz-Qwe)WWJedO6V+!mp5d4HRWlHSnPMKja zy`U%Bp%?hno^2yQ;{+k;LKJw7czZ5Po2HUyJyMeXZwI=zmhwy^%mVSZzejsZqFp z$KpAqlD7R68i!?=sM(Fs*{s>9Y=BvwHh?RU8;NkvJ*V#gJ~f( zB-=W3IXB9`^;w5Sf+E@)7*@0`OhahgRO9GOdLV&|uReV7go?;&)GZL#tvwa|f44)i zUp@+o%Nq+5KliBV4&i1^5Hsdu+qk(kvZ2-0a?Z0yKrWxHg@kqxWYa+SoBSmNWj=oV z_$0ESz`FP0HE{T)N&H zdd|rLdiVJo3d1SA4y(Bfl6eqV!`@W!_DRS3(_`F91W8b1`Cg(VPZiwVDxf&tu^aqF z^ZEO&;=!(FH^bcI96%Lp#K=s6pbG>GiFXd=b=#ITpfB>~ePnb&8ZUs_tSR;F{VITm zx8+l$#nm~$B6mco1@W^1KW7pX&k^iiiNEhGQ@a(5q=rioBnCCGm`HBSUMTJ#fvsS) zMosYL@OM>3p6K@ZC^4m-1B``_gjOoiY4^g9{1U$WZIAnMTWWopUjAO?8F$|;@-F4X+nI%|0>N?Xg*q6L_%DL z5Wb81Heo|i9+sDx&tnW=$))+Uc2VNs(Ajw+UXxqzrl7v#b7Q2DaXRJIG%Vc zAi3k+jbYd=NC=5#ek!4?es_+2jsGbvGcGk>j>NV~oPjqM%{6x9R-AnmNfCgf-5?pD zU287EQF3qx_m))Aw|4=lkZnD-zzC#5^2NjA%y3S`o^7hygti1}4R@RWRt0`u!uj0| zi}JTp+#Lm?Z1&XEDx^^_0D!i=-N3bXAdDO%$#6k??}tNtsk8*;AKDvrlf6=)tKy$} z^rYVnQ6x@oTw_iHi+3cWPW&b)!@aIUSq%EF|FN-9i^%?1Xw%=Day7vgg~7f229cpy z={tM7D2+T#U`R(Xq#O24iRL40cC0%9j5yfmC*c6fhyAPz2K$chMe+v>0!Pk#7Bk(m z?~v1a+ads++2!*JTAVKM0q4Ulv>{WNR<7Crn!>x{6`DI3NYg0bw=viHvM~$&2GUiq zphf8c;`5ds91l|n9__W<^`TL0;qnuRRlD-&)Y~O@U~s#DpGV^cM_@NAw#qK8nM!hm zgriqJ5N1)b3AAJ`(%=HrZ7n*9z4N5|Gi(>PH?1U}o@o@WmV0p01|DnN`Yq4^o#Il} zMwQ9d@bW1}s^WB@;(r_ZzY=CA68SCnPF?j`i=?=X z2#=K@oYOZf9pkrBQqj8$fC zAQxBJ`(t_~9rDbEaJUq;sw#E?XnGxjOVc3+wjua4%(VDi6Gm&rdGSf){nGq8x*UM0 zirRIpHm|-x#Ydzf`?wdZ)@iY)Ugi(E)Uy%j29Dq6-QB~}6X!QGjNSyhQ+;o|FFpOhhf( zXxt5?IQqvB?NU58iYgP-2b*?zpIDXb6<8JS0VDa`FBT|!Wdl!Rhpb#mo2-S&4;_ZEVY6`}@axJZ6viJVV7r}YN(wT7c!P%K0&qMP zHObL*F$A4Z#rlL6eq_9_{rRc5f#hhs>r(@mjVe)*+HE{pDnS*22-0Fvrj09SD0Q^b*lY zO?x`AFXTb(u9SLg9CCAuT?sT)&$y;Oa2EB_Yh@%alQsD&%Rxb}q_)@aLN&1Cl>1F| zE=ZpkOanzyysWJDv2Po&+)MW1Yvd-6TnPS=Qvw@RFNQ2#T{Uzc*jKdz9B=SgsgYi|Zk1%UC8H^lv=G_g3Qs@wPspbw^7iHCi4J|oD=~%a zO)r-@BhzQntkahh)ZN=WP0~W%1sv1;s08)<6G(=vd$j?HUItHk9!mB>4QYTi3Vr!n zADso`P8W%-IrgD7oTGTsr^Wit!n=`ko9Ht68 zcst+li?${3%RBdR>Tq>+do>Il3-06zqsdW-f&GhjM)!Cq>|gDw<>n*$K!j#G6_P5V zc@CWv>(roBAwt=VCECz!%?3%91kEk#Y$LL?gqcFSbyz=Ez~4OYJ~ULZ(wD#IkZ@(= zxzQ6Ipd{>V-;XOcppHbcu@DvF^ck##D;V!rrt=HdG>%eeoNMx)!@V&iTOB)7%9(lN zv%C1D8}JP!oBas0Ezxbo=P~7xlSRGw#jKEa7l!I4b(DzR)u9tg{0)ZMaii=Uf$y`X zw%$~{TLTSQZQeK)gh)nu!wex;AwHzdDUM09y>Us(7An_lr%c;Zm+;c#ZKXEWI^Gl| zg^AQ61PUVMEVFoaAqU!#==c!8e$i^<-+~Qu*s_@{OoT9f#11KJY)0OVNbjf}kUsB`d z!*ccaN4>n;uX|T)fjHFVYwGiRoXM%TT=L^riJX5`TOGK~hA&;VX+G562OnWF9S^^YroX&e>)^Rr^FC`=udKXGIMkw-H z)N$vBOvni-GRqWpylC`+68pxqVOjb28u>C8z}?qR@T`BXkh>aU<$X)FhgOzU@mk0A zqc_wnfWb`GO1$-fO^`I_AXu6x^J&Z4bxf-lYvZMkhFk{k)O}^J9up{2hr$jQCSNip zEiFDQ1e4LqmT^{75Km=4ulgbF<atD6=b0Xw)okO+>?9o}p%JE8=vpwUS}nT&zaiJblR?olTA z4@X%6y)vvwk)$}R*d(^PIbPvm6@PD}+1VYD)TKM%Svy!8@IeZ(YV1U6sGE<>faqyk z`jids?D~Y!_PES9Kt#TKBZ*06Q#9(%GO>}UP!aWU4YH9D|73o4Bey}Kl{4Z6srNY2 z&pxkZ5$bh{L{zNP*O7wA!8rv_>T~s54PIvTc3?{gBNuQ0fZmuCn%cV94?qlIzoAfbvJbDyKe($S01% zL8NJW^C!QPuA=?)W)1an@te&C$UYxEm3lsS`DG8t0eiM0aMh}@;UW%I^FU#_bYDo# zl1a|v)v#b;<3<#2F*<2qArn5A*Wgtrja~U*?T7Tq%-Y&<<-Mb@Ia%RmB;alss(L2! zxw*a0u>G4T~Mp;Uv3aA5s6@SC|>hJU;;HY#A!W(GeswGRJ0Q>oM8f(s;Z% zr#+?dhukHQPaNj8luMDBG&g%@<@xxXMJS&!_0@z<_5+kAIyH$&6F zftlatWt_vkUMS$Q>6Sd8u6kscBR&yrPzs^IrCtMG{>jS^JKV-I3T>ECI;o7J^0&wo ze~QD0tLF2pcNJgRct6_}cG-`sVbY?+t(<<>vLD2ydV1rmY;jleQ(DIt&&_-!E^%W$ z$)wk2eL1MJp+=-*jXStS*XZqhyd>gNHF9cl%mp;_eZ+nb0|8RS24fJ3AX@j5Pd9Rw znvyQ+K``%RW`5%uorwZ8_t+UzH3pY6MFRpN215mMl)M2gtb(K$SgZL12CUG;JG$kp?-`mVX+MyOeYX7{ z5mc#aKi^~k6kQUz5KE2&rGjmQvq+RU$B#6`uCE28Msu=B(OFmmFQLyqJjv6)l z+E?aLH)BQTSMr9}B~|?{Djm;Z!k_hMxcePD$g8qk0Rh-mb}hte*dF3nkE zoNh?iH?Z(^^ttX}`1-8g?AzxrKss7)>5>r&t|ZK^zS7fHBw5^^MviT9`TYIoC(0H-k5Br&oOYUcx{a59Ql{a(iGb&J z>f1fml>_+GVl0k2_wbdipL{M%CUyMF`kmka2ce~4W_U?3O* zgX`F8w*0v3bjkcLHTJ(>$mDofA826~jFs%-bD1bE`$I-`?cYEW`>-8pZ?yCmtG+@W~72f$LEl|?lw$_IHLOcIvSc)5BRTrpV-tV;QXeGK_5P?<5zMaXsk)YKop zpfN>73^euL{|{*D$AAR|Oa7PC{ZIG%pG=uMKJTi$9)G==1Vm0<@SMyf_Sjf$NaSC> z9q{F;Q;UJ+8@F3z%kcg~ksaamZ=S@FM?|?Qk2t~V+$5Lq8nmE`EE>9C#$BpGrLWXAHpSpWg$ALFyTP?^{=wX; z;)1y%hy*VTv4j@=Y(LHhrsGb3#Af1>2j9`30y}=)560*Cpd;V)n3MgyYFVv(8#DV}c;!XYi*&U5kn|7g{(43++yW0zCjccoXM`MNdIQjEb}rF?ib za_Ju=#$eed5Fw=hHxa==P2wLuaKy2_6I5VfUOrP(@VM*o{+Zk^-I;LMf&(moJ$Qb% zNS-2**}7R~jEo?eV)p36*T^@KLn3YlDI7>l7dRq!V!Hlvxql|(RLBRsgzlm1hnd|T zGz{l?TzL%0#VsPzP*qURT|O#wN4oMpsAMWmH4zhxz`p_+j||oCo+hMhl$soel#R1z z`dm$Q8>|}wRywV-Tt8X|gOuq~`HLpdwu4`nsgY_A!3ZOysO%{HL0k}x%ggrUAP5O12~-qB>c zVsV+DiEwQ$x@k|zs4;0n=BJ36Atg1IT}k9lTk6S=4q z^^jg!f?(1_N1|w9g4#qraAb!8ROG(7d)NhEfx|BN*$XD(BRi_G1HmVMcl5_PvJw}N zp8*1(5d6zs;IG!SUjvHu^^SRdb29wGp7C9wuYK%7Xon0~v2;p_Kw^jxCXrZch#j#Ku91)R zJ-K{Y_0KAo!+sn=MAdB~y8?>9e~cum)9Ypo7y;$c1V4!+@DMvjnfwMpNB*4SVSjS& zn7wTQ0g+uMOl2qnXH6$$58HzG*cX9umJ#o7pZh571hmj^I|`3rv<#f1m%cYuZ!Nx* z>;iFzF`|0`cCYd;KKb`gtFLwhyjX-e9q0>z2RMpe=DlgW_$6kOS@%HVKB`90=W7Pp z+_-@S@j^EYZ&I6gj#%!Y$~jB0vBgtQW}>63KR4b?tc)r;>-{Cb5-4K%v$j-@p7~Rr|KJnCN>xT=B zKrFGA{Uo`$4si$ifg=#{-p9S%`VGj`d~uLUAlkGpL^TiYy%ZRTSGTqLK@tZ{-4p;T zXM>N@!bkiDk!-oZT$65?w=?imkWSLOe8OjWvTKJ{Jn$KSCQ*(xh@tKTwYfn84D>F7 z(9&k$9rv+`!psv3a5NT#(TeV9h}2#xId38=iEO&)8*O61R8N0PJI#FZfyg*J8(Vjw zRmbHCAfz2*BWmlT?A24!!Vnq*9S$B$pk2JmV3LJRTxEUFSOOI#{l=dW(~z z1BSeW=))sz*CMg%dx2yzv;s%2Z8H;dd;bQZ*R?%FPA{IgEZhn-nxP~UUkvw9PHeqA z?A!9(;wbsRirt_rz@F0f=Br1b6Xgar<7X!drMyBG^VjqA4|eJy2kD>Llz2jW|C%*J zld^5l?U-|X!YnzD2!!}n2u#Qo$=Q`SpMoMqh}cM9lrQ4Grof=W?(-BqN|VVX96_ki zJ9`i2Aykw6X8?#h4@s;VcLRfY<-Dv-TaL^yVq)j#@6a|q*o{#09Bs)M-P$5ZJb-!i z38Fy=vyRB;5Fe3&D7wT30Pbw-36O2f@Kdv>eir_EU;?atbz%Ad{PnJAJlFh6Ms=#P zFj^*BW@F0EXF?{q@q)t=n1(s1hObI)7EHl%3abOPnx$1%Ax0b|Zc1`sN3Me7Pgt-`8sd$P`8N<2P*nH7f7 zHfsR4p1YY7bi`>#t^w1#yBkGktdTiM24MclmdQKG`=t;2>R8l!?q@kxbD%VECcE%m zSCcg_dxGKOj51DlZu~K0<%|)cg$H5tf31c8``e9hg10*@zP{t#=nF+f)(S^`DT8mY zcUuu}JpAq|Xu@p3;-#bw=ESEELA_ZYe2L_ed??6jzNm9*c156$)joyqIWWn8RDmmN z*znCelwyfPctjv7+^&2skmiEV_l$yc{u3<6+6)ng5H!kFb^-`tXt?n*;6 z4t0&1fd%~8ZQCG98$am@8UHbgdR&GEYJ{tsdTyoAp6OG$?#jZsfLlJr4~bpe1iNdM z$V7)@K4iZi|IhfY{l7n}b?C94qkS%LSeH$n3Kp5_XCGw$!Pt~|fRmQo z9~SxgWhM_=Q^EKWDJPR!6+fH!;*R~k`8zXY91rrK^|nlX5`D#B#;R6>e|h$h$|=V!|Uk)ksW(g@UK{ zoph^wkMY+RAX)PyM`2#2u$**ef1*nLh%+nmYxzQ>Bcmo6ahy}LJnR}}rB;^@EWZBo z7^_ZVW?+PRBC=Rnjf5`{Zu5E1?O*Xu%w7EA%MVFmdb)1&9xUVuV$9O?U zoo5AGf3vwSrnX4+oP32GN@j$Sg(KQIIYd4>q#@d7=`aRK;ifoIyQTU`3vI)(pfaMZ zM}Y~Vb$P@knr58~XVMq6sU_d#=p^-Et>}s?N!ay+o-HY1SPo3L!Y_~Z5 zGA=7e6WH)nBSXpxVIogM;meneS|esQuyEBb9Yh(-j8$3RHpLHDJQ zFF3~()*v4{ceFufg~`&>)1W6^v6r6K26e5$-t=0zjE%fJK7rT6uh-1U>LSiZQC|E@ zY4k@XsFz~JFXeB8RnT0my{S5}y1;H(B=swz?B847?d&PV8QyEP#8JlTv5L`t8Yz$R zo-><9T}k2QN1s)wNi8t7s+xxy@n-DfT77lN+LY$4C`3lHAQ4p?74_W$#!J=(BC`!? zu3oG=pctAYKHVyZQt=vBPE(jFj^X>4+5e7OtYHKrDu{E8lY_}3{hZTuPgi{8GNUJ) zz&)kxcP8PRbBr|xwGX1*jIl@y5kZG4=*t(tkrFKyja508mM6+`k;N)Hc|33KwfD0Z z_wTOsM$ASp4t1aO>?ILK9|wmd3OifjGb<_TXq<=I&76oF&bD+f^i|QRvqE;!=P*&~tjWvw+d5DM5fQj; z)n-GT8S?p~ zZQkFsz7DohC(R@O8Aa})TKrAI+1v2g!WmmsDCc|5G5WM{(ZvJVGV#lWple!~UIIPu z%@O*xnA&#=dwH>y1lc_=mLp+cY>BH;X&}lMN9hPM%|{a_^d>G1Df7#BMdC!S=BX{z zNuHHN`;5JbNP5*2F3KF|lpXOa|2O%(}F%$sfMFHDw^H>C6)3glTXW*hZoPC;t5C|azTuO zXT2AjE((IlTWd>OCm9v~YOm9GT;z+^B{ui83bXeYI!gF4(K=byH{^Z9Hxh$REE?ag z6`JrPHlTQgVcynwu0uw|9;r5B5p)PAkn5b3G|pBz(_du;K9H@>&>sg7p$j0~|NFwr z-Ku-*L&Sp-iKysgR0cAMudXj-EId&~E_Ru}2OVRepH>GY?r{^Hy8Cgi2JClKM?zU< z)cLj1zB?fgB@tJKbMa(CVX#AB`%<5}`XFD+bc29d3Uh5rNTSPLC z6W4amB-Z~FYP)fJGkWk{DtRi$u2Q=4m&E(u>pEagvg$LtkL~MPXfe!xc44iMlh?gJ zE4po1Ob<06j(Kz=6c3n`162`LDG>A_QLgZ^&%GbcD`ZIUh z>$>zmsEdESmM90W)QyPA`INNxUc8$8R)>iirj|i)Cp+p|nCh7F|rhHa9 z^Gf=Bjs5YADyr9n?CWESoE}pU5o{HP&Fm@svTGR4=^;^n`w{U25Ca`2tYvw`AD#U1 z3@>5rPbD|(v%7iue@G)#bIAPBS=nNv2mMM(7JKqUFQFI{X;v<5Z@=kjG6`O8w`db7 zn;(*9ZG1LU7SMNHC&&NTeOpBMjwG(;h1id_2p}ILb5hQXVNh4i6FW2TO06c?W=Lxz zK@MTie1Z(@YD5dKo>6FMD3bWr4RY5yK{-`gHY9-hNo(yFGD3x)p2uHwfPWv=;#7Ss{n-f2@GPqSofk6!i?-!wSAroS7_h>v^oQ3i*@K#tx)%n zxFA~3*|&lY!7K>!?;lOt0I?ob~bRF~^uaQ`~ zcG$#Yq}?INN3SE>U@DNt7K>z2hUP>s^t+qZ zHIzj|$Llu9z?tfi;%D>PG{k4hTkrb&E8n^si{HvUu^a9#NOg$-e=3d2Y+-c09Rdf$ zV7zKv zlo&+eO(MF|?Zq?lpOLscBzhrSy+0z}V=^}=@;Rt`6Kp_=&0D?jB2p<2O7tEiA!;48 z{5G{w97Ra44w!<)p1lX`H@|zHgpe)-FO28*fD|NI~zzF$OmAq zUa-&Y>+^PwG0L6P_a}>_5PJM~qw!zPC4@DKJ^5SKD7318orDG@`>E&(#I9xC>-=fe z?b!CEmGt(^!``3du`oGzj&D8pquS${y7@EQ3p9!Zl90K$;N{hP@b%`h-cIHsa?F2K z)NTZm6|T_gI)t2LXT2Iv&sNV|4vCV9()WbBfd1S~Y^hbv24uxWV5T^in`(UtZ3()f z4id%SYQ!r5*<-A1(vH{EZmXQX34-z>q;u)JHNgWitVsEuY-|;&l06cTr=;EZRJ{9` zp7m)qP8Q*|i=aJ&41}EN^@w=HI0zmD#Ujwk>w*uKsrL12fP`#^z_fIy z(5Abc^~z&2uB?Ixu6)k9)XNIA2(SfO<2tmY_vTWE3nV4#AyGV=EB&t2(EFpFtv!A5 zoS&KI`0*Yq7Ah7Y$P>)bI|)L%ERT4FTEGv3raw@yDHR}E$J|;<42+nsKo; zzVVdM1Iw-l;QX6(ma!vGCEZ<^^uImpk#OZyX8b-^F8PF9#0B~ShH=E6oWL+Ka5s=+ zKGh`f_c;W~BrjuIeYi@4Mo8G=jFHJpV{cFxwx@2->oQyCU=W!$Opuxcln#sdRi1+N zq9euhLs&zV3S{r8roYR0?G51^`Y9>P5mDeaiiF@=-Ha*+1d(Pz7d}8M`Ey=SHN6z4 zAn~p7rGQD=j-RsX1dS0+&I;k{I~obcyydoL() za;$B?;acB#s`Pm*b5m@ht6I0;%fR5)RjZuB=^3vX=jAeq_1Ba_d!3`NiBcXNSQvcX zVR7bYB7q5KrL)lGrE`MtvpT&njP||LA~JJ{6=u6#m%YVAp`G&5XsFlF1(^$CuQ6DUSKkp0mPFt#=%2s6@o&id&C-k0Y#ckNSSVcqiJk z)M8`U^KSu4{RxDYBLK;2P2o|2&zTz$^m6N$C|kCsJ~L)A{sw5#^TvW!d<+bjjfB8a zE_PfVx=vr`q}u@g7#wN@X+O}~Td=n}034UmoDcqP^-<#?>nmm!nmL9Bu(|+=Si}?ys+`B87VM0<1Fiww6tKOz%`SUo9tW!myaQ2cpSu2A+Pt zms@gs!_lTi$hwmr0s9Y}5LS-9C)>`HV{r7;L2l7I?2%2JB+e zvF>qB&^f?=Xp|*d^(^`B>|tXrFXG{46^Yh&wV6-RE3yxDuIu;CL|c<Zt`%bHyeJ~D0pUMs<#p>sQs!r1o^44&Hqr<}=fmTYkXh~7cH@`Bqu5WqCcr2pW zBI68vMkwty5|`iJ?8^pqUsC@xypG;eZKIv=v$Eg75o7tzfr3U+lpo6(?mPEhr{dKm zPCDD1XsL`~F)_GLkE4;_nY_J8$m*9&SJQRcob$a4FK6XwwQNp{Ij0m+mAdbQ z?W1u=Yxo&vxWh&4ed*lyP#cA*P8&B6M=y=Hhpm>2mS#ezCD&K<0Fuh9EDw2L>UKIqoSITR9eZ^|6*eyr)sVseG+ zak=CZzY#balW#OVe@jf=q(aQiG)|>-pY%o2?)zB%r}v>b7k8%LaF0doQBwQf!m3cE z<8KAp<%_MT8#?LXyFDUEs*X=kXFOa)tv&r_dyC(yojXk>DbVh;5JX5JMT;l=!vS!N zQIGA~Xs))dCp@|Zv*L2(LXUR7ME?%qy+_%lb~gz!l3x$fN^q}Yd$U07)KGS14UwOY zal^vlN7qiU*OJ;-pRMg1>=7d>nGU4d?-`?@=xL3k<`OwJP^P3Sw_wggw7MQssmi5H zVErxv3*WkW$zg3)tu;8yq9LqY5q3Z{xNaLdXu%p^(GMIXh3hK)bZq5gM}m*<=eq)*gI>R~w#X&OWtaa@ zC?;~4YC!kNjk6uSeK?IAmY!&I@6Iv*`!H}V92i2mM#*hYY7wW@6X0{?hZ0<;;#MKp z=*jq@LQm7kz=%PpyK0fOj!wB-E|M{vXW7PS(Uq6HIMZ)*j8~r>u)O;rbdrYX%des8 zcBmp@`v~v>3pgg@V0V+`hyJE*1|AJhmTqCh`pg?6Qc7NKs8+Mfq3D^1|Dz5vo`k+=Z|>@D9l(7rotr{KpD#%3{Xd`?+ z#7aK~b?D+$w^r{qn1Iu61|FngRZF@25N>7f2xOyP-lGT~Bj)MBG^uYtpJ%p{AB#yy zcJtxgM=HhIaAg|amQn>F!T4Z6u6FJ<2PpTa4{O_Y7x4%NW%@vaH%>&!H?UEQOz4+*$c&(P$_bG&SI zjX~VUq9ImD4L<=^#oCd2V@HfX3-&CPlE)y%Cgq zdsA9m@I(-)f5y(9W=oi|pPR(gDLPE5%vXrr8lS&{&RY?*6lBha@Unq))q5;tmo3~O|nIje6% znUO|$Icgq|9z)~coau-L{Drss$3ef4_$_dr!A<_XBKvD>8Mx9~KO+WM0lO%sb8x1& z)p001pyxvIwILPDrm-PdJEGzKwW3c-e29-40yj_usCmhDrd*+k4j^4`@)@a(j#k3%*Gc=R1RlICHqex4 z@y%i>jE-uismlH!G&=TNos?gF&gaOf8M95TRAuRJjqw?c*1kNUG(wuVC|*?0kAp>G zbceOOgae4#$?r!v5wae>8?~K6KD&PRx-hb@C7SWXo-(=Z3B7`)wMuMYh`3Iz<94?Psz=6ZvDKi`;>f7TbHYzygqQ6T)4o3=-S+RM?ur^&BNN3 zci*v6tHBX^hINXU_Tph}#{7Ah0?>a2uY9H)>~Z52L^CWU*f+Ob4{q3gDBCB+#2a<% zeUQOPtju1PK4<$uPX+a%HDKY}%J%o|DHo^nv<~3U@r@0xM6I89(|Rj#z43&`2*IP! zN`Ch^l=j|*4TmEacWTMjgPS+6E;5BMgftzbG@7#RqOx{wVVZ}`o3sWV>$8LJ$&IR> z5$^L2+a4lXgv?}3DYDVSNX<_A1s`unb{4cl%GZgFBM*Ez_(Zw$QFRTiFP$M{uAeI; z`LGdTR#(g%D;0U@#~^RC&2PN3po+B%G$=&Z+3@IxMv5R_XPjjTaE1ur;x5aDP%$8( zn&sehA4elmr5dB$i3fe@1UqLLL$63ioqQ`jxk@dF!oP8|h=87MQnpmj`sv_xyn?=f zb8aGu1tj01Gy8!wmEzRQOdVhlJd#`5`O4W!gO!NJZ&magY302bXQ@kOH;nI4Z1U*j z$uy7@B}I`|@_F7aty%^v+s)#w)2z5EIyaMj)-~qCE!84F?#($J@1FO3k%T`}coF~T z=W`25HspTtx|J_rHCZ|`HCFmh*xr3`P7HoJNFZ2 zvX^+^v&X0}(dz8}8QoPZ=?u58^C}puSJ+G3AS@w`?9uF7)LM1vl~q?VZN^A^8h7D* z5?>0si-<3Myq6u_81zdE@Ety7&FyvQQ^O-z6cs?$)AmC}cn_(gHrCj0?NMFXtoQ9J za@JHs;^f;jlzm*MVjv$vrQ!mEDZvbjTk%^D5{1fVpEsO*L-7hhkfS*x>ifj1JyQk! zZFY{5-W=2|8ghFJsz2DeuYc%??CN{fMZ&O`AV@F^sU;o@>Ly7NC?0&+$!rR{v-xG5 zfk+r5_T9{ljmDa-1H7JhLl-yz@<{5dRzVZ2A1x6x4knA8-5T^N2&+f|po)=Fdnle@ zMyX_WPEf+Xs*Gq^dzRs7ABX*51^&9I8{H*B459>@-sD9Nq=Vl|huPJQAMBP#5{zDU zWtdZer{sk6Jqz>ErsS2VClYk<9ITVuNRn=h2yYzMaJz5WnIPZ-$sh0da1D zEQTUY$EdyWtnu#n27cn_&V3tWedr^7<^EHz>#J){2sX^#4ml_#CGHtZ_I=-%d)1xz zOL(debMGFIsZ=%7PKPglZ zXtR#veR-5=Wac`AroGN-oIl^Hc2#4P$5`#NhXouvIc=r;*&nE;t8<_!x9*4RiIVg4 zf&mxGd}ALq1C9yrA$T(JKy3b_?Pii>J@vl!ueZtOu5GtOY}b)59i8MjTQu_H(p#s# zYtIOBJ5RBklHdQxn2G4k%b^38p)@UC-O$KPuO)uRdZI5T+$OkQP9IE~{sSxgeQFUE zGz|Hum7xoqo~?u*gZdX%zmUw}ul7E8P%wMQFTe7kyYC9U*~Os>{27yyeUyUp${4!Y z!!!E~mkxLu2R6u9uer0Bs5l&)L9Jp*W=^eQ4{T##Pb5DofH=ID8VSDKb*1x+3v}hQ zK0hQ*MokG@%^81h<&%eIygxZfEfISv6Fsqae{vu8skSf>G+pc>8o0MY=}C_%_NnKH zoiYt{IlxCQoOg3)FDz*za=m1%gO!W5e2Y}nPtrPTyX}tnu`FMl^*FgM=9VKR%Tqpz zr#|GxN{xN@K?|;mP9q6Lm@aPY!<@^^E%BwsdtdswfmDXYJKl39N2Whq9CIV9GCbPn z?&Qm|Y<0>|U2*A&1i1NmV@=YaaaQp=vRm*Rq`_0HqN<|mb(?Ex#Dq%Y)j>{*npZ>E z{wMmY3$PQVQOZOuogX`8ZSD>qo-z9;KQ3ylj8UiOp1bels0^(iqD$C}W33OZI-F#Y zvZu=<2{*u#3g-R-ktP>xqMjY${^rZAh^H7OB?_q+t#Y*dT)9m##N7Dvv-|iu`vN@X zSQ3RUZk%}H(rGQT_q=x{zsf$dOUx6L#wcCsJ=WKTlBsEKJxX%rWzADGX@N!kOpr`G zJot*J8Ri-V*_vCCi6i-wXgmyiT12tWjWBCXGZr^W!EIbo>LA;@7E7zTg@+j8@~-1V zL&_0hmCWMC&DjQ`8Wwn!{MpC`=BC)_k&vl1b9q&qOgV^@qSL-Qph3)2Y6*@MHZP&` zas+vd6%OW|QPpJ!B?uP!6lYbAO4OXM!RIB@CisrOI_Ub^buj*5_~99WPP}&k+yPLs z>Qo4^JT(cvBBq`p704>Md@87%8k5TF_akxKzj*NOgY@$K3soO99_{aQo>ls$k#Q+y z55K_NY3kalp{f)%iHHjVWMV#j7V=+Ev59bF+wjT6MMl>z?^oiZF{HOQ`%3z5a3$wv zl7I*^ww0XY!WB*p9zL%8yfdvHVz1E9vU}fS#QKk$_c-k|p+34<&oEK%iLu zX24ZKg8#g{yMAXzWsv@ADk+`j9;u;fJJ0W-uJoSa0bAI81j6@SkP08*EfueYP=RMMQ3OkKuuP+gn897TsDJ7A!lo0!_ zOP+n|9^ZC`Mn(!hUhXshgZdk9%@6ZaEbPH_PFB&uuT0jNBNAVGU&EJ24TnOHI6LeI!g z65cjo(AlX-i21m6xt&k&hy8$9JA>Krfx7c?pGd+N3unbCM@Q zK|h91VfNPJ=ZE7OUO{BBxKIK%!SBQnN{W?LrYm~^E@@MP$HCZnWIFeOi89{70DD* zgowyYGL^aCaoPKR-ur&;_WRuL=l$#V{?kW$YYo?RUgvon-|4VwmPh#j4hDynB;x|r z6jyps{#OERvl3btrE@hUT)G^Qk}2p?FR%ubs#(}AoD9#U#4gIzduMNu%Tl6g3@BI} zd@e0}?rg2k%$;%38oeZ{+GD3cI!kDQknOI5)~EIO_OyMfjV=5{6nCF*8S6mbdv5JU~Nt5 zDKa~^8tG-fCcU5iqWo;O>7(;?FIDU=3Z#=Y?a^;!+3wR@Zhd5{=Tdp^XsXhy+sn?t__vt76*w@l0l`xEEx6t5aoQFBcYU8O2tLwVwmJR+4{;cb*}W8 zmJLc5in&I!+g)5N6^GBBxHvf+R_zj~9NKm3l0KS=nm&a-#bf9g=qwh-5CCN9jm?AB z>WimnNsL^aUw%r+wm^+jL1v)D(_hEXT8sJiWr&=Wtod+b(wa@E{}IBgMq1sgf81Ec zdhUqGZb=?2Y#n)qc8D5NBDGy?tch=yh8eW=-e35RsT!h;?ZihiDHqIB1V2Bmry()+ zC!$KKQNjj0%#)YLILIfHFF+FAj5+#h^$i`SzQc`_=gas~_xDAtRLEqrbbN18q~>;j zvgM8S8g74Z{OX;b*>+XQiTIt&X2pEfb~q1cJ8iL4x;R$j6?Ingv~Cg^(Iz#(XuIhi z7XUXfb=j?sYB^l@9>-^g3{U+;?*|wLeF7<-WGF|AhCXobC7-d^=M*hvDbUzBW`aad zd1Rvb1PyBv6pSV$dUn@7+J@vGffAK3Z^YvwKLTQ$j}nl5fs%RWKg!~50~PJK9Hq zldGFtSZvgHBa19izy?I(4@Dk^HcTx$rMYa?Z(ng8k&$3Ga#eM+((hV{*{&1oyeXyD zXHd)>aamgd!-QcvfwS^IWo56^+sbj6ughtI5| z>u-77f7#RxxzK&L)-;o-(zOoB|Fv^wsAA>Ykutq=DxWj&V&KHT8&vCGhr*U8lbJ_8 zuClJ%i?v>spZ7ia=kBUX3A=0mWs}zO%7PN`xY6_ zEN$_S8BV^sshj_UAaj^S!lqcKZonguWT;6AxZh^D3dx^?ed~ZPJG59m|bp~f>R-ln&ORdL$50`?{NXyiP#+Z&FWhsHD?9UY*kSF>$v z8oAGWrJ%d8`8w_FD}l_c<0I`lcHH+5qz!x1zN(P&97G^?IOTa(XFt;UDWH}4pj&>a z5Rs#95@PO>!k995P&tSY`L2(~Bs)|6LKfUeo60*al-35P<3*BJ{LP5 zA@kB#+>Uj0&e6_%#@M85T87$nYYILy`5krd{pD-h?4dq;h&&NH!?9SZw)iqNb*>P+ zzRpdV+m5&bXL8+F2+VBEO}>ji`!-CJ`s!W{p&ts`uH=he%rRwiCHu^Mv<9r4YHk#H zU#@&+J5H{r%oQhdo5|~Jh&lMTCHuw1w^2+vY8=qn%lRkFihtIv9g;eoX8l2bW5vnc znA1;#d`W~p>KM_DMjZ`^az9*ID$QemfqI&ez1HsAe*sYiH1dNEIcrJtE0dWEkb`6 zGhJL4IIN2!x5WoM|JuAu4Jg4XVzs$ib_5G|<((#uHL?3k^d&a)8RF$0S2^3y9>SFk zeN(xsdy zk0}KH?(z{74zC#$=fWPZ_Ol;B8%U>3mcOeugB?nt#2>91M%IJ=(FIkFQ||u&gBpX(x;=E8u-!Iv|LTb2M*{1 zbD%T~KfYyW4rQF}IaeyK#7O&jv(IzKG(6Q)e34L`8*EmWCGn#zaf7E>eF z=OiXI`B6repoz?!TS05fnYeCdjMA!PxsP;GVCP0f8ia4A)<~-XGds+ET(I5OlyNQ$Sx>Yb#j1Do^xK8R%lo|EocTGK^+>3=qpXqULo}=6yc0yod}~W;$+|LdS;B2? z_;VEd4rgQMGa2l55S~5Zjf(X9mB&&MzY@~@W$42*d`8Qc#swvW)2RpAU%t@1_CC*G zY=0{;e>>}PCN^%XLi5!|pxR<~Z+V2>B1I;m+E0TGAwWa^!+gT;TfX>0)C7*A4S& zQ$7tT+4#0*T3x;`Nrr+!I}idE2A989WaOHYRq&AP#Y(bP=1DhDGhq>4*rE4%)I5Vw{PFn^)2 zGCIKTl{lem)1S_CH24ZVQ*dWvC(~q70MWiy<)<`uu_xI-@B-&(aQar@f#)KMc5MlU z+oE!xp3vZE1mp9qjwwQ+Vl5bDTR%?>W*}?!8ZMRAN`QFdiEzqZtm~4! zkBd~f)YMB>d&$#pN;4u^$-A#9r+m58L^pSXS|9CyKnpllP2ux81$KAzcT-mJWQ1kZe|@9en*Uf!ClcD9Q8Zi_#b(_)@CdB zGv65yoLzjbGCWC@l#Rb~oh0oPH`99+WD<*Vzqz_^$=YaZMORAT@bV8yVghwel3T7p z_<@mSTP-a=CaOP+k47tbDv{VMjFmqtyQc}fzLiq)dZ3K#UaSlk{_x9E_@+V3x{s7X z@J_X_$HjLE;IYxbj`vP~5y0~Q;4S}!0RH4GBd0gN`sfVNbLdG+x?BINW4&U*o8`oE zHQcnIP3RwRvY%*>j*xFSw1=oB%+VpA7m{1TjHN32Ck$kTN%rql1z2r|Qg_#i=-HAp zpMBa6mXy1#f4cJ|dLJUUU_AXv$E2;TwRny@{MOtdp8vY4mfGWz zK5Sav254n2@ykOt=_XLRKK-bA-u?!xokt!y2^t_+=$=2XfvlY;m>V$|6L`$@YcdaE z%eNl2NEaxKP7@7#rbXLjYyIfW!>9RgyFUB#f`w-M_JYknNoCLbtw4qwZk>c$B`7NZ zl;!QPVrytCS#jCV*VfJdj0$VLBQ7o-?f+DJ^Vds1`fLBXnBRQ+C2d=CtpJfp zx4mSAcCSL4H1Sogyd$RVz>P6iV^z)FH_DV>8~}RIAj;L38J@HfLzl_>n5)WGD+;c8 zAZF4-DEk8CH}Erode1{tXBq9;*?K+(bLj@@`l-k6U+epm?%q(dx0oRs#?)>g7f53$ zA>%^vZXdtGMEcLyDU@d!y@8q+waqbY-|u%mk3)Cr5JiNUMNDIViR}!FQ&1$~3uwOI zFL_?VQ9Cct&Mtn#Z?3PLZzkM3$e3H_uO+7Wf4RhF?1P*4ZcRPAGv2Y|uLT7}BblR3 zFJ9k*Sc{UFvFUzt>M2JE{)1A-y1LwJSf^Ju7Z zae~`N=``3&3Ydjl4&=i!3Tbtn$1P8^8)bLbErlK(VthDFec*%qbjRcDP2YL$GOU*N zjv}+xsXyQB%c;M4v-W*P|2qv%#SyITD+&e&@!R)kx~)DmJ$PHIAk)zOU}mn3^{@R< z@$dFS-R}PXjiRW^uxF`4T2wLO9RCg4v!O@di%by>k13T*@A%Aj^`w%zD{uB?0c5hP z67u=&t^ch`2!IJ>83WE8f)9A-@Uyv=`)wt)Z45h+qxJ`*dD;*9P47P&WtEV#e|N?I zXAxZ4kzz;ney#&u-51k+1uYr9=fvnCxH{^tdIQDCD{J@kC(HbG#ec8M`g@JjU$5-? zS3gRBO5Kmv-dv;iSoz%)ajmE)aSSQ-B^`T+3?2s`(yRQrE>Da7c3u8fsP&z;?Z3od z4N=NOg%%BJboD`M`gw(Y;?Eb$-S&;N~LaS!o)$SaKy z1Y*e_?4ZqqSEspesnfGkowxb^$tieFb>DMd3_c50C~RkfT~vQ_c-GiD{cp+_OX79B zb|3d>`)es5wX~>#lu8Tal@kgdOE~@ks_+XHsGL zMzCjjf?!>4kP-8g>RsOYy|=cnRKc`Gx6Zmu4j%I9T|H`b3Tgm0-f}7giy&pg@xSj@ zO9|A)*%$^>f`fVZ$o0?u{S}&~Gf&$S{e~ziBCturi=)DZ>GwaA zg20ozosQ+t;q+X2a#0u24ic!~_)OD}yQYtZzuqr}Ry{!Z9|zq3yDNy54j0(Yqn;6= zDH=0aP11R+$M!l#Ey1Zm;uBKDr)v&X-DJ;m+f)(n^&X0edMMvnPwf$d*ZcYq1v*t} zr*o9MThE7!-Nf~&(4&@f``Y#+_qbt+{!Pr2-Dk{`dIXd*x^cYf5A^SyTuhY>!G}B_ zZNh~xmWMPTGUdMYgJ~V{J_i+gP9{`;J3nQtsW-|t8d8K>eKHIG&;r=4 z5dSK?qi-{;cBI;}`qI7j4yxrAyW6Yo&|9m(WUleXAwxSF7ICy-86s902LsL!f45U_ zu`mo*NcjN9-Qm3%@}BpjLGuFAuxD349R>l$5+axZojf<<$@Q7)QuFx+^cC^M##By) z+fXg$jn*o|%R!iHAPP|!I)&EFGd)GQI!Pk&2?+^aT-BbCs#3EtSI&oN!}w18%hx-a z33^w3s4UoT%^gmJR!@Y!8Uvk)M~gS*kutmRe>&G{bB)j3ajsRdR`l@|_+LBKA~_L} zh=A*dMdU0Z{X{Z-K}V;Fh%2vN`Uzs3WKcG=f_f&)JzYKOpf-q=@Nd(OVfIp&J@n=x zjDzCu!TBdn9g5wRjz;Sc+hPZ*BrkB9v_j(lIE1;F2D|qbr|PB4 zo&nFyzUfa-OOHBspJtPF5$Zg#9F3^Q!2BeL3Wdqdx!DUKTQLB|mLM|p7!hX9Jpa;g zvu*Ts)HwK^5+ORb(4_-LKxh@3m5Kum-)~yUA#E4&p~U)1@?`O~%^%%0-VRAGkN?rd zji{qO=|HgX1CKASYFz#2`gmZnh}kvcVsnGbD^on6&3Kl^)zsKmjncAR2Gdo-Koqta z;$K=p(bKa9s@$OCAQ|-z;m;m}U?D+p2*n~iFhsx~RQoZ*>X5+$0Y*vi&ClU;MuY51 zM=^(#e-3)*p373M*%-NdRl?r49Vz(#MSjm$ za~=-9`w^~ZL{)K)=M8>PlEVq<_{2xIAdT~*PcSU-8NGkG%4iN=qE+#eWnSALoxYi6(_Sf$n?nIHp=IksiM?sSqvG1@c7!?{io_6`TrNFLCb7r*G z`JNGnRHSn;-|e$6^?jo}yh`>*pfD2kYA{>&NdLw~7%-+XN!VfVWoPAO2#H`z0GqWDh|JGN|W@psp z*Ew`ad35;J0i4Sbvv87hy+ht#T~aU6QNMH&g?Mz6 z#Z6Qh@U|-3EAJnW82ODQz@#W_QkW>xa6Vt3XSMGt*yX)o&PDzviZ0HPDnIhE*fW}u z1FDN)QZwt%5#pig+xtC*)_lT2V&I^#;pyoRTEmrf5LS=hwG9N_enHK>Jz^d28V?)r z`nAOKQ-_Yyw%2%17V7C%qO-}ZUiX72<*xD}zTqfVBDr|-;32F&udIhT6l?nxv+|7K zWV;0i#;Lf>Fkp97$uVYt&-~}d+z(V6Ozk_bCQCYctb4>V8Km4lqd&bhcnK8ag0!T6+Kv@S?|jxD5r-wR| zSfnod$55@We+$S>?WM06$R70Gvx2p(Dozt5@XfWhv>1%L++%H>9d*$uy)N#8YCj!m zUWv?bJkZ!!lLUvbi9_)HXAkK*27v3m*7CIpH#4w!b`#uawlD5D@<1v3&Jf%ym0K_S zcZ*KxTqrv862+=7AnI?dyiOl4Gi*KQMXoJO-z{rGDyu70*fUomwvXR~-#ihL>*j&^ ziZ1(7-(*|@ZfY|W9a@m7^q6z6kkBm|DLL1H2Tgr&L9Xo!nNv@Uegs@wm0hL*tO_m-vcHs*G9`+R@&9OmME7njkbEakeR7sK&t6*T{SKLB4$ zSHZ!wM&FMoA1YjA{AjLuI5RXAfcg6j=6Upb^{-Qa)ppj?@k`7mh-=A+oi`r~$KNb@ zwg>9{#+?k%4RpKVrccvr4rxKPq|_Mm62pIy>?Y#VD_a&jYW>=~<0_3AzWT zcH2_hPdG%cpyBXQ;~jL3zJJ?L`|x%(9E~ScsIJyXnP;DN87YH`|FGZl8+qOhA5K0z z{|DnoYnsfN2yLrN9G*VZ_R;_=8tqMw{`_iJi1!ZVUF{9!P1$J;y^jcl5ivN|cx<=V zwT@aRK`V*X_j02>D8#@nUko+V%}n=u)6g86)AIf;l2_C?z37NL?di1>n_R*7yePGo3P3Iv9xdJKJHfK z|5!V@L!@1g;sY%PVdMN*rp3eBd{kH(pMSm452ua6v~?d$Tl#jB+3>S|2nhi)khifw z3|4?DUa_-|wLgF3-&SWX2gz%+F%pqd1i~X}H}j#uu*B+kfz7j8q}G=9n=?NSlE9NO zla}t!Oj?sAB*0PW@O+tMm38fhMFGqU%lAGe6<}&gEH*DcnRe6>N=b|C2mi9)44-^& z5#RCK+ZZ3E0gZ#?;=xPQ0PIK!_Zx&_5ZvgGf5(j!3F8ncDenBSBnhU;*_70MQ#cOB z=W#Fw+@dXmXD0W6sHxt5rIoI$Sw(+U*14x68Owuzz|ndf&eU6o5p)lc?K2Q8;aV=E z#jwaSe4izS7X@^ry63tcZRLb}H87_85exRqv^T5sh~I8Tlg5$)dE)hT>WFWR;{iJ9fyMP%MNgB711_>8%76Az;>W}G0f4}hd6JL zrlz|-(0kWS(T8s%Cc*68{2eHL1rf&xCKoK9#y>B*C5f2CgGSW)eB~by|4$o7Mt4FV zW`EQVp(A>ugg%a3EMHJ2LpUjOk-K_veHns_rreIa~Ss% zhV!Z*=}w6Iw4{2JdK!k;Rd8Gyg#YaY!)Oa-5vLa{Elo}cSs0oa0A2iXI6L7>iFHFC zIPJR}c(#~-`cO;EOP>#8&#FY>l=q{n!*j{$4K4XwJsPiNH|zBLY;}p1Y+aZHp1kOR z_q!@x_9rQocx6~q2d^|#AfQZJ*@;HaOOKF^nK1q;m1!K}2I3%q(6~c+(`6l8J9yBo z&%8(wIAhqg1OtBz>GzR}p|7MqY+7V`27l}}r_y<3oLkc3&mOZ2^Nf#?hVKN#9#9XU z+rI>lVO&n9S`g0JX<-IA{Q7LAFE;M&nSe=_hRf?P#)O$fwsKkpo}E-SI@W|Ky6+6X zZpW7)y^Dw$awdw5^uze5<1kzl53zpKCouvSZxe2F#<~txm(P%)81@3G(`!BD+d`Um#bD}`sge8*^(g!&MJl`9c8*G(@rT%){GIqI0w0VEszc?CS)6x zC4smL#tnhYrAwuNdOgeXc7V)j8xsh%k2ffA!;5W6*s+C{#LX$sTHoPHBxUD z=-&%F z0eUFeISeoa6ljSE^dOY$&vo-Zg6o^e%sIWa7))Lr@L)`hYTlEf=wA{VK)BTG)J|s( zZLlexf>(4A3Tzj*rTL`(7XV6E{)XSK*Tg;+`#d;vDZohw3bPlEW`i6_HUAh29H)A}~upCuM zh(={jwUH4&SEGn9<1Qw&6#DuqffaNmv_|=@wS&-OA&5s|aS0_h?pfrVzC?p`zg668 z9bCbS>t2`iFNjw8oP$F3+j_=9q);t^LbahMD+hj7B@Z=(MYDTR_-z5b`Y%9w@4qnt zO_b)NR!xvw(hA3gxKIK$ROl=$So3T`7A4le53%(aj_brdnW8l3or=?@IusEEamhJ4 z?Yx&Nz@tcx(N%rxH$PCIlEPG>dIogBs)-J-gOPT}_wEs$7Wl%1GZ{+j;MNiviFho6 zq}Yk!*5L`$hP}QgFgr!AqwjRMfV8%O%|VASjPYmiS2}T$qjfWcZ>dyxhA=s6D`$9Xghfe{?MIoq8#7NV=rVd{V4Jjv>{5 zE7qiyNlTDALxf#8Uq%Q`XTVkkO1;qdQbL%#J0od->^^!r{YP+u7GgySpYBRy#3`9 z8!D{eG3aIHxArv6^}qWS_SZB;@s1bukkR5TgT2REA!RUH1*f+c;0L0g(3)ru&*yl= z7uV_BQ<&R2dzl1lMJfxX`W3l!Js(O}C?`I+bOi7)gF8P5N}#s;q%=pohM@L!_@j?v zGGXmpnv_1frb1rbBz<7XhyX}s%R|1)(AH^m3d*)?u{=nvGI^RMTipWo+`K z20w{MrwwDw`<{W{0W_yBwk#F$0B>Aay^v8yrJDM417IFzZgoeq#7OcHI1I~r4?w=c zImFL=7y=DuXmuA}b$U+Ep!a#qZ~wgb$kW=bF-9%<*||?NhJ;Q{HR{FTu?HwQy|J%i z{*$eMV-3F<@+v9!{E3^G=!CEcF&V53i#PddJ5m^1>PLScHZoFWd63(yxUh5pq4(mY zPLUfTg*~=xPyPxHuO=y-K$5I%5$a98bBTU^L77L<>Q@5-88rDSc%LcoILL*t~ubh z=*`bh_jbhqzCR^CvWFMiqC0yPZyGH>BHWtHSbx4Sw$GSb3(8@N0@*jx5C~zO;55*~ zf@EHlL{v4fVRRL@4jmH(z->Bk_V@g89wl~}ELlQtOKYar8D~w)V19nGTk8-sky_Ou z2@(15^>`tCL6o1o+BPlTrCu0^yd75lrc55Z-6g~G9~pM33$?eq`2~Ml$K|r(Qdz79 z((u|i*4Z~o6$z6~I6LcxNOe^>L>N3U4{>^E;sY50e#KUVpOO(0uj|OiSY474aW7VM zfC^tjj3D}_IVT6Kgp&=lZK~sb_L9(0Msu@D8zVI%?Qz1;0Mv}R7O+&r&lP+m)nXye zrS4-`S@BpC4rFYD@cLx?aIj{j^i%8&d251o+BF~y%78bjY^pi)B8mhh;7|vaR$N#(h*Z zOJ(*?tOU^2dlY`F697Hm-{@EV36clWBaay$tPh7zs;OwPCp2FlZT^`Nk5v5yY#9E{ zi(fi%_tk$M`Y8}H4pAfmNP`bGrcNXyzt@|g=hx~GQ`t7v=J~(G@?{Tgx7P*_RepYb zRB|7%Fb{Y*-D5H^$dRwC@bz|2t}YAfiGVT$gXnCmGNds<@eA>YQn89mqQ26u9vf|z{QQuBOets3I7sQvuz zT#3ujS@NSgB<00sRN!Vza_%eJn{7PfBF#-P!CJHIZbVzUA4E?k<;07xf5guNoO&!d zQ%vbwkgC&%V$nyR2D#Zy+mnD@XoE5K;$oIniGcI#A_?fzUH8I($>5s_=6k%@#O^*g z|D^`vGWL{ttS^m=q<7aLiF#@i{NGN6GLpW$XKM`{H@8BoPHBvv}y}rbN_l9XM!bewnlsRk|ZcM;oMJ|JFjt z*Xb^|zmGHD>TD*KFDq53=<&xEI?*6v0aviVld}poce(n{wQ~9pwx087Dh$bL3A~WA zocT~#`0e;Yu@S&+Pqh~|v*JH~Uenh}77>0reECsj{nm*(mh4|}>SZ&z<;4jD-NL8- zC4e2#e{ieA37#i(*gXehER|{O{tqnxfx1x-DzflN$^U3WbCf9C+WD00WxLH}Vn6<# zk28*ZSvf9Q@U5|@()wGouXj1+w39z=Hdna@7h&7I+2s;KPQB5ZAKM>4c_CfoVULQg z@}^y_)s_C^OXL18+7cQlTHD6nw7?Zh2G~G1UDnkO0$B{7x>+X)2g2ZzRs={u{GBHN zae|KLAjC^t^9#IPQop2wFoNUo_qRXSF=bmY@73;Wa~$<)zi)#UkfXpO)PK2E_@R*b zz+;DV>oAVk4qObtt-ol448QxR8KBI2erZq$X6Jv@gkYQpkp5oy7N!svWee{_ZN}Nw zc#Z2M4Xwk-6D@#l?B3m1_kuhjt%da4aZKl&`NT?|8Qo>;)fIOg_=5!(X!UlYyDZ4n z(cfAoaDBBvdOYlSMZh=FZvPRXX_Y@JSL%wwGCa28x@$JWx@)Xyrms0D)-2W9EH&Kf zk^UOuR=6$7l-F7zF&taBsd5iD9=2WAJRugW4avfG17G9drNw4H^19KUU%1GY5)Rc_ zH~pQbyX+A33$t$2_ZJT$0vuIZ1Y7QO{GUqPZX4YC)TwLu>CqcAbFDXMCR&-#oK1FI zex5+hd?)tqQ!7Er!{(-!SFf4B4xFq?F8Vb}tGo5=m2J}3lATj_xGc_!iAfV_pRc-J zTlcQC)I9nYUm!79Isjuyo=|gQHqholFpRf5-+-^b+B0VkaFz<6X+xMjRI~-VR^c|} zGYJ8KT?0srI$mzVA8mdY9R4CqjAjt=WZZN_S{M!*F(g3}>AR?pBEfKw@NrLC458|# zfuOB@qZqXWXs8Kvy4%#|3Rl-WRu@pj=Bj!KpX>p*px+|}BPQ0nLMBl)WLLla+LRQw zSU>OhZexEEzW<@wrZxDU@ng&9l26{CZm~>ws5|TT4Bu9JT>5*Q1Ad@=U3&T1yTV^} z8%jK)!R^?tN*>`@$qv`q6(GM*KRguRvZ;6ID_Jv7asLil$Du8kz=?5T!^%GlnA_aX z9hSJz@k{S>=K7P$`Zc|pvgz^eJZqL!cOkmXP4^c!dqY7E3{(?;}n&Fv}K60nzonGddz}LBxtrZKVIx&~c#xZR@Dy0chcZQ25 z#?Wo$IUCw7OAf7}77|)-+1`k{YD5QGvt{|$9yZx#OkHW^^YUw`Ra~`xVw#y6xDv+< zH?Mg3(2;5?iEx>{HlflYRh>6A26N`*g6@p?Q(&;CSdy6g4p>?gERyhkBeGalt zlYOBR9)0LxPfp-HBsxxWyy%*mv&?|H$GN z*a0o@#^UB>s-UV%l_)!{{SgkhRuFh#AtfRXN)gqh5Nim{)5}ya!MmSLkyMk^c;eJ! z*I$7bnPp@j4WpzZ!t|CiaHo$Uqs)vg?QHJbVZ}3S*I|rX{#++yg{$LzFwgy*>d#gs z)|<20^x4$!>Gg|0j@I~-5|$e7Kh51)muvmP+}6^pxxi>=bvJnWt(SWzd+zq? zTQRFZzhf;MF>3ofa%Sxo+D%Bli8epPL$fk-GXa&mH^S1jQ?L zUt8vITKd{D$I>Xz=(E zkaFa9zW5dY<~?xXL}5%PdHOlFKW9&g`N?q{%|s&X>CGqS+YfD_`yyeti*N zvG&wfLND1e%~;<;uQ^S76>~z}w4EqsX)KUqR%QB7#ZG?*(0FPEPDr1t8w`zcwtJUd z?^62_$YK11ZgR`<(;~iI!TUa>h)`%=%sGsUtEi716`X~uV{NDbqAcU!w zx%X}dnnR*m7)8MyW{-nMmD_~@$FGN`(CMsD`RzL{-!C*OY^Wz;tj6BlVVNRO?_Hmk z$G0BHwf6I?5_!L$9m%DJIwk=E@K1j}{Pc0gaS4%;LgZYr_B}MeYYTgTSkQ01Vy%ur zXs&(N8S1p|?<#a`{tZg*w#KDiAgFA9&}UU~tE_bUqaCW%KQk&=fh*e?_3c50+^aMP%jn`_(=P9_6vn|H#YA)gZzAx-Xo~fHn@Hm zTVS$uRLW@IcTNIj{~Mu#RN5_6J((5iB5Go60T?_P>L8B^QJrIC&4>_A+P?jeiPJ#X zqcusM)Xen|uB%-HY)id|sLC3qI&9hV8DpoA%s%>6(EWnrZ&g34`Nd{t@hF=<2UjZU zI(p~coNTtVj%U{8nF4BQzBbPC80=-cNiv<$S27_oH<6isJ)F6X56`6MwO$*GzDUwq zV<$0|&BORdV^xMO#$VT<9WYtg~uTm zCor*BizXkWpo!(`enKdIo%9?=58Akj$+#l745a+6C3ib;VlF;}E5kp9)@=w# zC~cmDI;Y5Xc=`6R5I$-PW1C}RL4ydu_iaoKK#B9n{ z$gGiylt1P89rT~n7x%KZfbxr_Ke}1t^pCGl=9gBaLgWh8J|ihQm~x9k|8&3YiLgUV ztR2-TZUc=iqNQ8Et6K^m?nvwC=y{0CzO{}Bmy;#c*j3LY@=_+Mvs#wAtb@`iw-N>| z6eS8oxbMc*Rq(6eBC{qR@=e^D(NM1G4&}yh zGqFPln;)=3q`5#D?U5~cEoERErH@MAL!Mxzs^6=JkTh^r!N1bLahs4dv3^{{nX!zF zMVj2ezS^a~Li$n@Ex8nmDefM*R;XbT*z?iHAw^aK5Q?AT6}&~%*U;t@lIQSC7DDXN-AH+K=KVnW@sN@YgtyOr;m;BHHEyQZ-Y)4Z(gGgpWUG*bI5mQC zh*p*Vo(7Kh{_JRbw^!Kpn zu6hres*%A#J9?U0bVMNi-ZCcry}0VDky*YCk`?o#8&?neb~A^@=Qqc%v{LXzEg~9s z2Q7>&=EMX!@%yn6t`6VEZj5FDS?Mw(& z?eXPgl6AE5;#T&Gu#OC06brvSL-LwphvC`wveU!zMXVO75$dX~fJGjaYml}W#B7ac zegYXpF+o6COCFRa|KGa@ic>jEV;I5vAB2V?Ur9fE74)KlcgN{ z%hkw7YrnB260BbvgQ8o?*9!IC-sK2ODoL6!(&iBHm+9!c0DVXtC@j%}=JMn~ir$+J zNqc~FW7%$Ba8-X<@`(SiUYM?i#yj1{Lmc&;}b5`6_B-nIlwC3edY+fV_R= z0mwo`+GfF}WP+DLD=c16WwA4dtrMjPDm5d1VFR~=tZ{$bR6%ymPbfpwJ^fJT)Qo07 zL^YqNWA6||V&tab7Lgdl95_Q!uK$@4^``COCWyjJSUWN@4&Svc*raE3OMc>0<5N9v zK#uiv{akMWlFIw7+eDMTx%7kn=hdPV(x2LGgHWPns}WVx;`noGqXngK{>Ub5E;Cz^XlT&#ANd7 z#uP#{*cDzyTp^sZA|wm3(rDfFcUzMmNp-kuFn(#VcodpbJ6{2t2s2VUk{6j&`a1Oq zsx%<)`ygKeqeVk=8ZxkPhQ|A5khvmi4lRyewWZmhENeffX~%!bmGp)dm1u5;WAbTa zJLbKl-@x$lTfS=jfwJvqM{GWixa>wMq$0GG_rSpqGRTktnp+GzSDb*rsQhrb^OyLL zVPW2zV?$ZsQ3v$@w?<;pM$F6jCkN!!B6U;~K#!syLPr1xn4-uC`a5AMt~m{(by`?& zi(NINH9*AhG@5q7O405jWh=NZY0ckOFvu8KlR z+FrM`(ZSOM4b_vGH1v-_p-RnmnWf`~6#^W7l**(jk6a&FZ@5uW8t|DBQG@5tsoQb8 z4OD8sWgj3)_~#Aw*H+Kl;c21l%G!TlSwj z8xylCE3ehH%TI>S9D+js7nvN29(AWVaY>v+nJB4Vbs(EUx)8;&RM$n3iW3@#aDGZB zO4gA*s#Jsm|5S|16dm3X9V9(xWvb+;X(o_-$gMfXs&#e7`ve_+S!FAXd@<}x zc{jTQBW&!fW~beFk+2z_vS_P(g=0L#>%Of+A*@AUH$5lx8|Lx9ytpkSnxNjNfYg$5 zp(x%X#~OSnw)_^YY(`+j<27aQ6J}nrr>}qDe1L$@Y2xs^!Wpk5CzNo$%LFVO{c$oc zvh81PD~>7WoF|(qz3{>&Df(Ct{(FtV?6t(v57hy4T@>WS!4l;!wJUiF5Qggz!f3@A-{Z=pVe~5$~2-ajZ z@Ws>Dr%29xeP2qv5k;I|I`MV>C(9`&Ry$e!;~tlWgqHKk+_G zaOIX5&FzoQ{pdTs>k<8jdEbp$+C38iDpG%vYnJK%8J1vsX4krZCJ(jK=~W?0WVQ2= zV%9Q3+gaFLHo0RJapzk`o9bDkQ=d5{$RV-DX2;97Y7epGvht3fcTCI+IvG3~5p@`q zCpo?NOCeP7+3oeU_Oi-XF>x{{SstjnjY_4*BJV5ZjeW?z4-nCu-5fPOwwJuTOv)SQ zYpsIfZ@HE^<#Paz8q02y85vc7l*qSVLgEzHTnUa}+%4nNh~of4zhof(R6%#o5@YVG z{)r~tl-`FY&Ll7bSvk3-XXUi0m0ITR+oRyKF~WZvnj%wc{N<&m&@l2 z+SS9IZaKAbRZAc7UivN6_ae@J^ctDaG=A}Y5k?EOc{63L%3P1DQoB8C#-u_qV}Ew$ z2LuJ~2J!5HTVX^-ETLe~eN{UXDC0MIL#89c)=@+G2ZTSzr1{X>NeYrB-K`mvf7-RU zKfN*DXTPG#Xr3VErbdk7-a_RAK9Eqa6}!)UmYHRQ{`!t5+ECQgzKtQNm69j&a`2ZY zMj_!+YkwST?$b{@v^8=p!SmprGM6sgPr5EarSwOGCrh4N@f4)5h z>!sJ~*(#D*WR8$2nL?R|-+9-5-o5wx+wb1*aeV*#9^XHnr=y;ydoA~U-RE_k zpYtB(gie+_Xou%WU_2?mL_g8p&>l$x7O_(#>hG&PELur_yRMFsMF0q_ewzJ zfAr=k{&)U6|7emUZA7Ot(0I?}5U$%93>y*QRHN*l%V#M3%gdJ~0{!_sLVtd~eJ1%g z{rM>x%$oif<2(YufY$#~GIFD$9^b_H~VE;PF{gX4%|BnCi zkO@zbz+>=qu*(==&?G);`^}96k;)Fw;YiNm&1!KW78L zVCY|_KmG60hJLfuVBu>Cf6CTygA-C`8F0-0Vz2(gHvZpih^lHYfvgG`BxZC2`pGqO zI9@%|(bYGMwut!2?<-r#>py0jjfr8VfkYVnUfmBCXvMSfgTW+IV3!6L?verLuKylm z_G9i>Ou5e&{7e(gUhLYtn|N;tCk&y`uxTr0nCaO z0T%WliP@TY@);!Q(^$gegCc_rSo0anh7&KOwt+Ev(@XI^?xu(}2YJqK^##PDT?d`|6da(V0Z(r+et4EW z<%*k{WLRst*O~>=U6?^;iCT%-4RqTJ;o!CFIzSiXQv7iG_gVNALU9-K_`8t~1fdl- zU0l40)U|(k`o;b|OYX;<8!2`g2rNkKTf+M=+P0BOm+2TqzGx!Slg;NIo?!-fs_w$w zVU4{S5Vc6WZ_!&rA}L?clbGg#ll)cx$@Wz@xU~u~kkA+hh<7Ulm~$Z* z8=@Yn@>u3OeaS8ggizN(J*q+63+4lD2p0g@O(oo)ub4GcSR?iYiGtSJPQW^ZhLx zX&3;aaIm^~o`l-&ZmzTz0?eR=1jt?-gZ@?>oE)-eenE459gN$|VUnZ8%p^@a; z9D-H@NsjvN0ArNAWwT30g;u1#NS;)-43f?TGJ@YhRls#OU#_Q}oxg$j7aj9V(pL>= z2f^iKm*JAxc5eK|OQqXQl^*bPmf`7$YaP9toH>H6wGVWFV5|#xK4fSZoY8`1?BCX}x_$Z%cHc`mene&FgXJ zSmSb|&T$FKB?_{;Fslcuv94)^v@@$+Xf6nd6VzxrN_V>b1hYDuOUSn5nA^eZzQI5x zu%BFmH>%S7Q$y)Oo7zQP$+E->)d+p_RuE*zBFS7=9m7vj!qY4uv}B--0|`o=xLWw*xt z3|+(TbHgyPKM=8PUKME)nS6iG6p-ClYy|#1=_V+A3EW8dN4ew4p^ApFXg1>OA$Ia+ zl$|M}T0*o=jI4r0it*fRKuS`>hd8ywawIVN@7|hVlH$OAsdAg|eU8*m7$#F6M;}F- z-3E`1($g@r$p3LXiee}pXjB8$oNKdP{F6-)vGBKfFxPg#mW36Z6G%iOf?q)z*rx({ zv-_EE?Xh@>ZnQedwjky_6*6pn7y}>V6!bE<_TllfYD}Mjz=L>*AT%95!@2?#RXxjR z=XZg`RsCT1LG8*Q?1*EHoYGSWR3lB! zhvC=ESTivgdi*)590CmdhrCJD)##T;zd?ePPRG^8U2Gfx+3qYxmLNX-dbbj+NV1`T ztoYY^u4HB@C8~ipU&eXrY`x{`WeK7Oaxw=n%U1yGsR)HbM4G@L%;klM&ffCwD4Nj2 zRwSxng2ly75ZYFCBrg0KF1OphW<{>A!HygrE<%Ny_d{KZWm7y!E*DKlVl(F*(sXBac!3{I9 zOjeAbXtaK)V2O24Ry4GEJhJac6Dw$i?hcnFaS^LNiYbI(H43bvSsXeYq`QkrTf(qm z)K*hsoi=|=kf_T;1Qb|1^wkzXyAMMA95#dKQG^zev@`+#?ytV!bih#}_UbtPyu!Fi zD(p&%0ivBj4e?JOkO)6VrBy$^(G~Q2lfQ)+V&*v;zB;A&4tdjk_YH=)jOKc)Ce|$~ zHsAnlPwrIrKgF9Pf#U=x4rv>&zSZ-fp0B4zrItGeW^S{SAu@!DslB> z+aYbVnmhO*EqlwZpA#fUW|wra&CIgI1F%(otBv0j0>_NA5{hXOwLVZib(6~BXGy9g zwhHm)1w(lZ_($9}3MIRVy^6YNro`-hf=!3uaM(%SJT`rTYb&KlR+Gf$IALuvrH3v( zlc3`=>{6e+R>suLyiNGbgqZIj#ws5vOF7lUl&+iUC?k7p#pLmpM4=pn!>!m0haPps zFJB84&8{)GQJFj6+Fu86o~k20z%>#{ykH%3RoToV)7at32Rm}kb73MVqgVVWqmhPC zk&Fb~r@ftrvidDCt`i~7ohPh`Hb)}L-aVC6Ltb|-^IA!Mc-==QDWngPjz!d4f|tYY9vAIjakJDXdbQLhb(cyg3pcT<7Ce>rI(9+Z;Xl zhz2Fr^;CofIGsKFH!hBxB|aLmA8_nEwYe^VSO>k}nP}fFF!z`rjkUr)@Lpf&R#F%# zq8p5w2vJfryUVV3gf1RiAV=sZcJJqlFDZ0`DEf$)*8ywEiv+Kw^2NMXujgsxy3*rS zMz%uz37h94LKU8^_}Iv(^{mWl;BUe0aMSSPW4Mp@X$oda?RqG9sr@XRRM+qxTk8;0 zu*4LZL<@IAGuSaft-Q*=EVmUp-w zq)g-Glg+1Y|L!l8H$M~M3^4EIjjTDC-+lV4g3M&Uo3!erj6>G@eM-)WbPDV=sN>B) zJ-?~T-ZvLanZFr-zU`BBb$h?0|9;IGVMi&&?>5zP!EmOn?0!(jm4WtI5@fFd8S^WH zUwTuE7D)FY(Yo+5s#Nv%Q2npsT4{;-4l>0wkzTgX=ZalJS@y@sV5iu6(C_)Dffdb2 zqApgl4^{mbTbmD5D(+pvv!eU>}iBdd;e`7}qTeJb|FK2H4pI9hIs zR+oXG&lxv<|CT!{1R$!;pu_*6>Ik|TRoed|iHN5(XIS@bmxV`~OAW2OtBlAQ{=)|r}A4~h974yGDT(39kd}!GzBTGG*We?%Ib0Z69 zhb=fM+FcU9-y*ooiMK2`T{EtH`qb$eKe*49HBFB+A)}Tj_3@HK!?BS9-R0h@+l!^c z{3AO|#btS7JGTN5YUG0>I8=O5-H6U>hb?LMvz63TPBhT|%Mrk&=WJ2ns>w%`(2k!t zhC?~^_Jf@boB7TKg;TWXVpp>70D87B-co0q}ij*jU$5h9pcR37fje8GXY9RGfzh!GxpATGJ{e($tQTGxR7 z2hW+cHGikC_YXR47WNMku5ON%f7|uw;JLC^Uq7>AglcO{U5nn{eOXwVWsy&EzvPA7 zd~coNZkp+Yi(UVq3ua-Uy}tU=ay)-sO3GCIWoDX(P47ZG3|Cr?WEs7V8Gh+Iu)gAs z{&p%N?E}{Y``M;QANAJ^Ls$KSz9o1P$m|jZn1`U9Jt6Vg$eJ9i({e&irT2t9akS8) zpEeipFbdUq<71CftT}U87bFyu2jN{>1tC1qpZUjw9;+YVN!;|!v>D%po_67pI=nvl-e_F$R85?K?O;xmQPJxa)#LnBWL7O*ljFQ@ zj`hdsH=3`LdOF#kT=VSzwLEr^$2h7boMyN0{@iaVp4O&Js58Q^FXL*5`%0Jj{VHKY z^&=Z|QbsNO6`sFD&TJ~J%=^n%6pinv;1Bkb=H-mGB(07HWfC8kk7VT9dBbq~gRG1G zSNZL=ucuVq>RDJG+A0`?4Yi4T@Y((3->lSc(= z*DG&P_RkM_+57kC5C{&+KufnCm~fK#EnBO}VGHsq--EJ95&)uEc^*;gR3F8froDvbw*CS@Sr-=`URylD={ zG#$U!oBkV`nec&LxghDj6lo^Okho}neWD#9p6?iY$aSRfRj(?<76 zicTu;W=U~&=}XSxYdyhdz_fO@)Jms)@VpiRHl1j8Ylk1#Oi%VIK@L7ceO~TrgJUNs zOO-E*Xd!_D){NTpZ;i2vyT02TiYCl$F?c}>hGVxztym4nGQ;`X-pTbv=wYss1Wx+= z5R+{ddD{OPP2ZJsX^`Oqfd*3&{CVZ+o8FZtY0g81!M%!lf=0}TQ;%&7>k#j3g`AL*{QMY@sB+gkKBcS$M+34yXZA3z3lm}XG7L67 z;JoQ~Q^b@Eem=S@#o+GOMrUP^+d6*I{!Ky(VgLwnJ)BBbW=dw0mII|^P51CK(p($qo#c2Gd_{<+tp)E>SS z=KGQxPy66@yh**b26mR^WNoK7tdj98*ru=KN(}s_!pW)-d@-gIe@RvNPkSaTP_aU| z2fkk_s*l3Gy8%aqGLVG5cwcv$W;{$fU*VM@h8w?jBFtbm6^`7FY6KD_Ef0khm z@auk-DOXVbw~f#qWQf_H#btN&a{n|mc-G>wXD4@bHL?7MUvj_qd-Vdsx2dC)lctMOE0z4lKiNgC%xP>#l9IH zapTRM;R}ceTP?j@R4{&_}Dn%z!d)+f=y;yt_U#C$bsC zExs!-N9+9*jq~gNy%UqY$$ZMs4(|ut6vPADz1PGrpM;`WTl3ML$t{A^NbR3hlI!h* zzaBDHh6xjCD@R9<6A_)tG58T9bO|x-N(rrL)B<5z{=(S3!Mhef=>y|E&7~(g;jlak z+5cW|kPpcF>jQpdzt+qiz7=w6)%!-#(1-@Y;OSbl%w|9nCCs%v1C_)o3bzgrvS|F||7y)72D8zM)pJw;=3 zny>%3j}BMo_iUj%O?P^xic0$mRixfUWdbmEX8oV446>RB;Y|K#H7nlzht<6CA(gIr z{|Af5i5zUxTJEv92P74`1Wmd5qmwV3kXj;77!{Tbn{Ep}BoM6}AcG6M2#eaBHS?*< zw!v==5o)k zr@X=t&xKE7v>A=9@IQIjwflW`ceC$Lopy3|=6Iu&4kLE~}l z#Z5KQb)U|&ceJpx4OO=n=J<$CRWGd`c}aYe0I4WflLMdSN(IswJ(bfoB3J2x9pR_r z=5{~${Et=jcSnd29f!AmWbqL0F~bqQCC$GT62AW`B)ND0xsaF+F#1jLeWf06^OL(z zOKtS@-dn}a!DeKqVPB;*jQ`(Pk^kYH3{l5UQ_~T{e&h6=h+o8%1*v|C&5AyKPlHNY z_g_97wYaUZXdG;=G5t94{ZY*5w9S8O*cAT#iX=r&LMTAG{4}v1+E-?E5RK|zfD9aL zW}M)8EUz_GhD1S#u+vixGqf9TG z^f;URbzKc6GUSXS-N=*!r!7DcWga%fsN#R4J@({B(TZ=pL)I&QCttKRq7m|AEMgLg zKqr+;Rr8ql%g_^)F9VY7kSi&=r$S&AVF-}x8-7xdj&um$CxO=VDr2PZBMXCUlxc$W z1P2t}Zj~=Tmkmzk?Ekv^Le$jm3D0#SIvX=5A5O$Vi1WLXoe7CB(eV`BfknXK=G@7< zCE!G8GzStTFa&CWVF@LpP^8#u$j_zGJBaHaSh2<;Zd$E4-qX=fbYGbSiS2JrIxh?g zq)6UOy08i?wl*pivFNFLDWV=Y(d8QTRIo5+-CVfynO5Zr21gTRk%?(%{QV4TB} z#h@EAj5#NBxYBhl2Ci^@ofoY6_9vLQVW&CjTQkl!Yz0ps!3l1|g;bThKR)3qXc@Wj z!oM=q8_L*VbB=;}9?5xSsyOI`|D0OKsf7WNaQQ%?z1pl6zy!O6D}V8sOLk8*iVXAt zG3Nj`vKVBR2I>hKp9nf3xz>0d+Q1J*;)kNBi>cQn!6rJ1YYTXtJOz5C77=mWn%|SC z0!c97OU{l2U0TpDeW|?zPBy$O@{i*H*k-S?2i&%=&@$Ca4t;PYPZ)7M;MUA*28B3{ zHacYZE;a%NPntgxu-F?MuI5Ujq+W5!;?kninnvpu_cp1JjVVPtxmC zy|?kx?SVHLOW|O0L}x=5{tT={LBSVN6!2>m?QdH!5QgO% zjMjLSQuFF+JZ6;SgW1mGBRIk%$K&A3*fL7JCm=lhEe%ng1F9ePRK!IN(X7*f{9mue z^OnKAIkrS_csA>Ns&k+Rpf*n?V#?cF2M|}~*EO&xv|gVCH8eAb;$z+gk+vZ;Z3-7a z_ys`|(Gtz_@NuqTeVv6iVr$m}EW8ftm$#k;hl9%=0p~&ys5^Y%iLb&X8;c&0DWcjy z5jtnd$xnKH5RCH5sa)(vPI+jttfSJ2DF(qc@J2j$e3|WlvfJA<#O^KIj^GMtgS|UW z1u+njP*Y%yq`Kh;%)5(93APVN_Jffh8z|vQYzO!%cb2Nno1@MN`tSRA&A)sz6~C4N3>*zHtD`k+epCEk(Qpek=LlyV5us^Tja$#kBJNjX1}P^yy4Y z6CX2Vib9N}ZeXvN(VOhSe1`|y=oD^*|hIn83k9+CUi?0tD)}(r!SWf5+c1H>c@n(Z{2yN06v8vv9mWUh%Qf7)Jn9;| zt+4Z|Plb~trPvX;8rX+P2q>#Tf+=@oVHJHEIIB5d$jYaAC9Ii!hv zOJ~2T68D(sNs!z?+UPa_JOWkwJ%>0*NPCBEo_7MLc4$nZX1&Z)HfhB*>p) z?hch)6QYa0D-6olz<0xh+ z_L38Xr?HGB`~=Iz5>jSRe6rvk-h0C=#Y#WUS;A_3TJS2t{6`ci0kQw?ihPhmG4T$m zom_Bsw7?^~cM`taR@S=M>q17vAvU)uUxS5tUSB8`$4?Kl1h9EmJI*Lk;2nGnis`3m z0yP3^!ihN;p{DCv=kK8pNNRvb}(B1%DO&TX{5+GAEhG&j@a#6_YdlGp+_v zM`aSs5Hy2#z9Q-vq0mJK7>DJ;T-WC{la!s2qBiA8NtsKW`0rppgNWH8P)VVn_ep_C zSrP8m`zxIJk1)MZz?;Y4K5*mv7JT?<1t@AN0eze7csm;3%zO>UISfxxLv*kdNc3k( zt-{)Syw+xj73!0=-jQju&s;_+nl)!OV(3eFU|X;(r^QpgCJg_&j4hUvVYdjT_SWC> zd1XWWuMg$_;^^G&#sTLnhDsY~G>F@-|2gmH^hX2+Pdo)zx2HDFg-?(hT@CDYvM5rD z6Hx*lOCw3fp)rNcc$t~Af)`){^in6NqV2?n0P`d{n<_Ytyl^B#^;k9cW5BN5VmqUe zOHjy((W3U=FEgkt!2u z+&Jv@3xgy_!6J~;9~has9VUll4^dy6(?YdDn1BKZ@+EkG(QjH}HAX5!+k0V|5-)`` zrX+v!;5CBNs@^TWliL~Rs#n3DwOdp=Iybb-p>E5fcA09!HnZksB7Zv;7G#6x0xg@P z(*Q?_X7t-fwe(37LL=uM`J#U?uTc%)(YEtc(+#{8WuQ_oGD=~@H%utdwbf< zi4mFI^(5mdQ51BM*vDWQ+Jkuq+amXchT1TcKHQ{Om|ZG@i!4I;Nb(x0^YspL$KD4D zP)~S!;9Z!4>E5T=xcK}=tXx~OG6ZQvxrH1y3jGBq0v>qLY0QKWqxl^)C9IUzY&0b^ z73H+{v2Py0tKjsJ!JS*0BC~5ci)*rcLavj6eR}F)PZ3O@yCqGFn#qWY4~1M<@;hX9 zVV~?XNu|q&^H-Beo5fJd``^INz*@Jw?)IVI^e^Y?6+Q{xnzJd{5s8#7D z4#jtZ4L!P9#R>XIMRi{ckKaFpd-c_NNvHrhn^0-%x(Q0rqiEAl55stu#y(?WUrtII zTaQ2NNQ@_rO3>Z`_o$1uRFecpiuyj%dhjymQ<-ZKo>nMf{zRn{O)SLya!H_=QBWq@ zI@J3L;b%B8Uz|L#et4gb?s0`FC0#5kEZS~h_1ZhPqCVPet5+&4)t}leMsyyn77vzQ zLbqM7!nvpu$kQIuoKzj)!aF}IbRj+_cnj;)T6|rJ0M?5jj8sw*|JIMB z2;qr%AP0^}`9}tXLN7UU2V__8O52JdQtvkb+4AqgE#zRr({`PweJdAh3THWCc5&L{ zw*ZI%yj&QWxg&!jZi-v5&9iVXU*zEU_rONDs+H5Q6&&B`Zk7YE7?Ot$l(-e292SIJ z^3?k&jX&2z$issO?Yue*#{uVEv|`)acaL9FJA$`Kc_FXUnQt&J#D3H3*+CuvxptLE zUQ?$Y*Q5bv*@CLU=JR?`M3&Uhl5t9Gto};?4urU0NPPvo>iiWLsF@Drr#>6CASr&z zJo%0kj@Py0Y?gLrc2DLZ>rF|_xew4FN?bGrvVQ^+cAEHDg9t}}xp3cH4a_VY8GoxSQbf#IsO94DsN$2)f5WCh=ZzDXkWv6Erm_?! ztw&9cXTbBFAcBeO;Q}QRIT!&S?A|pTyiO9gxa21zZhy|u#(N~-f@CJt09g$KWd>=$ znodwBsQ*UTe?uzgfSyfP5-6<#jziFFA0arx#3v_c##?iF@)0Q z!>)7L*ODI(v=_>rhYGZMUC)>rM$SHs3B%ppiTR%Du)R2JN8AoO?@mYLrv|vt-qg*5 zr68y8hGW51LQshBAHrqGo&4}H6T#gx89uN-$EuHi%yk=OfJ*#dYc_+RO-hyS+jv$9 z4+O+|ohd|SM_2s5DlUHe)~;ET3n<;?J-K{hs0sUOQfcpVE^XSXk3=j3y0zVzZTy)6 z!9(rdHio`?4pW4|tSMQ7zttTvGGdIESnluk`tT9Vz)OR3Fzq9`y2A5Nn;`idKV=iK z=R`UwS|2F^g*4txsYnT!b*W!?@@k$|#hLN19cVWfR-J2S5z;}z8SdJ#OCBZQ6lu$F7T ziwvKQL0dlxy72Ttu2d$;(=XSZV96aVg}-lnvbV_+D1RpV_jv&~zQkcn0#P(hwI_aZO|<^>{04AlSj_Kdd#OAXKF8>{nSo#?5?fPL zUO@9T2O~OM6Z=A$|AC*^Y756Sg?K5Ggp9q*{fm-r)*5P6$ zn~}S3M%kg~jE0t!qq~v-^YGYdc7(qO{MMFq=?7*jU*DruzXf0NS~b%FGqLuhi;Bvr zV!7-QjFJX*z~&?hv_fEm5yysOkCUpsH|)8I_xK~osc}9PIcZEl&Lne0KT3>BJCK&?|q|3TsnOKPb;zPVwmgAjkQomqP*lH8F&HG zqeZm=k68h*7q?wt$J5lDmGsk#;ZWg&l^q9Yk(IkCQ0KFpr(2VJw}7Fq`1p*-6tui* z)$VsYxC0?{5Rnk9dwt7zXa>x6z;kt_PqNO4yMBx6L<|kN)UrY>5>9feN`bFej`uE* z=BGfAkjE%B52+F_@P%OWvQ2vIHDTk`BNwc$018M{SX>IJ3tB^?kVisPiXf(i$IhmD z&CvCIhaNNU*gAHvcJpi4DxQ#>^?NCRLpNYe(|kt)IgqeHFszFCH9wGl62alxf#K{H z)HVG2E)NoDfxy)8>9nH`Ca>{z!253jAeRl8p?MB(?-NZUfsApqZ&NsGjsdoKsPANjDS1c%m(H}p=m;@L(Uk+@AZH#42EKqr2j7_ZhUqf8A&wqxv z<38GVaji7EDdBrBq(Vr33^8P4&n(>_y0qt$a+OD_Omcry2GCws&J{2(G$r!H>Y#M6 zcTi@Bi)C@?L&Dfn2u4%@StkwqC99886VC*WtCF6#{~M@>;FL7Y(;dlL&a<5_#|vEN zdf@3X5c#37pv|q5ZP7+4#xe3juARks^d)$Al^AM#X5Hq5Y@B^PWq8OA7*0mY6 z0IsGMqMd1yh9AsZVy?~F50wC`NmsMPq9ZSzQkC-K316^H)cM7;oniMKP(%$zDY3y- z=-t2H`)C0rM9}!%p)Ig0)g)XX=RH^4xD7bri+A!^*>-D-%SQY&L|CGuhbrFt{qPvP z?UsYypw!6%?jT9>$I{S6;i*M*-p!9>KUccsn6=?<9+3SA?#XB-69X1u!JRjJ3}Sp>k>xsqL>JyP zB1RE62VoT2k2Qx>ljm#XW~x#qh5$q#X>l2ynL&_5fIAD!!*l2GU%@A+kS-oozmw9FU+%wO1zBh;UD+P>@VGgxefKEEQ}g zmE}irh9Cq}pK1*;Oh{ThD!d6+vU6gCM?h1Z0(2nG1CpH%EZaU@?Nj^ z+bd)INuUu}j|wyXT(8J(39a+`2Hk*1Xc9M@N`!$z0_y&3204(T~-y2Y$>FNko2>^Ht`-f zWG&tN$61!5D5SXm)07#st7y#pdt@H&^V<8ZVp(?{`gU41uW0zEYEmHe9Ai^;fQ_{y zRaWK_YwOF-M4?#{qfk5fQYX$Z8#8TYmm=_F(lXOVcN*K9k!NPvfIl0}HzIT!z?#t`bWHToGB^9cR6^c{7X02mJivFr!=cCis!c2MsPniZk^6daNCKh@u zLLM!beMx|k-2TSG>+#5&j^Ialumsi_<_wySN3q0FHb=DU)`x9LEW0U7Pvd(yKZW@L zIQRnAW4%QY^V*5x6Lin9Eg#Qkbd8hZHKdeBl0yZ{P%)e0=ZX*YUNc0Q;*HD_(SZyi z&axNJml9>W6WC=0b#rUHNXM5*_l?{L&hHbx>CEi@BL&$^6F?2h*DGEQD)wJ-)ncXv ze-5w+-u(AD;lIAO_bim}rk~Nk_d&r~vf213oJ^wayX3d}%a2aLB+x=6v(W}X(4U1e zBO4XIJMKX-oJSrlGy)xUEe76z63J1bl0itQL9m2#KK-+VQfpM6IV;rOK1m~ zPF68^N~sfxaWMVq@fL^5&kOs`Co<)c*~C-DyFWjv5Y>lU;Ed^xVyH?*1&l&tO0bcm z)gD?;LKala9-%ptw#dvqqNPd2qlSpZA;2obkrK59p`>B_#H0s=>6yz}H)6|1czq&I zohQV7M0*Q>twq<5vkLnsD<<_~ZrNT`j(r+(*5`K$a!*UT+?G~8FK($E&Li|R3zqW0 z@j9pYF3CF-`r@A@{4|@0K{)U(&K&;dnl4WSBW^_wq>mpj9VIo$jJQoxygeeGP=M_% z&`}Ri2Xgk*bb?|3f-qjr>=fEw6WlY6&$XtYeF&JCMZ4_IEZvr6Hv^-Zavw}FFVD z!Yo41moO3wKO>@sy6SXW4r)rNM9l{1kHYPbWS`eSk?=x6>f)jMQr` zpZg2)D0wN3g7_z0jyYy9>gnSsrovLv<)9ikUw(!`U2PiGP%89wu1bJwe9@jcD>`u;~SYEA(H z_6LsJx9K*oiRK#CJc}<}m}Ew<7QPs~=5y!*ThCr-;`y`DhW@vW7I`Q}I{g3qP!J@|qlZPrmA!9|0S1vtV5#)q&wBi&AtEOLZ zJ~gdC@b)9BHrzQsz+GRF&`cw9mkZ0;^sInu9SZ@B21|plWPaQqvX>cBkBho#rxLJc z>{}M7OJwR{Vw!%ggllc8_O)9+_DEc#Krl4_ajx!bx@|i^(R#3zKa?l1TFLFxjc}4ULi@Eds219Lk`|H8+k+ zU9MD6$fDhfSUY%tvQv&|7YR~#^-%&I9bL-xNp6InfRGX!+tr!;}YXTTSStu%qt zhY+unVZQIC=Ic?^F?fChLb6@I0tyB_eRPv1G$FKv0K={k^R8myW0wx&I8@FgNcu@~ z>y(-&^j_Xu{*u&|z}Mn7V8{;)2Vae67;U3aQT_GhF@B`StLn%&TIOra!lnA!n^QgT z?n3l4|JKCPSyrvbb}?dJf^BP8cYwLj)ql#=dBoTC=b+P#AGiu0?G^KYNJB_G;Axb?SX&3qQt5~7dCO`w(3>^V0ST7@P zp2%c>#AodQWfw!r(K7*m!}-(A%Pn1!2N7oW9Qp*&PByx<-c zy_g{8VUeIvo*K`7EdR#*OnHNS!@D9a#Wu_BwpU}3AG${CZpzS!yok+Gh!<@6#a?q+ zzD~F5wnU-;b4wkus8Y&B!+wVm?yfhsS(gfSS4Y$FmTIKHn^Gf5+!Z^l(5Z8q?XY6j zN_On@HzWBYG_c^LS1Mfx5$WVYjPtvroOs~~>uR{Y&^8YY^%!i+s219jx6J~RJF3}eu?XyJS3RYmtSzJyn#E|;eG|9 zTcevdFwe*%Dj%{Oi2bnvDYgmIwM%dOQe0W>t?i1nsQ-s+>NF}&GUv9^J zE;YyXchxd)e2LXE@VvBpkUpch$U5rjb|eAShU6STt3=+CBKn3^C3U1n?rVwPLHWqo z6J*Tiyua(U=l1#Tn>~k@rw-vT^X6Q=gDu8H3lg6R>rYJ;&lwx;PdLASCy|rPfidj& z-Pj_!Qb^P82t>{lx_s2WVOkl6F2$ zMhe0E0W*_KV7vV#&+Gw@++EuTQw`S3tvzm%wwJQIPx2>mc)Q5`lRjSHs~@D|$!JT#3I+VpJ;CVaM~SuaHDS_oQVjoYAx9s4h-rFR9qF zn+|cmWV2i^5S*-)))KpQlK&1zWUoE{odMr0l*{tI%|2Tlp%vx|&ZlHCY+P2GWG(A1K9 zJPMRSi)|;B;%Im-Uoo?uO3<%st@jpEcc_f?P1G)n9_L`rr#mLsSnFmog2fc&raHy#NgE@k)r=m4kqwtul`pMVp^M>`)poUDmjC6s z;aSZVt@L77uh)rY^*Q$oc5L$Q-$!(w6O8oxUm(+hm*@_J&02S729-IC8Px5rDlV!+ zn+kvY+D>PYa5E%W02>bzZ>l(t_Z1M4gL@OOQfuOs9GDBQa2e2D^{qAbm0-Uby(u=wmPy=oxZHXw)PA*IcJ_OoU(=ua z^s=0_K0B~I>4J8KiO~+AU(Pa3Y9v%|76*BJkJNE#^2Fa3ek98A+5HSF;kMW_Y>8#P zliHixM2lgPgtw1-XFq$ovr|)MHJ}2rI8JlLF%B-lxL#52YIi$!{xS!Q{=LZCgCgl3 zXDZ&+=&Wi)FW0AVT_c$#{c0V%Ng>K#?&UCcFn{WtQRUx(O72?^C+yYZjQGGMAsj%> zp654t;QsXRp9kdU+S}=J-SfXwqI=S%2@(9z2N2wQ{R0I$RBy-v%(c5%IG&*=AUts0 zk*me4CS9sP+FH{8?YQpBNn5{}1oE06KZ!f!BrO^_vagTRlKbt=5w_g=I-M09xHr4@ zMVC9m8}>*=m(~rat2w^kCDini%6#NVsOt>BYjT}y>tBYgX_gWjBpBq7urD(f z^=9l89}Pn;SC@y^jSuZfg11&j^i^+T3|=HAN!sahT(pto~nd zKMKjUExWMjz>DsGe8_O`dMSqB>I$7v2bi(u_-^=blw7bD(o>~ekIz`vn~2oyV~lyb zmm2F$^2P1i4Q;7bdQHZ-`NC>tiR5~{w^L&uZnw$wrQ+oC<6{%NUx$`1*NUi}_qXq` zYWJDvU0piuVGV8`sXXCnP>rI*2&TOBLQ)W@1+8a&>+QJ2#?b^64kd`C zwQ3GWtjcLL(DyP6F#Gmq+V9xo9t9o?I0jw@0iZ{(3?(aplg4!b)TV%9OCo`|z#y4b zBM@M_GRmK(%|RGk_l!*~r(RT5Ql8yp=8jO~2620_&ss`k`2igE+fpj+6Aah)p5q1A zQsSp;SNIhhs^W{vimb$k%6A5M7OO?daY?lj`c7WCA3m)rq*)ejZVmsEyfLSs(()+C z!FF!wuBcxq|LNpQpJfE+I{bRlmD$b;IWJt$*&B^qZE9X}-Whdb^CA2^`HLZ%Zuz*H zQRUse4{GB}Bip7mR{N`;E@vscS6dk+jrY{MQtp7ctJ_~|ld38)uDHn5tEjH@))c_! z3#Jvo#?*a8=S1d6u1frbnBwTsqmD-@LivdnhDzlvx>8?G>y3HMp52?*OWA#lVWE=QtAt{?>G&xDhMQCbkyoY zu!6+^??(Db6U&CK0nL3sP(7@#Bp*4riB#1So`$x;?H?9Kn=S}SnWKS8R+8V z6qDIga1Q}y=^3WfW`B9Ydr%9{<=70Zd>wOf8Dqm4X`(Uo>cxa9QEaqbaNvDXf_-;%1?{sN?yjAcaC^v_fhq^E!@1E)19_BRIXn#8ZDFR z(5IRwp{t@>HuoaU|Du1PU){Ggk=3@Pvpu;Vcvh`~cBr+{dYAIGZshgl@vBJm8SG3h zwcUu#Y2II)r`AS{DoPm%&PNYzK!w#O!Z=hfUg~g^^}7A+Ts5Wt2j3WMB4U!S5dU?Y ze(AkTzj>ivCAD@Y8EeU_k5L(+F|Rm9h(DqSjm-?u*U_E5MTUk3o)biik%$?C%%bd& z7Rwstv`OR{kxcL-rPk3$@p9e`4Hv}HoB3xf?&ejF80IEeXtUQe2>w_xMzxWUi!*sW z>W${2I?_Dp#u%+%y`dN_7(t_bJ9q7AZ;}2j1JBn^Pkq;L3Xd0bvSbEMtU3;5t|TTv zF;aMZW=H+esFqY-ub=YceLp=vZSna>Iek&LmP!524!)B5@?^7{22Z(RfPO?jU$(fJ zx4SY++)+>?q9~HMF=4Bg>k}$mOU}@@!|5{J{2Vs(;Gq~vL%uya{OsnyJ%v(^uO$NA z_SN~1I;oBd6rIO3*MnHbcS2cFg7-bi4||j+)&o%S?~@)Eq&mPzhbvIFLA*#Nn5?_n zWQ7R*lmM$_c7eX&Pe!Z zzh#CP<|eoO-7S)nPL`NqaD6H(;8|*Ie`4pWhglSuj8I#M*CnDK6dg9LM{r`+r zbV^3g@zQHVYv_bEUv?RzFq1~}rPq81(&rQu2T)6(PNL2LKUw`eaR>otC?!yYuRfmw z-Xdb+b?+f-`q#!#s`3l0B_$|k)q8?47?3?Qg3^$7KQ(T~RD4K`fGkM7VxCfpl8H)3 zADheROI%F&8RdvFv9JAgyMvlgPX{7;EbbBvri)>8f#n52PVL52d<>0lvx6wDLKE3s zmdu+ItDRGo&gFFfM|CpSxf+$7V3GT_SJK=r zyUwx{^j_Cfd7SL4;t{Lntj4tH(L^qFcHR~;ChH4$4Koe;Nq&PGPA>K5y*pOXiJ`%6 zC@TU@(-YbyQ^|Wm4JW#_;Jp0Jwv&b>2N1gGPdK56Dg;f|n`J*gD?z!9q|^>(n3Hoi zH(9PhRM``; zFE5r*wiU}>n!4X55u?1gf8_zxE#F+7cXah$}!NH|c~ zNO;)V66=3s%fv$=-_jtCBk4__T}R4izn+VvV;k5wh#CCioBJ3spdz8|R*j)VQ6}Eu z{P0ML+su(b6?J>uz6Jd1xG{&uQ6Z>wn3TWSh0d6SG`cV3HndqCRqsZLP`CgrT2lV? z6v(hLq$pLpQ8*YpmRclF_$i{)3WAgrrH)CR!QULj9(E)gCsrk4x=&eN@p&1(9}ZGA zc<=&A1ehIiuRFJk_M`!CsF`aytYOzvoK$AB{-pQb?zO~&Y3{{=Twkihtrg~6y}H0~ zhG889%u4nf%rIIFT8}U{8nc{kZ26>CZ|xBjYh&1bU(kE|hbO1-#+rFgroNy#IacupP@^d5HHa%$^RE1e*9 z{_)1t>E1vd6QeQ%WsV0#X_-!*sT6fk-lLQH7J0|NKkeCGncJI@JKMxt8~-0^?;THd z-^Y)ibF9cHkz__>9F&!eD3q*_LdnRUS((Mrki9Z8ii{%bn2~T~9XnKJ6rs$BB-pJ(E@ zJ|5~YfJO&jbB7BXa_T9nlJ3`CqAr$5zMXzCVH5J9SxG!@@U9zawjF;!@#cBJVraoI>|IWI;SzD7bGHz3LjOY zeV7Aeg@v&vv~w->>@cXsqdS@UI6?@bfq|d)2mnO+(>~(mXT!+f^iK$#egdc&O`-Zr zu1fm63v0r?$$anaZ{^U@cHpK1*=(l8s8uh5ROI?tP%kR0f*@_F%k|4=QHEy+45PU(F@ zS1Qk3!=3i>Ezv#YwU{E?=M5NF{vQt)$Cx!FgL_S|Dx&EEO}SmPF*!*`;Ert_%I z7Q9_6n%Nx34c)w8TQT;dEvTb#i(txcSQIt$VX?w8Bn> zIWigiPkBPoTYKh-Hfa`=r1y#tD6d&9> z$zb9PBn_%1d9cYM`-PBqhOL4`NI$lcgNEu-dEoM~;~)9v66zsKwEjZ^;3XFa7sze{ z_CBS*PQ6l(0Ru0L(L0drny-DwwNATmBbd&*q+ zlMz`rgKL39Nn0gVy$SQpdFhZiA4IbB#S`Y4$VIw6KpJJhyV+iSu@?U?;^8VncNkjC zeWC?yKhCVZcDR5ihz_|+Nf^(g$Hpg;beg}<9z6Gip2lMAcn{C_JZAf(3r{R%_>F;p zIL+w6bnP{4j4~d^)h(tclbtEOZ7MOxt1pq1lSWb)iXUu5kEUYSg zROsD2hW4o85|lPo{Bd}$OR0JCEQynX4oBJv;RO>rx0 zj{(7HGcHjL9)|cl88>xyZ@jfu(&cK~blt2j&88po?|uk4HN(k3ochG{d;C~x14Uoj~w94kbjQ_bcQa5_{sK&Lv z{ZGHDKT9b7eD-VK$LhoJe8wm9?Q?stf7K+NyE%<#s0rH&{pt%f$vo)*RM7q;*Y# z1So?po_GkDcARSy+rp(Qr%k**63{~9;dTt)?mYn>m!QcF#k%+eE%s`F5xkq^4yv}o zX1lWp0o&6f&Kmc6`qTV<2@;IuEUYU&gO2CclbYO<2PAPMh(@7q$Q4-u);lmX$-bis)ak&a3HNu-fX77IA8fr(2(iubec&|t=SQtdA6?)hGgcdU9apW zPkSs=t)cU*l|3r&aBKp7l=6dzOP^e#DzDo#w1kOHv>UjLe*P+$OV|yl_waj}D-Ue> z&Nt>3W$2D}nw^3nW-ysZrB8&v@#%BahQKBpykFAs7~`H&IY^rkjle7u#=l_}@A);r zuPuP$_fo1QiTld2J^G`LU+#_pn=1F#QHq1OQSJ!Yv{YK=I8+>@aK8zy0+rMmkUgfa zsDc>xaxI%`^~%&cwWcbV4T##k#|rI@knhdDa8|9B?x45|2m-l48T3YCs<(h6#WYC0 zW9jSI<^~-LYDCg;D9b}T;=r-fKr3Z}X+qj7m?T`zzXcN6+ihn{kg>%4v&P56&?0ZF z41;D4F+A>y{!xBm4fd{H5=vPc!@lBR)&WW3U#bT21rYpp+pqOJg!8yewDH40q-U+< z*mcC#?lIJP(}@vsKOV{g;)~GrHe@EGfSZ|nxl~o+beYBJyl=``;F^05#wp8lj^=sc z2PIUOPx1dkLd-xhFDP`mZF#+NJzfDp!fIdU&(=mVXLhDUm&C zG7b3llUoZG*rDFA%DN|t*UAoGy!hHNc|eA2X4V3k!4Gr83|<$R!K=eC{AWlhGDIGC z{uf&TAA(D7lp6bjy?NV`%eg)i&Z&ZFqbSyUDS?3xQJ#)=XA){u`b*aj`tagIW2Tbh zx8*#(WZyjeY`b*a{^L$#*`W486!GSUgsGHU{7jdmHK&RT&pnB*D zKw~RBnQWO*9cnva_ASrIT!*}DaXk3zt+?`$Zd!c3+BYZh+|DyQ zir`xQ$i8?jlyFqx^_711WJXqHvY}^$uVRyj9m?*12AOy?ug1ZR4R{0IBA>yTT0CTr zfe+3a5>hiQRnqDOM85-c@AIx4M#G0Gu~AhNM}xegNNQhOIZfSgEPZi`Y|r#-N153ml82GN(G9ueb|B*6m}HwO9g&kZ7o3Ny&G#jJr1 z_(G(CB%I15OC;1vmSe7+a?dt$^a_N*Kj9)VIKch_PJV`iK<|U#e>cwK3VtSN)9+_a zIwM9BhblZ1ARsE!UV=GHDyvk+=hgfo~=)$&*2KWfp))IHjKmRmw@G7}TW zfQnS_!=%h>$_)xJcWUYqo?_fv_~)R+`&?C!Z&>bhs`wkKRcjIY#zzQenaqn%Zs5gr zV;?vK-sBi#z>_<>)e<`{6T=&>Js>nUk z2v&FqTO?FC0d^lZ==!+dH{MF%+iO?m_mhq}`^-7RFL%MLAO(=J!e?N5DQI$rWSxvb z0wGSu7WN+f|^65x+K6wdT)D zHKRq&=y8@yX75Kkpp$uza23(Q1HYvlz>|6))!?-=E|~95uxJi0iuktvQ3N@jl)8cK z0T}Z$#Y8BRkHFY()SpN6_`+`HM|>K=)Q$4Sq9$s8xBy_BE=GxNFxi*NW5Q*Ut?jsc zncxDNgv*zg!5<)TH859WD2H+|DlaJX9N}`heGa2Z&>D+2X8*XYDM?E&7t0Mms)8_o z>5M-VceROPX-vGpXL!Y=55I}caZNUPeQ{1(NQ#3)X1_h}?!CYQmu7}yqHM>9 zi#rTz3Qf)xmi;?qLQ?u2ji6R4_zYhD^^TaOo<$A%$xB%{IkKPK&5w;{*nG)Cb64xD z18*~~+SAp{C3l?wZiR>ZRTl-d=ayitf#w#S@!i_+xOW$s{YO71z9GSqq7?hJQECc# zcgG?vc73}?pN;Z55VFP!>rNqXjnP^DunB8RG{!p3O`wPrEsNHOS`MT>Nl=f;YB*r- zi5WF*gOPaYU7;c&7$*vV;V!jGF|``59h4r{6JKCgzuTW%0~pOuAHFDlo0tYNe6qNW z&P_?v*VJmccNVk0AYrPH_R)BlpRR-XE8-U7&f|ON&b~E_z4AE&ag-WLcZQiJA)QZS z_m@EOEbFI?@6VF+%+-@B-5rTE4Z^CJU*z(kU%O}7cm3MheGR@tyDLrit>YG71aPEU z0W|qmc*u-$L~#Wu4;NQjTS7kl%xeo{a$9zpi-~|_`>!OI3JgG zQR3nCfV4uXE~P7S_I?UFiy0vTUR1e1qY(OHz;|O=@80!?beyy%-+(pGG!zkZ3oKWL zr*s!Kw77ctnuEO_*b)~>vl^rRQS&!P+?tbb!@b;Umfgl1oJjqkj@6BeO#l59Z$|7$7-XuV-h*=?#RFf zB{n@zs`vXnxb)zoFbRJ|2QbxNT^xA+d}h*$Y^g1I;Nzr_%k`65gqGr402b%~CHt@k z%R?JxePPM>@@Kt_N(gI8VKQe{y@syleCjq`Z3!y^vEfe_qVGHA#5{fGXM=U)!432A zDNV6IZ&cDU+LrYAag=}1OwTQMKJ&!EB-`1SeI=#AX$sf3>t?_`AKx+g&yL^BqPMbk zeF6WvTkPs_LupRQmaVP$J?r_!k3=NV`o1OksY~-C#%6RiE7QH_w`9T0Ht^Qw zrCx)@@2eW3-s>t?ryC|;ssfvDsncwjb-c0@VAm~1u(b;EV{_GnEgyUQUuFe}(D^U2 zs>x)gWN}OG^A=yaJ1+JtTz^-xp=%!&nqI-SZ@Yraxgs9zkE?ZdIOICbTPe!gq;_D8XPXSWzha6 zMz&WTC2edgV08)1WT)XleT+7U>-ZU-qqD8mhQJvxtAY~M;{R2m2K@O$wcroEdgu2a z%J~v}MEhx-m^~wm+&l>Hc0LMm4Uk6^w`}vs0zGr2yF3_#nfzK)|J`@;^#W{$%gAO( zMK(ii$mR%1%IxNfGj=wz^Mn3kna4_t)N=kjm%|COIzv-%EjVj5w2rLst|0Mz;3iie z01ZycdFv>O-zJMs|Ln6JL$?U3dj3>|_uBF|-m8LE=Lhiy`~25)+Ik5F#7Y}w!_fT)*a!!~5|;TIi^nC}l> zC5^kJOI1Y&M{fYgk(>5gfjuKE&s+cNjr1?{X5?$`Ma3P_OpXK(U@f?=Jv4gIv?(CT zN&t`qv=3)AQ%(v&cI4X{tCpCriDtk=_GnH%QM?ZFluP4XzKEs|RGU-MwI!$TQ8fdv zZ5*2O7veXeLRuUR5orOtqzpJ#r7eNQ_3~t@`L#TwD(~)R=Q;Q<aP4$|mXfJNLYSiOCQr>lcoso!^A1rQ8Gh1$!?LX97)zEvp>Iyk5Z=-mR$ z@q|T$!3>D1D)_4ip<4k7ItPkHb5NF4lf>-}HrG@my9sN-!p%_a{}-PTH>YECPV%vX^ zT_I^Qa}3>pFPi~h6b#v(3F5{fNi_phmx}-&w2no{11r=`d$0@TjNsh-kGFmirBaIF zWc!FD38atlBD)qG*|(t+ka8f#w_AX6{b%FbZO!C=l5*^ts95`zak0q0U-aIcVyn(L zkS#aE7tTMr7nKLm;kVnA6ckX>I3g191kVUzt8^m*QkQZcM51`vRy@On`T{b@B~5ig`4)v4aOZNYVtZT}_DwK^2Gw%>C5y^ut)f^~bVapYJglX@$LT z7<@XN`UE>eLMO{vC8Jw<5cBv8lX|lEH8XKha|EBFhv_5hnW*ssg^aB@yj!Z-$4 z%eIYN3fwK3K!CX_YT1^R5CTliclIqi!~zy^>qrn7Dj~7N8#QZlGN+jJ3ANxCsUvnM zEE-QVsecrM3$=z5DghBvPAZX4-rLReIe^76a3mXzMW1z^=N4rZ--J-sN3c30^=w0&!kGgj1Ic&{d(a+csO29=@XFnMg z5j9wt^f=puHmE5v8GS3_GkG#U4=x--4k(zDS^owNZ@Vi0w{8wxmAB1M(=pCe-!k_h z{w5&1BNOR5lS4)NeW*(4JWYa(NB*|dh7sJ-1ff6D+w~J*(=U%g_=>4eFwoA{I~!`5NQ~TRz2n#k%-f1C>yOU73i&2w}mWuvk#D*)3X3+|@7~c`6YAL(fNG zb9TL5R}O5X@^>dihMjP9Qp-8?G03;JKKqE|83+e~u0!~czXkD$g$)KCW5O=1&^ON`A1^F5VKGW^N1YdkeTpM6Ehlg`9(Ro>XDAw68VaLK?S%lUd+z0HML-5yAnZMe5>L|={Do-q6IXW;FXvsB z*r47+zo!s30hKH)&2hm-ZdV2$1$XWV4v4*;W0WN9HxIkk=}*|3dAaLM*ul(HdWC%e z$3L@NgLkW!Mxg(ms)SXYy;ei~Lh9CF1W0?qxD`Sydq+i+>46Ryl+}J~yUR1p_^9(# zP*@i+62WlPps;nZHb?}gF+(^{)jri}N;3YG|ItA@oRht_l@k*vn8u*PtP>o$OPN{m z{DgsTf+~+HGyTEHV^7YioYwJ-)JhQK>1p2+6dD^WDjwp!wB`4Hc4%^Nc4+S8$o%T# z;*}FA8-S?0&rAFK%)Q~h;xlZOr(wdZg_lj*r$1p};+~=or#U6|j*_Im#hy}YyXPnl z+av*HnQhIN43*P$k0!lj8()T>-nH+kJ~_QNhmnQ&_X6$oGgMeKD_TtZU>V#qRNava zy?IxTw`Txb=ILuSb1ANU`}*&o9^zv7Dqn&h?DQ%k_>6y+;(NLFWA)lx&ZNP91_o>Q z!!SseMSpv<0`$)UE$5uPG9B>NJeQmvM2-(?JJ)wDoY+B%C(S_6&<tC*jfaOeVW_ zoayxdBL9;kMFQFa`z@Tn1oTjAyog>PC29>KnjBHA=#y}cR48(o+g2lQ`O()G`5=q8 z;x++aF~YP&a#K)u2`WzNIKw2)d-}d43UAGKb`6{dREh%_zmMJgp$cA0i0R51Vs^=<$&$PN{dJZEk(V8}Fg7c$wC#`U~G1jvV1~9K_j_1a7I}?<|5gQ(yFdPEd(E4u8D9x7XKX^oz7iK+dVH-o=LDHA1%PcjE;QwAFb3{sZIsBL zb%x%y^1hTj5)yG3PfZW~{;9WVdD)noSq{$`X0sHcFy5V5!3+>c+me;PxH8MGDV&Ni zn62a|i6eH@r(E^;Ad&jAD=}SHsAbYt?Et<_Kr=lyCA}d7zJ;+TrgaEIZx9#nUZoNz zWc-{hmRuMzVuAP5Cba2UT7z*$jMkS|DExWmbp_xFAuZCW*8xD+xLhJ}5l2_55u3)w z$ftv&dvt(On2%8PflS0X{3(^wh{VNUcV`eVhF!Q-*@Pq#O$eT@!nU?;s@(>~2&VOB z1IOA2egAT3Ax@bzA4tVK*^WD4KKu}DnzEFyTp;_YHK@x!pzY5^rvE-9>f>!p#msEr zLiN@b9m`*Ca)?7%5|!-tpWnN4zdkt)b@5kA(#jKd7`4jvMr!zv+J33uYZfZ_oi$4w ze^U1K0J0>YhWEE-{5Z^>H_RHg0}?^cx$7zTERpxLb{;(1Z8ylE+qH;q!;ANT>36$Z z+Qp+}qli`N^!yP_tI2|zoj~e#MM7S|_>b?6w8TT&us~$0N7c8}(ctqkw1LPl^vZWW z(qHt8e`Th)*4O0@>h1mJ8X|8rTcBV_5Y2aXh#f8TJyNXE&T z+q;nit5z*JJsUIR0q^2!GVsC2bVue2nOQbB55a46teRlLgUgBq#8_{XIP5TiX>U7c}F?Y8I`d ziA`y!G4cKVj}F8Xewv4<@R>TM{#fe|(kpz$```cxdT453`Q;7gZsfy|$A!hTVsAf; z-ws@F<@7-R`;Ov}{@afFSZ(+Gt#{>ZUbG1D_082Ktgz}2p3oliwd3*cj!CY+xsi$JbO0L~i%))by(VzGo1_2B%YSUtIyOwSg9oa}vW6byY6Y0j8bL}`XzD1LJ;oe}oyG&Jr*P{Y7qln$QthmGLgfcDS4 z3NgN{+d+$>Dp`P@X@`_OrTX@yEL&%1eU+!9R@^;qHYDiyzhNZ8R0Ud+=PkQc_2xy{Llx+KG2jt_hZD*?D2?C3F0AXW=P1PTB1GAQnKRJZ zHdnzAsk%3=Dw)`@z7)^EZ0)=R;s)SaN3XVg+5eYns>6$1x%3Z5~c(eitg6M7+p#yJ)E>8rJo@{P>y3f&4 zOTmE!*yP3L+Vh3OMw@|>?9EC5G%k+<>o&=uEDCHnS^;Pf0)L};M58M?a?=%& z6=#~(1yCLJ=rg5YK5Bx4<}B0mBlu!mf!KiX(P>KT@gJ09;`+%?n-k&Gae&=22Sxc` z)yioTn|N@!on54`8bcD{V8fh_{l{GeKBNRTWQmUncEnKK%_CgA^*9<_q4-Tm1M5%3 zAU@E$zM|DaDS zqtnk?x{EB-X59fQazUI&g8J+VsxB4tLi^&q(J$61%S}wqHL7|kZu?dR0zDnb;&3tW zZDK+9d9Hv1gziufZDq@o;+RrFX{+%-#5Z-!X^} z#Xs(t%h&bZC?WnnlbT?^Wp<}KpU3C)1QO1T;6W@jh`r9#G7Ptt8~1VIhg9}8+7P5P zq5xR8WD|b zMx8N9D3ghtrcp-nU0ON);T>*o!#$0P4n2iX&_<`CIHY-MLz;~hg?(fcEJl{`(M~5< z3rAm5Rm_tw(feB{)V@Aul^l?6M(=~fy*D!VA`8yB(RiRSe7F8n4Xd7I7)T(UMda@{ z&vN_s&*F@S-EQ_Koa*p7*g2}v#~)P2+5d2-({;R(sSt;~Dtyc5hKaj{i(-9ttnd3&V%Oyv(dRwtn>6& zHXB@ttok5Q=TdWPs`KXEH|k|*pA&CIoQqZTq^$d?6yfiG+@^#ku5GOhz4DD)>z<= zY#pBSS4%3!j$Mf3Zh8WDx|HtZ!&8v>Lw*q}_XBQSW8_F#L5Xd5FQL4f-IA(MN;^m= zN4OyXAkROz4up_ zLDWQB>RUd$@&+tO;afFQ&lc>YB-Pk(0aDnmq(0fBNPg*R-GjOac$K zT_g3HaEBJ=hutvUX+S+>z$oSg35CbSoo!I4_K&g&@?XgRYPMQ0;po;{-v{nr5QP47 zgrcki2hlM$SL}yn%u}K5uPd`rmWH3CGOpQf0zLoRU93(|NaN6C=_eQwGaY!`bEJRH zlK=fNAs=x!P2E1RrRLYy^YA}(dCgA3DqoHIFK6@b2KT=;ig9q&rIA>QMy6ZM>?edxn0w31 zd|;63PUq}<3C>vL+5qa*f9bu42CsgjpR|6CTDb~<57RSvWm4~6_}IfM^MicC@WG7E zaOSvkD^9Z0AqaBeC@YW@0U1^Kj6&H8NMQsI)sf=gA8M6V9HS1cfJrH4XfV&6?g*0> zbRF;}yujO8(=6&k&?#mXFbyKLZQ(syzT!js-m>- zAMFfjTqqhmoQCJZ3#59A7(do+7D=QjuOt2OihrJ%3EbHO`;#DGA{t-TV6HQ}y(pxF9R{8w>pIx*!kmZ<`MQm;cl}mV{gYB~|j&pqwNUn;eh1^MzQD& zj7fYyGsjI_9=}E@Wi!xCdW;gQk$&6#6tdf4b=1TI2%#k6kWKLZeb`a|?nVR zTG3y*x&K`#5J6Od9c&jH!h;(}4)2*XxI(jAULFQ`?C}2vkICz9L#h7`k0H%G!)%%k z&c|L?wemPEjKZyet`ENh0lnD$Erhij?9?uB3OgNuWqB6kpE=7ux}FP(a7e3a@>gfA zSi0R=D^q=uE6$B{(L(0{eB)T^BUOQe!PQ6)JoqgwV4?djCOnX?))HRrwA|9 z+1=sa!-Rxl`N>1`8)AI<0vbXu;1h^>fAwK>@BZ{*6qEnfhbdQPF*rF!2wBs|ig$$- z-}H7fBRkMs(YFgzLb0NPMSS#c4X zV8kERz2739rtx}j{-Y(}=S;oNW0`tYG)p}#1%rDFa2ydS4FR__qSxf3Bgl9Oa~med zs;5r*mzr>15%OeXBwj?r`?<|q1ddnP5b$MRF&>A|4A8HJbl0FEAIFi+z0zm$E zD~_Dkh}!8tpV$9fNbok(F$kK)U&@+Bft_qmdS(y=kztj|UK0r}#6$OqF!MK4CZ>jt zBGyY_WGQgtBrX@1`0SB;BK3iz3dq2>0*n{TC`g7p@^&54ya0X4 zgq9oT6a^{~>~f^c3B<;k;i}5&A!isdgK5{Yh}T%y@udM^#SuX$G7fW!AID?fKTNCc-ZzHJw}h8OBWy;PI}W9HKZXwNSq=6BeK-q;+Lqtt^v;h5c*! zk;gE9uZUK}gabg`(io6<$83qbIv!(GMU{&Tw9;=n%_>~#C~X>r-5rn;L1EflG2c~c6DWBI91TtyNq{Z<^O63#45t~hagW8~q0 zm@|yiFiWZ;Fx7A5p^EqxUd~sqwE##YuzNrD%?Z?V#11Tx`CdU6fQHZdHQwZUjR~32 z_{>!nwsh9+Lt!U3wKa@QJRy|wMg$>*4J1T`)v4MC@uUoGSjyc8g0L>)=4Qw3-mCi` z5j|98-wvbsuhsXv^H6bpW=O!Ih=V7Az86{Y-n2YF^k#a7ce4}Alvu#&MC;&{RE_F_G$+RbKpO7O0jaTC3>hM#1zjr|B#Sqtv5AI1Nw(nH^$N8Tnr}YQn z;)oc`!(6Q=w@-dX9O*3g%RvYMm2{K=B@XoySo*SAO|q3Yrk@&w6ZJ8qD4eqUUR7)w z16L8ZJb16Q4`WxIw!qc;;sLZ=WGpEQ&VYa^I6MP%Fafarf5z(GXPU?sd}7oJSEfII z;k?{M)=^vrie)n8E$4guWHn39I_uC`bnlP8K@LyFm4nF|;A(pu(&5@w{XjEu98}qy zuhth^B|-{IK=pBHKVh#Ao6%Yc6~Ob6MYW1+kUoJJqiUHHh}n})`Xf+4J$Y-$t9O_XLqsdd+Bu^<#ytaZP)eA5bwcfpB0a*sg_OyKDW z%I3$t=tiAy%@0?VW^nn2dvS;C%e0Sb2%12vDX7%kU(=_+@f2})Y0>UCh)p2S_oow4 zw-y?hB<}39>NTY$`eKeM2W0o6uA#B#<@57pYCB;jvx~vWCZfR?-?VA0jLxMvbVqcZH02n}@C}yr%f^L9O#7C+0i_ z$Lq|#UDYq03cyxRud~~m8^5Fn!`1((=JCzi2H%nP--AJ=XV~ZrCiu`&pQDh(M?)>V;@uVKuvmo)AMM`OQD3G+WSuY zlD7+lhXf&x=Us8hFhFdvFx>xx55cGv(M$h7nhm`8A!IJrUGjoNKdp_QJuw|!bSPvm z-3K(of&#lSck5mhlJvkL>sj+TT1~u;o^BYu8{WU~EtT;5qu?)k^%%bXj)yr{+R&jQ zoL2N6x`n9HpwNbH+&I{NWm+6SlWI>f^5~;?YrkiN47a!|4yCb=Yl8w#cuw3}vRmr0y1#bbilT{R4F;-anIB z$8UdZb6Ae^NSK;e_?1LV$7~^)hU8aubJJ_*>oybmA^eV`w)%E=L6U9x{{CrVKz;v< ze#w~!#HaPUd5sjk9B0n|WD$wsoMs&_0wRS?S>5Ml>B(!{1-AAtT>%oR2g9)cQ={(y zmXI#^9|23kUyW7jN?Xxs;7#XV;=Jgy#>-w$QvE4c5_dw}oQZ4N>H^KTy^~KJYBqjk zCVu*Kg3}tRh_Eq}xuJ^0+Mwxg3hX?47fd+%&)`yxvd@gsDl^=UyIF2Lu#BR|Q`}Xq zyW@A0CUsgO##o8J5lpG4R^xGr#N_Dlo;&J-Zdc|ipQyFas%fK~So6*o&?dblR>+ls zJA4FYLi{;q8-R<3>Ud93%V(?SXOu{hiZyi<8ZX`C*FJrI%(^=Zj-ip7c zznp)KQ~&Bwztx^VmW@v73z=V>n?MEXrfx^{#nnGYcgwvHnv(?K^4Gq?bfhj$WDJfD zrE)YQhiZE)Jk%{L!c%d2Fh?=_V|Rtz`>tEvA+j^^L?uwUK8_1{xBq*!?!eVghW7QI zKL7sx{_n#F-2W+hGAXx9#X~ayeSUR08f9q3J+uH?#>oR7U|p zPW-0QptR@u3N5pcTAXn2@-P2Z-PywIZ{D6E5Qt|7%DeoF!T|GZPVLp7puhO4OdPI? z*hh(9xgY^Y0x! zLQ(qf9ew0Wx_82sqxzQ@Tf`d?s*=JIm3i?C?wqXoU*8AQQjVR?Kv1&sCxrS1I<=gA z(o`MygmQr67Cvbd&l7DXUoe=Jw=U&zDx2p{@#7_>8V9J7NNucZ*1NSh7<3G*9L2`k3& z;7WT{wr1!(8d0%xe6u7CzAB?NZ8lfAD>!rx*k(Y2oR_t+=&4}Pb!@&tq% z;^NkN!8`n*lL$WuKJdycji#_3eBi`$&H}nLg=Tx#$EM6mRc?LW25|{F%cFOG9<`Fd4EoYh;$@GQ$+AfgBSxS%FDg*kMU`M^+ z?TWB#CdAa^0kCW8daqy^>!(O0^;O zcaj0gD$;-_+T}+9=|FFDerxl5{;Ne*XjH-sq3=f=SiNAD`+26gGY)aBgo>8G;MHO< zP|X$Num)U+$N&-IyAL`Xfo#|3@XwvxZhm2qj>IUrfRE<37#&KySfB&9z^#_Q0U=s( zi+yGh&Cp2YmoZ&+15e_2YAprp^=}`QgeainctaJ;X`_lUHiLt%`$O6E^8ixK`S2jC z`Oy0}zm}%(%{QDQG-3uxL@Y1x+yPL|1(7uYDEEIbEWoPN3vONkKI0YBA1Nw36&dLt zKBL0GN!JU!w^tIxccWc_)b@JpM$dcasVxx0K%IE?O`8FIE$Nmae5)PE_H zU0Zh3TSu?)hPHn)gOhheyUqBk@?7K~{C?mNUc6U;3Al8A%Ro2@5-@@bew)BpDo6j1 zVT>4y$q9gG;4y%in*jn5pZ!s0v!(^wVNhQX5daA8+oTzM9j&Md0R^lJ)xto& z9zyNm5N%NtsmjJY`@_k$y z)-*}DA4n`xQ^WDBe86rrwJtuz_4wEi>z?y%;@#d62q*I2?wTDYfzM$;_2&+CbRzkS za6pk-mOCC3x}54{$-{%a zfNKQxS<%VN;E!ffmKGqP_A8F&(?^O7FxZNDUeTAyMln4;xjij|@?Kzh6R`{1UfR+S zjlkFOKR=b$!UzB`1-06EAYS>uBLHnS%H7DfX zylHE{eH$a!yV!nwBnD;$0(hl>2?WLfj`#y2zJ4_x$!cSDBA_n^@7H3Gp9XMGc4Mgr z@r<8Jh?D9pQn0j|H!)%cLt7{Iml-oh>5wJQBpwAW0j-b;w@u@vA1af4m3-TN9Z1mq z(hWls$|ea(zOSSU;h$~deJ|*a4FyRs_+hx_xfDX$p&leVRwywR2x%baf!rvM_1##QN1}_#W|aQ=EhG_wvlS zn|=`L@dtYB5Nn-n)~<=zvXVxTs`H4HgOIxyu>jlUR+1`_ETa zX+B%|ahvxSJ%!Oafw>0sBt>(TDPX&A_~~aE?;kFJ*LZAVEM)p6wIXo2$A=s7af6K~ zY5_Oz5xWyFeDyi=ob|0=OI_+eenWnOhz@O}#qsz6c_19}Q$}C$7z*Nxa*78LmvQ0#U25`}G!@gJci$D?kvf}jg7$@(9CvdB; z?@{txfIG}L3PA3b8@*SbiR2O-L9*5jX>N~5jBvFf0!aK!KJ%mi0-P@n*cHS+CuxZ? zllxhdZq^k3Yjn3!=m`KEm$!1kGfxeyBbUdSUn!0CZh;!b-FLS=NOmKFTD zg(2Bdg!YI?G5be6;H8N+5dlRn9<~DH!!vSg<H{I6n`*)pO5i%0b}Q~F$@^Ve zAv$BImk*gb3>(#?jt_gLpKjB9By9tZj(Tt@hy7|A+IT-a_qmF@hHX#f)3EUhg#Fux z?2G^*^0h$)u*LFH_){!r)_6nh_}A8etI`K_(JKOsM1(yA2czi&8ay`7FQ>Tq{rNg4A4X^CMb+Y-_Z`~e5Fm^8!@-Olo+Gbc$kyJ zcM>6#T9%N^+yWqyN;aywy5BO1f0wfRXSjH{AW^8?=#HfOjDEk(vquak(>@;;$AdW*KX>U6?<9MTd0iSkUSk#_ljNChJ*%ZN1Fj4~y zUke1LCp-icuVb*jqLKK9^|)hl#}o5_amhjZ^zWz0`9%3Cs1I<0!wWw<-FKv0e65^I zxo7WK8g)eqE%>4&v_gCqISx_>C$E_Vb>pqy&?ls#;yhQMnr{KHzI4@Ry6(9$JC$&g zJkCd{w>{6HH0Ft)e2M9wn@yMw7j&)ek*E_V z0l*8;-DErLwBSF{jje7UI{$&5j{>dD++CCv2!I2`#dqqqLS zW8@<0ioSl9)%DR(#0yJMcew{Wt;9PHrDUpK9s3@}ql{ai#6Wv%OP85%5vi81_{8r{ zRQ46TySFmxd?LwHO<)^L89Kf)X$&aT1)ke~dTI#melJFCI7b&~_)ry)sL|dJhwiFGRU*MF^}h!nFuq(FsJJAF+ePAIE3nV>kejAA`(${QK!hVs5wc;8k{beDc_7pc zRF~gw0==9u8k3r4C?t9!Y9q)CW8_T(&~6MW-#YV=;M}7dUIa9Sb+&%Y?FQ*}H$D)> z=2JQ`c*FkJ5IcrGA?80$jN+C6Nb|cv>K)b_r@V3iD>qP-v$gtkQOF-0B`>$tI#vG`+ODUoqAsxTcX@7j(V}5r;&dk*Alo|^y z+MFKvGKow5k^?=Pg;5CgnLch7`q`xG)m;VJbMH!49|=}NSwdEbOgbD}x=n#WTm%}( z(xzXnwmfSqGsiFcP+Rd??W?rNi?0V3l|<=@6$?^~d@z3X9lLOAUcL43Ex%_Q=i`_*KWNzWKsaruJvb`)vAOox4^& zPgeGV_j;A~t(td~Y$0lm4z|-sTN+nu9+1hsRqK=pI8DZ7e@;5}1yQmNt{)1SM-1%~ zzMmw}Ge`2$Sjo9V_|VC%b=Os}04OQ3qfey3YTVf6&<=(L=bFQ#GZiA`B+IJA4Wea= z4?+nI%)9^i#(}6WciN=cCw9AZ%w)#jEy3~du!ssbRU42NzL7NvDv&ct$e5SkdLIfW z+zpGhLV&PMJ0zA*YIg|CZZ# z^gzECa51b6RsJ?Jk8=+DJ6F3F$J0{7Wk&D!rYyTCkJ@WymF8ncY&flr4w%nHN6uK1 zkio6SHfdnx#={t>h^~LN;&O_0%vD{$BuxRxxUKlM8IRv|Tv29$c}bLx^|{+(!-;8z zddVgtDzVh@I162o`0=%I36@_TnI+{fK9TjCZHQuBH#dMBGQYL*|FQSxfmFU*8!+1} z^H7l~nWr*_Ol7DHg=8K!88c)kl3C`;6k8-AG#R!XqLOWO7g@8tRqCb5fAW7qYBxV&Kjhi@uHp3iQ_m`s{Tg5l-k^XY9;ZeFw zNe)U+n+l^QJ;gI1Pg``P z^%5FsEKYc9Vj~VYbW<#uhVur12hqR$LF)Lwg7@56@dQqiPF=5F6U?-F98C*wWBI5ElXiKDid`o_d|EU1^Efo z=}4wkzYoavIECR?&fp^Rj(x9x+K$}fp10!L^xD3n!=o~b(nC8kTIR2?gd|0^=z(ghc`rIt#HonKg#8wN3%yx7to2r zR-ZhsJNK=l3)!*T!)()@G?LHzNe)f&*W z1k!`c9O)lzOfWN|2rHSSG3f&GpYFh02!R zq(D=d&bLW-2p#A%8i3BwtOxw3Z=8uwf^f#VHjZ{00fa#Mv;{~eUk-8Ni-GBKZcdu$ zp=)tfL0kExPZ0k%3eQ7}o$9RKa0ng0v^*mY?a8P(O>?h4vx#!JW#yO5{rsZvQ+^2c zpPiBfynvWBo}sS;Bg7Uyz%aLxhp&bGg{2CMb=RG zeDBWU;F+eYNq}NpONSiXru3-K4bUARFZBlCQ)Gx#-ff_wXlT$GlAKjY+1EVW+FI!j zO=TbO1-2IE-=ehuXm=>m+4xMNatL*86yf!ZGD+%}SS!CR1})P)-x8|UimKnY2AmsG zcU{6x@rriA>9a32;Bqacm?m&@uhj4*aQrH^zQ>Ezoqyj{KCbsGHmijqvR@R@f8p!> zqKH1pL3KBHaE0=R(n~dgI%mc4$0UmH0cNBQGA=UbfBeq-%8|REyKT-WF+K1&4Ny!M z6M&%i5?#QD8d@OBG=h4y4$<2+>S+wUS6nSgYb z`5Y6q8>t)%*Z7Mxk@YxMTAcXgl}F}1J4n@HZ*T+Utcg}_^t6c;KL`dHsl~Zz7m}4m zOlcQVY#{AZdM5AI10C_cS+*&2Ka_2aZ3TJ+kpDkb(QCKEYFDVJnloqx%6;bcnYUO2 z99AyI2^Pt828RYdCHZSn-7f*rG$|gp0wVhIeS#QG6(^+x1z@$Vx>^q0g3I?m7HF^Q zZx?6-$M{dN>EbCorgy{p1I8Q338H*%@1K;TQh>8#oj}TkfEsyygbltgEs+7op=t81oR2zs1 z6R~AJjF$dJL_&NqaheSO2pG8vqgSQvfiP=WRMUZQH4V^hX?1Ar~8HF zN$l$`V%2}Pc#~ujE0LWiwM4yXs3Z~-@}e@0Ym>I`B_3_cLQ@A(E>YtFx+ZmDL%fL^cP~clW$bNYBi?#?r+ug&M25r? zDBr!(?dPUjB1p0~*(a_P&hta!Y8e!m%~IQAS^_*TF6O4E&@}cdZxBB_uv3bX*y$CK zvw_s&YH@R_e?k=N-M%c=cb_tBGl*lQ3g>8FJVt11hR~1kt2X7Rt8?7$@RCwrSW%{m zIp%)IqCarb&4A8EtRl`+Br&-m_U0ohVHKOal+bP=W;g~qs8-uG4AbsG^-FpFu@;WY^j2pCKD!6&j{_xh%lnDP%y zov*}rG*$(y>|tPH!w8*>t$9UsAkpRHE%Df{B7~XdcpITJWmLuJs@WfYzSQqZ9r-L7 zn~zE3kkhT*LDboPXtoedaexU;ZRQBlAZbWIy{6gJ3kP)h8-5->G=rKULdRp7OghSS zU#&^Bp1K#ZH0w0_b2-sm$-sxRn2acSg>=ItOROYUqta*CKr5vzkiKgLAi+fOwJ6mN zPS1+H6ERaV_V4zJ7MGRZhBDI!`(Kph5Er%M zrBpY}aSeBEoSWJ1A~JMu3VXDI!dFPKQ-d`%7$345q@7XiEy0>QCE8~iI*1C1cO;cw z*-g@NIb>)LXsz0RT!M70EvK5TW7Ig@$QG3dkdt*45NWEbiVsbSX$7Epmy_g(f5ucn%3_Fua9q(;0n`UZ))w;{Zjnb};4 zWQi~>x#|Tx?F=BH-K*hvMj(;cQVEu!{LNhoF=8~)P6L5%*A}H`aPNh_W`;TTA}<vf)h(jIAIWNewlU zA6Pv0NKfN+L?^f%D?3t#^%(ax9D*b^o zZ~dXXcCGt);3~OQBi9}W@wVLC%%)9~SNmyQUqI>M=*>{FebV(^C_z3?U@Q14r2eOB ztX~xRf2qbgXatA#`!9H(^78^xdy>9U=!bWu0l6^!Iw-ewPibU6j@H#6Qc-Jw+t5e0 z%g_Y*&Jj*vcX!gT*$NeXwy?(Oq#1_s5AjS$0@vrhP0e%1hP`)~@JzJnZt??6`pgdE z#G_Dq+0v!quiJJPnC#{vJJWOI1#vRy*!fJj&ECe~zlq+8b*q4cU0-l$O$(0XPnT)1_zC8u+n)I<&eftgn)qQ6`OXm@vSU1T~ z;HN%{6n~2*uDgJklsa``eKXBgfvx^rE}<+(Xw*X+o4G?QJ8U%MMyLccd9Dkd?8apSGon30LoPqfmI{B_N7CR0 zGxRevR#&gmwU0uX=Drad;%WbRnXUy>e?k7KC)^O8(1i}Pb!D~;UH0fC9Y0u2{*f|> zNJ$4~RlsYBe*(2}fFk9i2Ag@PP9{IKvZN{zfrnq+VCKzhZuBmPDxY_B7V}wS<-pbA`R8XxF zlJZ86c0+!Cmk?m?C(i9Ok&cXg zsoncvwlD#H^;bs=e!$)EP1WeR6k)O!&5F;C4^_lnKilbLViZoXYi#PyL0PO%ku%$K z6aYcb3#JVCepPm@W&YO!mc=YH<6{cd_+DmxvWJog^A54c+{NvuI-h&AKqIMZUAnU(b&KV zJtyms@byEf)ue(4gq@&f_3Y<0b#(f{>ero;KYz+DOCbQOtp$!xOs6i2 z^VC$yF=9u>epcwv{x3Ps-xYzs8IxcDf0d%Cl6haVntBz~Q?KnAh-NKyxkg%kO8(sTx`IdL7u z=Z%$5D2b5auD!lD(d;#H3bgWym46L#({)VUunW=Lb{!~i9ZtVohb}kP651*t93%*i z`GF=P7Y_<0-N&HD?Ao-Bv}LJXBm$)1;IbCo)w9#WZ7-{cQA^eS8ahg`1>P@Ox8~I^ z$SC@-Afjz*DPSlGhVJpK1*pSk9`oH>oUrrp9S50#`V=vPAib=SD7lsq2!79{_t%rp zDfKkn_-f*rtoe1Mnvd~3JwaB^@_80sN@cc`PYjTgS7}p8qo_@!^Wa~q6rYG8;{=KS zZW(G>6nHNW5S7$ka#ee;4>?4aUSs#L8yyOQ6r3LP2UF-Ua6ks7`6_!4FzHC=P zls63^h8Advns@jz`KD@%@4)9L%q`no0QamcKkDxvSRuFrW)g8dXRCc=S69xC2_ z1>ZFsUln5D^R;5df}%q43FX-ZkG^-b?vTVedcZO8Oh?m2DqM8mx}D~SbH0qgaz5e^ zZ;$~ykkAVN^QNG{%jhWEC8+c*$e0q91pu*t!W3l;t)umjE~76!G%%ykj6pnAYucudSflam_$_?)z&7-{=7>~A8dX45m3y!eas_LcwO(e|)LfJsbtm8ma zF*?hom4<-#X#I=|zSpiTXPsh4hHUH`c4U?3e~a6wl7%;UOr)n;hpbJXI;rCC$3j+s z@;}AnoH^mnJJqX*$bw2BJf}F!FmkT~N0P*E>wX1rkpZQ;?=UN24vL`;@27i?15@1L zV`mPvaJ3w;0Fe;a0m>vd)oGbeD(wYTie#Ye5y*B~ZkCWiZgLaTqgP%`bTs_|cP?)z zIC}v-Z)LwQ+1!RvBI-tw*{ANFNJY4TfE=7sYKLCg_CTY@K;w3V6>w^O1Htp)xo?*c z4j_=abfAzWVz0e%6xEqD4-0Z}|PARG34v&rXHeL6>a@KpTXg z?+`edRoM9z7%)k|C2&9Q7YNh|@2=y5!ZGV`&%Ce>G)rwL!hA@?tj~gFG|L4wMT#AB zRBC-7JEd%~04v=6=dA|jevr(i%rTt#uAFMq<|lQ6j6@Bq$YuCuE@K0M$qrb zao=e4XXo=1Lahcw^o?r~o?NHBS%$UUfNl8nn)Ps|E=!B7ud-+QvKa8_nEkZQs6#5W zoulzsnC0?;JBOL_sL{@Fr zQRIfr{TL9Ysx6YCF&0S!5CH6X5E24h2XCmp6NO%xh*s}?BBp8hPtt(L)6Ept%XSS6 zpOhQ`!`d4P*@F0C+h|S!L`E5Kh;yEP*(cQuLthY+kbmqzDj_3dTi%djp<9^hg<$z} z3;Ai*UAPKpi!0UvUwG2?A%$4ALN<4A_Bs1hIu3b#+i{>J3R*V_b|<*%fD+*=H+%3l z+wv3)`KaCjy*)Y{P|N*Ph=uaYGE=Bd*|Taij>~k!ZvkPEhV)dF5A&Vug0 zld;Jz)^4te&#RZ)ZX(5X!_cM~?vC$b?9OE&ti-*3^hxc?hh8)CgXP*E)87;|)1|*=65nJaSb(e?2&W3hsOb^;|;lA zp@>EH_H3lty-2|FOwkaNCnK$crR^0T(aprz{x7mbtw7~^s4OKwtous8n6>i_31;^$ z+P<5B{`LW9Y=S6&hybO*LT-)yiDuscqk_9{sma&^6ZoyWPo{4E7VMzR4VA7*W083^ zcxSoy41GGZaR2C3Me(Xo%p#Bu?{pPNYN-yNCqTge{i4MYr|C8>$1qUt_^J@bZwoSe zSDxD=051X=Rs&al8#07Bc<0mnatwG$ow}MSR*ikv<+G(-=&r5sR^PkdPFxtcu>L9J$G&Y7{NNe@HtPPKcXKM+H68uf8W$lnvAI zo>)!}7uak*r!WIqqRgzm=bpnyiY|p~3z}GZMH(9)c1Q-rcpaM)4YSh-Pi@zVJ|o$F zs@&m~XsBO3VPo9z{o6K4?b71MoVR+OG^8rbL#C7*v!S2G?!|`8+gxpM3I~D| z0crfSUswhBW2*|N+uWYTO2M7#a1_*Ha7VJNYDX14Md6xUd3}+w9CHo4v1{+tsMq&lej^6;x;L8=v z#luYdl~=zdh)4&!?ys4@-ZD$-G$P~eAkPDA0CFTZoa?ZHD8sB|;F?$3L0Dxm;jath zYZ5Vo53G|0yy}dbZG0}B;Kz>wFRYvqOWLa;e7bkU-B~FDAAL!!8APC6{ZB8x0>RkY z%Ve31W>6%C)Vc=kWAxkvrlKjy$jDZ;ej$s@aXI$XCa@T5v1?aKAldGx zt;=3a#vj{e`N{MU#j@};6jBRbb87V63fxw$Y<|?wHUihQ?1+w<-nt5n1zs;ywRdRQ zN9LLC3W%?N@!BC@!iA*^@u(aokGyiPCH$-qBw~t|qF;!vRDsBm-9D9*nE={T%X`sn z06DB=vV|K;dRNZ{lGi$gLITMo;TGPBy3H2I;j8}jt}D94_}IZ=I1?V;mh9AD+UZlP zu#B+a5cctEI{JU)R$@Ac5!N}%s_jeo4vEeV_TOZ<|(eh=+3U{lhD&? zX9=1~VTowIF3En7ljxgM%LcK9Jxb^URJuyL5Boa7-A_))ifp$csQ=vu($kwlv)6eK zpAF2>5T5B2lECc4g*0VMNbTcw4x0jZ{;TiH{NKI&_GCVw^>ZBUH^1}iKWHkW(>4@vV8miCYf_p|rf3YX>nxhXW->D+lnIZx-ad3iyYF zgE4(XLe&;l`$FiyA>16iN5zWm*ngFQ3Jy8kIlvP%jGQNs>UYTbE( zxDpjn;quz?&JPNDuBoR>wwDz(xu%L6T*m4=)q*Ri8Aw1tr-8aJh2PeUNp39B&hHB= zy5Npg4*rh{tHWw&{=OWSMj5!uc#&{dYTS`NdORK__Ave5XYApuM7NtdUOQCL-XQk~ zH6#Uc*nA+8iVDJRSM0=YG<@FwIpaL zK(cjvR?2+qGo+j*>JkGkJUrxR`eb~+i6f{grrrIETJxP4b9r{Agt4=HQZGsCNHsgF z{ZfbPL3U;*Qydv$!j+DFmbDZTefOGNf62KaY8Qb*Loa6eZxyo@uq6uBQv+&LWE1o) z)u_8O0RE>i3AFxA*IkOU{?#SzhyXbYN% zfh8BdbYBVoSve(K6m*CZGf5){!QDc zAW?|HlbzYS^3UijB^2t{l=}e%Uge0_^`IwAcawJ16H|$iG{8NcsPu>&Kh{3Vp=EF5 zOt&b*uUsetXqFZoC)=c6S)!@*Kh5T@`JQ`~yBCDNETy4E(1d5YSiN#r6Nj zT_X`{Yy00a*BTU-pp^TbkjWL@6ZRo?S)pmxB-l2k>s*OU<2FgkRdBUu+tO*gRKef= zL}@6Lq|8W6yVi~~STO}sdp)G`)YahH3es306jW5XV)@Z5Vs-CF9Y zv=Ic}LMbr_+n2Qh3Spp=!X~@`GjZb04ARKfMUaSFlH^WtvFvp5M z-iu&4P;lA^1#9kH!-1IyMeiUwok~QSlk2E2f0H1VX1QYDuj1<8p}^(=*=ojMlFSYV zo#ibTbriS~{>J6YAc=m<^T4Pz07kstGy?qOT!H-MFQVPH#p#^|XS*5RP&_U5;KO zSl%6%8S>enAWidZ+DX$F$=IYPQnHu7s$V#3`7#np-EvMIJA%8}!it{Kl2D*%J3{Of zyuXzQgGidYHN*Xqt!TGd6ojO2X$X+MWV0F#H_!*j7K-wm4RLq$L_;^Iiq4hL<%jER zy%-zJ6%y!e-#&FK9`uy}JvLza;-OZuO2&Cf5`<{ z@{0ANkaoyo*CfcRKV?Ci=^;9IH$?HhvJj7d6~+(hjJ(d;cM~XtvOOZlF)Ja9ANJmH zXzdz@?+11r2(i8_ryjs%Fj-uzU4FK^uIkGA^LykU*it(0&aV0hONZTQUDg@cKkVAjv?-Hl$hgNvmH8GP z*LI-wCNZ*sC&ViaKX`#622`l~9sGk4cMXac@Z0M6h!m@?bnatHgQ_E!arde9ysi~= zr~h3q;!+VjE(6i`@X-$~y?OcKGZ`r|-1q7R(gUPqOa}cVBK~+`=6iE%oRng;#O@Qc z+8?d*qHfcr4-$M&or!X&c;OxhsjQ3UxVuBh-PiNwMa{lnM7qarnj_^v`8NrPpScH# z%pdU&P40xZ{qQfkWBqclj7n_bu6ss6`$R1|4^T9&lXb z{mi>uw!7_BVkuNk&pE>Aq;1^h$dS$vNMp}GceQ;wb^SZxN>Sk-vEa2;qY(B#fl;-O z^~XFGV8<=RaAW{(P40Zt*3F$Nm9*sayQprD-S>Dwh23@N3A?adW0_#$}2u zfiMSj>&37z6l?$8;SZW?bYCY>>Y%9%r9HiowY9+P)r&{v4r@LVyB5IM_i24vSi^Zm^xq zcm90!HH$*PhM`wMVJq7WsQv4O9yvWCZh%=h{_*tViBF@CO=jKt6vYIYeRF(!rXVp39K=p z2q6Am{Pt@t+VX{ur3q_i01(ElF4#PneA%m4zIMw@DP+G_)9FlSDzeIEDL!p@i{TO) zXkCyl4@#O>Pi>6Fb8gDNp$KCiPFtFd!TbQfhe~lnR>1Z=eATk4iE`Rce`#P_ zFK|25YTetio?cC=M~+brbsT3~y`lGvSHr3cmalMIcfO19sF{==bW-6+!n(}WqU$(b zjBoogPgCL_)+5*j`3svcIT4vDlU%6j-kY1q%&!~zFV(;hN+#3!?mUzkRFS7gItxFK zz)Ll@cZ_y@M;}NS!MSd`MkAg?FiE~dOPK=1M&*%aWP!y2KkqE(nY~sY`8(12s}S{l zVCA&=p`kr^@m(A0i1j-LFM-`-serJ$zBS~|obAp=J-!qT3<2Q$(NW~x|1?V0fM z;jmDnx6oYWn^x?`lCXt}}iFTN4Uxc8}+ly^CKoruFro%nYB zkQ_ISK+j`Kv*68M2DZV9P9;V>3DgIC7lb69(&@n*F(IZ3z;v^gSfzTsB&+}@bf+T^Wv5~jaP2IB$~QlSJAXVXsK($e);QNtV6T>SLsYxhq%5xn4DKV*F+xX@Z*kH zFJ<|j?i2;-UF1)NY`fdAx;NCt&7jKwf4r$Gt>Yg7A5O0n{@2hww1JW8COH>Ph8(7L z)9^R_4w6!lLp;YFcA!DSIs@6a1ADc@sSUZEZ|6sV62fglifMg5SouT=<=U?td&`&~Rl;2nguiQ<2&{Tm6lt?Wo#foTP-E|IFyWG+{U-V@X_)#RDsvEqc%o0fwDE)Jxaz^0#itg z!u9n^J~JE{>_`>*wlRP@y%r40$&z(YL!1orm8vf3KJ;9fqtQ9Ifk`oAHWg^R?pw6) zm)1Q}n%%SUtLe(0!!7(ZNQD1+Udt6!F$n>3dnXZ!Du6gIuBh0aUj?)YNuSsQ7({#L z>9N%t&{=7HWi-JXK)X1Ym0Sgi9MpGXxZw{{Kl-T$M%TK6Qdcb6w>rzn1{-fq(K>`jQ62t;0oiF?8vfD<(im9Qy6OMT7eRgfm!59NZ_ zp?0pVUjdWZ3(Qmr1YU$%!6tKbt8#a`XIx+|2u`$ju(r zCm7~%<1DV^4b1eX+0U0`MOvnA_Y?@w>FxqST#!NaKD}vhZRLBcPm)1<>)8a2C$g+p z?4}CpUbgS=azIxB+DeQK1l9`+IY_seAjvreAhwNz_R)2ul>;EdIW{%G^z{Ci6TR6* z5vkvQ2TB#;ZAZ(Xgx3tB1%4#)s04~-IFI*=NMp^Vs=)8w{-Dig53qXLt2;+Gr7gGv z=fciI;mq@&KLQknBbeM`Ozc*G+}ZdxCBM7aN)!Q#9rF>sD>R`Lg7%H6oPO^N z5XFx^sBazv*zh{S<#oSg6C3c$$i?WxR5D2tuDqG(?Pj)ec5A><6xX&D{dal>?!jc>VdAfUn zPd$VEem(OPAn~ zA~Gy!UFIzPY}#{9sHJFq(9AeWY1vftyhJhU4=Wp^Q zUVti7^LTNZS9y<*0cQ33ks$F-+XUT45;}P`E@(jmO{xj|S!Y;x?gWhj;}L{PAas8f zIN+Z;q;%>~TD(u0h8WY6K$Bx|E^MaKD}$A4E+)!N+aAs9!;EC)3>dC_EvcGdcNwTC za*VK}ZJ`#Y-E8ACNs5i#E=wK*5sV~IN;(xL&{UU6bQ-d&7Lf$%xt}&6vy$~)q(wu)TTC}Lqvlmi>< zEr7&-#zw5`O=y=nI0%I(fnogG6S<3GxcztaZWj0~_k+Ag0oy$QF4B-B)}#HBKMjcFMpPh|`yKR8P{IblgyD)vKyvN$y7#jB_-HHn#xsl7Qrn{a5qGVC5(=akD z(iLmRt>j!`5EX0bW0a8HB!@9--+ZeN?6KCSD_zKr3L)J({#^zob1hT}J2mgh9`!y+ z{DFJs`&DTPLpalrIs=oiakI2{_dBOSk3fVRLlgr&ZIYm3$@s7Z=rHDi=m+&Ekwj7| z<;CbWt<32dAE6}SSlu=#g?Smpp%Pe$iPscOw~f`+u_U>PuvG>_eir%4>)@cR;vOOb zqK6W)a+&5t8>`us>jHXAYRByLP#L_VK2TjIM3)LY#YydvDV@+JFp}fYz<9CngncSX zE%%vNKlsLyM5aksly$C=_##n6Lsf=+GZXe3wB_x_mA9~HlJn!#Euh-f;k+yGg34Wc zx@kJ0c!gR@!62*RTtbK$+lzN+iq2nQy>92W@-z(J6*s3l%||JA>dWdg38hVnnLn#^ zL_3w3Izy6G-bt9&klQ^E4Gug0d?pt}Y|s=(CC0{NAe>FVBaKx{mZLcbbwU{K1j2q^ zI5xPrv(ZTifoY|L=NjH~Zpm(7O9=Jb6u^ap_h&-&0#RDty;Z;C=2FR*?fLdmhL42D zjB)T?<~iW+^#paD|pAoBLATWeg*LAPG)it@2`1<;ns@MRq&Xz*$9 zv~>paR)eEC3zd+(v?ve!+|8Q6D$(sHG^_=rGib~)|g zWvDcxe$*yK*cFTrP?{ce2p8P2TkHUF((5bBwm<#zUfKFC%J=lfkIdY^!nWu8j3IXF z{(<6mXjU=N$u7g)Z^VZ?#cdbfm!Qq!T!wirT?-9&c;3t+wooNxy3|iI`~K^y>f7os zhmL*-Mztp_NiR`P??q2lL_e&qz^J8?>O8ORbv`rj2K@3NBwJt$s-@=^%euIZUa)5p zvruVC_MrO0KHz=Qq(J?QdM!?>))EdXG10L$rt~iHTAT)@wk!)7!LX{nc9EKxj1YM8 zeNgku;eq;^K~ayXUU^orLs3s=_n%*IUyhvJ|05(76-2KA+LR2Q!Mo|Iweh{vr#rs& zR6gV}HI!}jz2|1z@B9>a^Yy$}#Fzwt?!bUf-l+6>YqG*rjbP)v!T zq9IUkImxCM)zI!c-WQ=OEdbykPVq1iym>- z^~_p$xA*GtB`KsVVmhBNU3A*DxUym|^sg7%e4aQ@=T&rHIH4~Rp7r}1%(aGInQ*z7 z*-~Evd1*07m zp+H89J_hd{9no<;`j}d+cMOrT6-rqRPfg(ROjZ};hG)!w&uiOfh!uO}$8q!bBNFlY zR6?e7so9e{@PZ#{;epk|cOS$X*5V#yy_KL^hriUha~O4*CmXFm=^PXo7w*7)$mTWw z_VCrXVSrO4g08v9^fH8p=i7Gb!BgJn&6Zo};lb)-MNBIcyQWI^!+b17-n4Mc3wI#s z_b2^%2Q?~q2TZ3h-Em~C_rUK}5I?Yz(^ad**&1>6l8{c^a(q7bQ8Zx@f9%j94KhOe z{L)$0z1e6p#-qM1G-L$2uqCO#mdOe}>SLX<-ZY(Nc(yM`)vh*pPZ^E}8fvvtgEy%$ zr{lccKkbHTiO(r+h=k2DtaWYE@_tRN5RBKw88OF?^e~!@;Ypl17^!iGd~q$q=GxRY zT$?<`lNK7DANGm{p5y53U-;LMN*G~UWD|a^@8x|kd-5JxZ`t8lMZ?bfnS`W?Ma2kH zoXy7O@T2?-dcqV1Xfy4{@-=v-Za9j@a0yZ~9pUt358#?VJ`qFV!bB0n6ngZxo9-#e=M34_U_hyCh+>oa$DwJA_S*>#niy{k_@v^wrdAyE>5(c5=gL z*6KSP%E4L-v%D-X?;XNmsWF#h_jDwwNr2&!+(CB8%g%YzzlLNDi_z!GbrjiZ3dIAL)F_Fr?G1#ie+7>HlS6;=J$--bCMh@Lt(t z$nVW$$I+jx#f{K)D^W!-u!zx;P|<{khL7`PfBPy-jR~3x)JyxlbAwv;GeVy4%h_jt$>KaO}Q_yFDa`PieH=g1Q7^6*GcqQ;1;yBz)N75KrEnH{++&xZ`n z9r-=-d%k@Kz!IYj{L%CbH~ccb*WD>m>LS@UJ;eYno-pw6bOg+?CP&|1X%?|Vr2T~7 z?v|M9e59Hv8DWE7S+XBHXl-$!ap(SDKC}@=cP-un>|jbDsO0@wn9%PUtYQ|NE=xVT z;Ip;5m*Uc}01iUa$F?jFnUn}p^S!3LM)B)5rQUCzE@L{iqxm)$ks8ya_Ai4)j8M1F zh8wYlGn4dn=gA0%)fQO(TCuFX2Uu#QM2&(kB*)fC47j5&ICNb65C$%FLklKyP{~>% zfK`kzPJeV?m@fmi4##OU{b(NEO>}ky!+sClXPD_L@RtQip)NCuJv!ph&GArFXTmZX zSw$XoFe}fG0x*9bUCaGUACW!X?ztqw3g%)a8C}uGK}L`xsR;P%y^5KfwSX-6wuWBS z)aA>&ukr6(AHI5Cr3n;opUeH*)0HQbu;b7#EDOv}Y0tH*=NQ@HmrE6X&CNAyJ_;<2>L%P{I=)_Hgk*(=;YD(I`ww%c%(TF1 z?K~+@_t#tdGQeBwvZna6Vx&9dtu9U^5e6hR)>07b4BLrJ9~r~6T_6^ydDF+7Q zuI}1Qi#QLW!9~0s~zye>Qo-hz@ z^5ylvT+gKlHBnMRq38FF*`SB!r!mx+@mPBp$Vy$(A|K3F)_DsD@*=buo5|T2Qfhcb zb`GZ9r0~IEwJ)Qmz|MQWXGr`uqSa7jyJ(NB+SGbqlkKL2Hm*la-AWs^T_-^Eo@w_a z+!L+)CFxwy@M3k7t+0J$$e$dCx4XGmT|ue{)`pYLtk!OXDKKu!ahE$1IbhF6f&_&U67LNc-1MM^ zm|SZGK%jc~!5)AUsysnyFB;GZ9uBBEwe2=@q6Ni2ll8t>!K~d3l5C?Os<%O=j_|_g zKzJew_`u>*Rg+n^IgvZ#n%`ggQe+!Owln6;4N&o~m+i4+1}I?2c>%thp#o&n=I*L) z+)u0rxP)yQ;ndax&w|qzC}9WAzPX2mhAYwhX_iu%fJfODq&rdrsOfkEia34NxX(TN z>g~=wdU@@sqRF#L(o46%<(33sA2*kv`v!jaEHXJGPIzC6k`@X%b7*57!35;g31|MY zek4E`$A^!@>T<~SJKq7Bj{Olu75ySeqYGPjza64QWri#)X=aY;Lgu_@gVzQI`0tw6o9rWV%3XXUkB4Hy^r5;&W)`DOoSU+ihP>` zJg8Z6GaPwvzkuC+sv~&mk&q`ZM{z~}*|3n;y-S$VOu&MNZ~t6(x?vY5oV)u_htfg> zG>DLL1C+J2gO{#1M*k^{?dah&FLzw4fNh3L0Tsa6=U616P< z$kdNPrtCZfonA#%2RWL{5iToLDQ5hPOl6;*|$C> zs2Y1ZhZ4gbv}mx~@155jE6QTZoQH+D7cgnM{uQ?a7b`Xn9xgXUi6f!UksH2mf5$_Y z;=vL-s@jOt!r&il&pHpCfobEkQ84`LxR`*c?RN5=p8gsCHYz5S@`8~8Qnv7wuOhS> zfb)99-9;W35oM&hpPOkL#WrI6z(^DKO~f7cCq2wq$C>fHHIRyUKPra>?UUd_$2|U8 zro;5L=jv$>aww}+1ZdjZKkWmcR`Ew5P$VgLNK~R(c0U@#js@HVhv!n*iHHl2>^>_h zCJ0j1@?0Wn_w$s-64mSYuIoyzUb^bqi?ubdY!J}UC|(0j;)Hj$AwmYGaoeGzj(-oc zskH;+Myqp~KQ$ZX3AA_9R(~$s{+a2zMtw!EFEBJ9ij?m_23+K8e@8C-oyf)U*6`G6 z5#)wpN9X=X0gf?px8=WXU{?HaGvNMNp{lH4tcIf%4d)+tjIge4r%IdYzz*Dc!Euic z-j^5)NHt=dFVYH*Mz@x_G3y{2CnE<1_ArVyv%3}wY4OH%sitDCNIY>a3@sEi<<&<- zOucUQ!c6dV(htVviCmvOR-hH>z$Es)k6N^lq2_iK_$bZNM0ZcPM=S~90d}kYI&d>^ z6w%O3$UVzNF_o7*53qFX&+&^IMh!+ktVB(D7jYNd+K;^vEF;W8J zjXfsg4pcQT=`?&+t1#kJ3A}g_yyxg_uOchFtrg=k!~Dt;U+QHUQk@ESPDwirmM;v{ zk61B?dtc8Qhn6nvH5XdTSBm%9jX^OH_X#-UUY))gXp&5=QxTD0w-6^<9K$P&5*c`F z*n0e%;HbtkUE12@v)ZI4?7aK~HHOOH!SP3eD;9La){=i6zyyBrMqIu{BaT(fcg$<| znX8hydNFtAGQ3|1pWzqabuz{(fta4%1^$rv)uV4-J_^d6OR&Ca9dCllhg-gxh~MIS zG#vl!Io^mxWBT&YeNrjDZ*C(q{(9D-)Vvla zmgUL8rSf2rOM!3VC?Ed`Uo<32{1?(2n#7d_D%c5oh{;Ptu= zH!>uteS`mRJlJgBOAc%39%?=;0Z7o4rQY@5(HRp2*5qNxZTJTgR&fVQJWQp=IDET0 znymH(9$gWiul$V>UPHy(cZV*7FT@&8k$7|q5)l$7CM9SM-1D1tU(`?7d~8@Ua&=Bu zUv-m*P;kQY<+KibdC(`{Yg{7moE)a9k_A?=HNv2|=%XAdK1r+<$e z1A4307N}duVz9Ma=i9*~i%xXP-MoYDbHw}Z|ML#|im0zoF&;n76>H>qkV8Qo{zif2 zQr00OWC!qn{LUn#3h#%61DHfOM5t~Vj_egS#q=uB>HYOO;)rR4zdeE6an7g0@0omE z-e`m&tB{g*QXp%LZ_Vhv1kWsTG9Tvx5Mav6{jU{i+2^?hPKpn22CZt5un@*A>B`Ok zNYN|4+^ds)9R6AlwctsGEVR6H6nu+xnUe9JxA+Z=NP+2!-7$gl5s;lxSMg~Z_|uIq z0pi>!7|UM#m-;SI;@(3bqd0}K<~9TDlw`Dm<#v?s9|xnj7WNO9xd&>1 zf;}A4bVqDtP7}ULOJh3##;7^LIDDfXncUxc@XHA>FgEP_-!Kj_RZ2YGM8I19>ZRom zUDpW2$B}X1hhQ=3vTixi!ToZ)ldb5CJv?WVZA1M?ANK>KluuRek-T_gEx9-Wy1 zb{Zh<_SjsAB$%RI!vUWFeqlJ4y$S<(ID1CijRb}$r&i>dMvYHN7{s3L3G+*5=#s>QLgOsoIH>~BK}MQ9hA|NGYeo8kYnrp;UV z|G#z)gP1#$a}>VxsYGAfuyWAUXis6!>rubCzwQd#{~Tk!5zx4BD1IX1eaG~QY&BYe z$}M1we4N9Sau_fASYo=D;|A%aSiA{Pbz~o;kx!Za6-gtfsCp*;^EMaYFU0frKf^u) zG*uYCzZ|(Q{EMU8K7;@KR2lGM+@$41=)Zl(?}z<4G4wgX)xZ6kkNJnswoa4n=VnjB zDX^4D;K2UAMQnexeQ5oD?gIomQhfe~=}(OI`?G(0-$f4auQfXAC{DjsU+S*ZUbNYz&V`%89&4gOeqYzy)PG$6%mZwe@SJ@7&q z+X0t2fB?2o)GlKQKeYu(0D2IKw%-k~jYSjs?(ccc9)Kk{KR{w_^Xuz7x6|A~8Za{| z-W3H~sUmG%G-xik(SXSd0=CLw3-|^- z0!hn*4st!Po4AV1gTB432Mv#%0PNqnsFHdEk!7d^th#P)xW2vw5*7ylh>ZeST>15h zgEds3`RcoVh*#)zCO{~*v7h8+wykwFGSojK_-mQ(=F6$Q1p_sHU*F&34KwtZ<38th zdg}ls3Z~$EFEGDG(xHd6t*K+WLmdLcX*K~VPm&q~aPO%bfQjBgBh=jp(D4xs{=!uH z733hP2izX%$$!kgT*q=smvJrq?1TGtz<1sG^Z68x&?NE_v}~l^0QxSCTL2wwN)xLK zr{zat_SFHwRVBtCAa2`cn4HC7J&VR&&i$J8Fc0Ja+UZ|1@CZzH#;ixdb8DmJQz97` z1JAbLdM1+l#qR(hd|t*sMI+tD5ZMNzOG;NkUC$N}#w%}cth)h7n_xE%xHG4y1f%SC z&XI9w8pZff%CFZp8VeksXvk~`=mH353+bRjmXp`EeM|O1svCDd>D4Hl-TGc}$hV(4 zg3?2F-ElP6cB%~U7wk3B!IHfBq*?PWYv50b{zB#z= zXzKG)wjNqfb0nC#m%kn9#u_0ndeippX_IRx0b0rHUm!SsTjcxu;g^xUPx+#L>w3X2 z2z%d~LgCpwBfLeRikHULYz6aSUuo@$gtQUACFCw_i>oH$C?Ta&?Fr4~A^>?6@>qMZ zEC9XcS`OGX#2f$=_vovyfT~_&#jJ0@PTK*{oX!o8C!g#h$3gUsr3rxB1F*J@XLWvT zAo(R|Eg)!Y#~YUg|1c;E1adg4LsM?s*7yKfo^W{r%!@7GYmVF_FNjUwKS{a5^G-0n zTX$<3Td6oMeax{1u4Vj@(TSVqxS9a5^n~_F4F-?gMZS-#dF z+SuzJ{HO_Nmc{ja;nr-!!lwmLj8B-{Yt9w4_{tXAE$$g>QT~G@mBquJ?Jg}7+?uUz z9AyS^Ys+~99A&@8lifv%a8N79zd(*)p8rr^`vpi6*uL{>zE-ma_BSF|BK=b4)NV*T z-oeJAtGdly8>j92R#V08`q|lY|ob(s#*hPcE3NNbjzW{fumvPWO7ap{eRf|ub`;9u5BAu zL}`N1O_og4fD!~G3z9RE1hEN{ljI->k|Z~wK|r#Cf&q|>BuN5IlR;E6k_9CrsU?21 zz4f}U=Y5}@zv{1V>)WHKg0iq_xfRe!=!4XsCo>easA>QfDj#{Y?z zMKgUd%`~QTf{u_$ZQ-Y=9x9I#kdJXx6*Yrh7+}Roxz`dGn zJ(>Tl_5aTh^Z7D(Km)M;asU4PF&@-0mo9$x|KpXw!5W&ENv#w*BR~2tq6-6Cwxq-T?9o!f0IyQ>8>L_W8TbFDKTpu$)mQjow*Cy)KjcmVG5CTy z`bX~n^RfN+Y8uL5>zpn&czcb+U&!+sZE822cWWRQ1@sR${??PI@Qp?07 zKCogm%j68txc7L$u6{VQJ#~c4( za$}J6H&?P$nG*gpYc1SCC_vQFS9y>Q=Ena-hW@#~=LYzh*v(A-XRjA@05dU6Whwet z1H9d!-3Fh(;oX0S0ii1fmY?oLSO*?;0hgx7XND~v+eI>5U?Tkwpzpu)=rRqMN3T4i z!v3uJWI!YP_I%LKsu{n=*W5S->tnV0my^1 zZ_SUFA0Pbq(gn=Q{AP4uD}WP~iUTsJB~Yq1zC51u24F*Q1V9U_XPtro*vgDfizFIe zJlA8l4?M^&fqr{Kf^B5N;lQWV{oQVySDX+Q73@q20Ec0R;X|KE^FrDs<&_?}ee}Z< z7w*%B6`y6lTxTZ_@ul>UKVcj-csJJ0f8JFg;N>b9g1*F%Q#uTV2}W1t01eghZE-aT zJ`Q56m;rzRDd;HYjr1P6-3C^ssgIK9nC}CLBBE;8n3v=%J^=FtH;;G2m;89|)$y_U z>A^_4pc%kFnnbXG6~2ylH2jTC;L!{dm(F-=pwf{FH16Dz0LU;=U>`7j;&rZ_jTAEM z2h|Sp`^nlz0HJ6F)C2P{=%P?f9NB#Mb)ywH(9q#w3jy>#Fl`|L>#ck3Vy06o7{7EU z9WfRVer%Ni*Rx115Q6Ad+aH$$Sug_748lbqYP`5B3ih!mu*->>f;O_V;J;r4MKi{V zOBe4$kNZHa&u^3fY-jg(Hb6m#(8qgQ`@3@i&&hp&Ub_k291p(j>L8Ia|5)P(0#dRs zw))K-Q?f_16qeDPsSe*8I#~SqoEx^Vvu?qM6W`|_fGE{{AyG9F6jDe*8S$YHZZIL} zi*E2PIZ)*q=MFr8o;0#XDu$vd&;mTT$Bk(apDmNTxs9~0w5Sl8yc~d`JKDnsQNcis z&)bkiXPZ~gS9ooKE`pFE0fB~1g`TLfZV9(vGnuQK!0v~58iy4p7?7_jo(kmHxQ4IA zs0CYF8wg&h#=A~|<02W=O+k5I5E8YGG@tA~4$PjhzsK)JsjL`P8|l$b!^p4>Vtdv- zFiPo{RU4iHMUnA(>6AP~2pDF0`hqg2Hc$}91SNu2Jgj2JvPFWp+QVG%x6D5jfCr}O zfj~OZ*At&d6Z#Fb{iMcsL8TWj&PU`KyMS9xP*}eIS!;xrWtVaQB98a4!}YlZ>HDrZ zOHYB00eD{GUg5QC6CT5?r$1g4qId(ST*3o2=ul3fFpEbL zxePx8d1Q!I4eSb`nvj|DK8jCtp=M{|>BFi0 zxn?3tz5@)?%_z%sXQ87(va7Z% z!}s+#^pqXhx`Iy)`D=v}wr26r09S@h57OFAq@jaD?fE*(R zg?p&-h*AeUS!1eip;UFn>j&_$N}!3yvqy1VxwY0`aV-=#Tkyf>oVjx46&J&@0AQIqcfFNC1XMG2NRrp! zlUKtW&o$5et;tQ%f@CrcUyP?*YR&yAkN{rZX8;8oH=JIn;JAvu(5qY!+DW zv&~#)e&Rk#y5ZKtCRhb$INOLxO>LSxxd7!We-0UE8<&!2u^6Ehfs{{0TSW=I%t|FH z2W_v3SOWwfn0<-ehSvjj4U0@1XpA~s1B`+2!)zh#MZ$ffb=zL5xj6f$xqfZ29GJ}q zAXLXme?V3iUtX7t^oI&z8y154O<%TFOa-26YWNZ=o8dIMlHp%aKI|o69cb|eV%B8tq@Ud8nXumHuz*5x5$ZV z@Yj9&_UrcIW7$99^bSvm;ljO#Lp~jU!l`^p5XkWO>6=_vc%DMhikN~9Fcg#_*wrf% zyET%k4M^Y^8^&mtaCl*mT2L|>hh@yiNT?kAqEI4+6MmN9d>|PDd8 z_p*`bMt2RsJZoul*=4!!=~$s-Brs?Y6G$0)>a|CoX~n_1)B?JwJDufLHxCPw6Mxw*|{jf+VtSSV!ax)X~dIl%P6DqB|$c_5GEYCWs7T zdVBSGW+H;K>m#0kB)Nw>Gnjzgg&L?EzQ&4ER?f3|pua~*gnU<=qY?_;y5@t?NUDKI zK%9b4wsZ1IZ&}xy#m_fG=s``do-`edUT?49O?FH!WtVRCSQ|Hv)ecb?O@lonT%vV~ z7?5NYf}QH~C%Guk!v{$ystq{1D8%V!?~Jxmg+!hF2%C32uUUQjnQf|(Rm0}72IT>y z3NZ|$$bZdoR?AA__K_74{7kN`o~d3JiG9g{sl34gg^)QT9U^SYWXh+?*(l}_W*1Z( zr*~4cBw4FJ<}hIQwVRKsOI%V-8uRm_^e;aj+?F`1P-f$Ademx~0Vu-U8>rH;Ix|Ld zTxI8JRV=(bqzucXz@+j~PWm~`7#i{+eN(g*F+V50cu9=y@+SP8iDhf%?u*OoD5s;F zy@N{tBR!_)=;h|=C}8UstA%o)-YfIpjg^4QY)M*42-vU{vBjV6ypcs)FMfkq#d(Vh zEZ$-r4e@OkLX}mas~AI4t5Rt$sZLZXC(xKaLuHrUt?7*cu= z-8cu7N8sin&WEozcvN1c`vsTU%dNvcoLps4U>d@@b2#yAMdD0NEREhR&X~t@uOr`P z)T=iPjH^gjELL8q81`hfI;oJEOUw0+rMEWQhF{oMwgM|OPL+Cx$T-Vs2_AHFWDGE! zc@{Bj9ZW7Z#T_h|w+()J)JquO#ILw8?+D*1n`EuI!1P^)!L(o65xm=p{=8dpf}J-C z9i}#ap0~PQuFf=U7*5xI47Lwe^LOlvFmK7U!^>b{2n?g6@lA}x<$z}F)&Uh}>(vvk zd0+b{+d7I^aq-X2#o)FNRTk9-x5)**3kpPEtbMga9PVL;(r}X8Uuux-9*?e#xjU+8 zdqd#fCf_Z_=>}xV0}244bXqsj{Z0u&SU5j+OKT;--ADhVN*Z`2Eu2v_H<{4*7u#f< zMKt7*gMujGbT7O>Jt+lY;dq5TEu1Y#$CHdb_9a`_b*zpzWtRu#OhAV#TT4Jv^HZWctLnKTeE zLb*j$A`)(@Bvm4xl;y}i7lkcH#UPM??L>_Sa3n{TLdRmT%A7pX(6mkAP~qEIf;Ov& z^erj0(?>^Tc|wUfinC(q=yVNhM0D&7N&;|sw?dHAcQ716VZIt1krt6!7JW;Xt zWjlC}Nr{;9+mDHqIMNr-M02yh;?7nB3fh7C`lfK}nG-DmCHH3_y%8nZ=uOD2?IB@; zaP=}ONiWJQ4FwIPjoMCeXi$rmv5|044>9Vcbm>X zganigFp3K}Q2zo=xSITysC4>D*l`tNk&H(A8U9tFoaNv<64a5*u6jQu?rapB?xw!l z;abc7sp9IlViQzv(Q&kB(}FE@k*QjwLTtp9xW^m%W|Mv2W-dQFuu8~KL?CAFsidim z_=;qx?L&5yKY>p<3;XKNIWj95w4|c+=R1Q9?AY|mA5!sEUKN+uVahNXePyncq=sJ1 zQ@;0Z?$QGOY~%9}hMBUB9N(5XfkK>loty3(jyCbsH#Tg}Ytq~0a93QE*BBP#5rHn`XDa2}@EIKI)up>2{M56pDA46_N8R)4Lz;$V zN@~iFoej%u$PBXCFw|r6$`H6S<%n8E#W&6rVUYk7D!K4W(natBS}&Q1eS$iaos$_w zPC(BT{OqbWZn<_?tcR7e0*UyYgg0ytb-P+l%MuqayQ_=$%y6Lep=?abXfKa#JHwts73~HIKsCI>5ANSKuR_bnbD@$>8BDP~(l^og)a5 zzCF*b!7lA_46YQthp4DTd+0_yS%i8~1TPV%UJ1fOj|#Gsbjn^8-x*U;$r!0t;uL+q z=}Ud%`U9s%6Eg}!bYAgT2Du@IaxGD(#IG3QEjc)I4x0f7oQ+A><%!D<(dXP+MTiDk z;uTl|;`Uk%R5@22d|Yhrb(*oJ~p+C@K%K#3BG$29we0){@u2RF=Z zItFUD`&oM#LIs?xYZFCNej$00KNU0vjXOz+m=XqHrLheAvKZOn?JuZ{!yLo=4c@VL zFW~O3F})Rk<214ehQpuP>{g5Y&h&R<^WSrOx1iIN@Szz}W1G9tv?W$9F8Pq&Lv!Ab zpyiop6W9+3lpEdRY1?lEdQRJaeO`W*qnG0Tv_;cPd!~{eUq3&d3BYPfpP0TGl)Sam z@HyYYNTj2-6t3-AYWM7=o@gdv5B2o!x;&W3pQp|L%v=Dq{W-XjQ^q3#n8eIMNrJCX zK6PjPdy1SKUFr-3=hQo#JyVyj5helm4G|XAPbq6%`7af4atJsqx>IiMtzJt~3j7-(qxfEv_n*SN42Lx+rn4~zq2=p^&;001Idra^DWd{ue(@g z5o%JVp=42T6rV_m;wwELDU%>Goic=&S~s^4ME*jF0aN0Fo#uc+3s_X)k!@_EN%hL} zRy}Qe2}KrNRZwP_rGtSdoNt6A)nKQ*&yF&rVAQhb>wT6E{T79zFNR2X1x-7Rm2s-q zjTTDF6r2`KLzfRv@uqU7BBaki==ZG6H{_X1X=*l>;*QRPwuFJ5hx&Aq#4l5+Gk?b3HTc6L##$1y5Oh2u_usJA?KC?QTvXqudM1y$3KZrvy^ zooAe}8(EjJANbX{CCQ`whOht}It?-oO1?3}^jeLZFt7ZbF!{nV#IOrZUo zz?h2209}>P;|DS(NU{3J1>#hYXH05>5V5d5b`kpY(-x#v8Qtwzs2Z&}tUD}}UO`^b z1eRxmQc6bW2#pBdP?lWA{hRCl=%T)=P}{xh;0PdSwA0w!%}j8h(#bEzi-$9Ib@4oT zK-RkXy*C6rJq1b&oUiY@$$huhvY-nANyabbP|iRwjh%!9uEC~7lpIR3%nG~e-O6O< zHO*3IWZE8fPD_gaoy=1YQ`X#`FEMAEFW*MeejT6}m(tXY=w`rFQWCg>)c!eF)5_N{ zYCh68&CP#s4sZZ}?oY%LgO6BH9HMz%gyUC`@OU;BHZr^BE2w;Is;7EGn=wxx^g@0= zyQO;G&mc_-G9?FgJ*khWWe7nSSplDXKEgwTGKY|f z_(6#}JbOXF#1CG^rjoQ{Q*WT8Q78^&r9T(#fjOhZ+i!Vuw2d~tV9TxPK?f}wLK)yi z;gL#sjo7xNM4!6mt<_odTtJHm>0i&x7p%zBeZM(w;0U7%jdvYZ)(!F3Pl6$=tHLJI7o!O^6 z>bpUjiaE2-XZG}paZSD;Lfe-(;!wb&FW|+sio_~ODZ1$ShoNI~$K|fHeWcZ@{ZxDz z50rhjd(Utm#Xj#t8s*HYwzIEX5qQL=^wWPX+Yc$?W?=-9P$6^beT?+}IkT6uei3P0 zn-mIGAc80H%07$qH>$5qxVGff?Bx%X(Do{ZEXU)ggw`ecZjIeoy}@nmMv|UY>C2hc ztB4j-NRjoAUy=SI0+(#&>!)s@{6(e6pp^x;n!I$H&F}^G;DBG(m7o}i2otwd|D37i zi{Y7$!#gYEa`-g5%B1ymu{4akfb7MqWm(FldvCRZvjkrXU2{Cc5QxhegkVty8#2?IaT7h1s3ukQNS4(=<&3U3b+gV)_uub9- zf%S!kKt-T8^*P~7?Anjt-As92upF%sW)PTO5*vsRg>g%evxjStG*KuIK@{kRkdXU` zv+AL6q!mXl;ccUPhmr>fVhP~wF$h0H06P{oGfrfV^9I=if)DOmZQBuoGvGxgl_4_X zW^NMDn>Ym2JP!A)?vBf8W38VxSm9P;QIbB$oqdq>Ua*v#X-jIgf5P*fgDK>ra&+)q zcsg8CtLYHyQI?IEdq@|LUn1p!Y(5 z;q*Q^Up`Oq*Q=Rz{o)HavCA~0em>it^5bx-mN22u$T!dl=-{o%mQ3$^;MwMXsW7Vt z%solB&@?8@7*`pB6Zrca8l}J9u%snUg*f(dR$tLVr_X(h%1v*RDO{x|72wq+j&RSo zYyBg(N~+lJD9alqbWJCtUU`K-RMFUaR*ek0jd~K0kSbv<19mJ_pYv9R_?=}CnpbwN zx0JB&TGcve*}6o*;FqRjwDxnrw{Sz8IiWK$0a_0&bu=mLjJR?l4^`OY-Fk!)j9f>_s~b=v(7M91uGvh4Dv9V&CgwjtU$6Fp6hOmj(Zh+vT@bbGGtuo!jD*f3u9=DE=@(}z`o zd|PT_xi9OX*9)^r;S1U4d=2v(N2tGwBh7th^Y@#P?%jj8^x24x5#dxZ47Z^-<;oVPOlzVdw$v6*4=$_ZVgk7Nr z^-HJhAND3uDXTHM6Ql2+6&H^kf7lBq444vP_@jq6f~#$dH2%1v`u99l2Ncgh66KQd z*au~L)c>L-10N7PlE78w^QTzpJKl7H{M^20qYhA@r}kga{>^&-tw3J{3UuMDYVp5A zu>XsJ_y>Cco76`x@E7BMYE{60WCoPLnB|OF$v$52Ka}}G@V^NDh4Mh~7d^_S`Om20 znIyUYi%I&g#0_p{9FJ#YeHbtPLyok8_aH?!*|RGHgnR$#DC2)U#NQv~M1gQ$5XoAl z@SnE{&^l1c@_(Xrf1dRBV8~^Gzqm(*tp5WK-p9j(Q6c_yQ`|s+-#FAI{r98)xlaBC zAixi8<{ADw7ZbtLhFl?jwSUQ-KTrC5FhG6JwulRXQ_Y`AMUJl!6Lc3CImA<9fvk@B zvbO&dL>OWNyaQ0gN&bvy=qn+%5H9>6BLpe_Yg+QJ>$t$dUuapZ{VA^cXbBWK<_qiJ z9_9dUp>acz|KE@PXSAO)-~p4i1miy^BzQvv#76`ee|~(f1^(h4anaX5 z;LLS=U18gYM$-+d%kyEIKslzx!%?^n!;1vC9iYY&10BT-4{50!?%`ns5qAI)7Dc|` ze>XRD$NVCYIPd)yWdVve*qVJ>`c^Mb<$Qo3&}6D!1xu~T67+h{-*X7s5NXpkce{N5 zz2q>RnJ@cI(IEp%Ko2PjwRrvAG#-C=MA)7F=92qImcPUKAq}L*4Ag+@!K=lmdo|4w z`0DuvKxbNllM@P{fBU2Zg_u;e0%(#EfJS8B-v`E>zO_IQX%(ArrV850V->xpFYHoCE3vQICCZ*h;jKd9Vx z`_5e&dM}sy*+|A#6-F0os5qm`nD63IpV$Q7W7LMB2@vtxfa-Qh?Cbr{t?a+uAb=GC zIldH}KKN*Bg`DQF8hAyx?2W38c6zQ!Q=MeQI?=AzS_97`? z*#`$N8PKRCa;~)V1g{f=DI|vPxnzDFvGH(MLhSuI+3-oOll}Z#BUy@XxcPXgt1|Py z2{*=UFT5{>;E1VL1mNj}@TI!u%R!0Cw8TIST}s0oMssCe=Brysngy7F_l#LO9(bUA z4IE3$K=pbgUNyelwrl!#$>NcFPUDwJV)2piKfjS1z<;TJbdGXwh{<;4aR4c~QFA9~P)Hx~x&d^f3t8YrFB}6Bgq~bt<`K?~@(piMnL+_!59mg9 zBLEnuhP<>DzBo(3HL9k-B%eTN|HhcRG#GTs>#(_+d+YsG_!r=C$x77-rnn`wAaqz_ zZ|AcP1uzvcuo-u3`H2>vg5a$e=me?m#961@HY7%|0^GzyPC^x0#I0n%w)|wemYnR; zw6Rk$4W1S5+yF(r$Dg26z*^%`ZFK&aLl4&L5@8SMM<{y}D8rTj4&fI$3wwy?8p>NA z>X)to5xbm#MCf5YzyDpVS_5ChW~;aIXXhiTZB4#%rBTp+EEg43+H`unp&G&>-|T!b zgv=EH)&0*SQ)!+sY&qr8-NT-u_cG!^WwO-pQp?X?Dkz{@w(;*bh-cF1@aMXGA4w{@ zL@KPRxiiuglG^)gBXGlCFWu%U=&jQhB6=Ytafxa8Be;^-)IdeOLfHj&xmzwr9kM4v z*_!hwm_Ucc4Ey-N*VyA|x=X(0kxeU&J44QK{tbVZ(MDB^e80@8%2C+gC)Jig)i!oWLzUV4ivzFv&(A~z^uhTeQovz& zzWN28@)!l49c_3a*|%39_*YNaOekqkG*rDEAjo3z_5ea52b#D=1G)OWaJIrywMjfI zsaJLY@C4R&XwrMU^#^Xarin&bG%3YE?NboY3_I3lBqFWVm6B{;hCbfL`yXH&#g(pB z%kWc@6}Zp7$FrD4aL!-q<^~Z$T;W$r>bkhH;;Lg`9^knYUi~o^>Iu-HH45inl91mn zH2M(uzbF~{jc|u(yz0YSj2ynu2#<*$H^d}38W)lmoV*BKu$MhFy1BRrl8Y)ld@Zs2 zMcTYp_BvpP%3I@8#bqcPm{b)cm~|RH zWS#T_+nF-J++wzWNfM0Zob0?QoAm67P+85LZrq=eI!(wWcSa4=dadZG;i7rJBZE%Qd}mGA1u*hII#E zzS8M2@K%XU!Jrs=MGF=6i$1&;>)!x=mt~(cc-yV>`%h*mf+gM)9NuX@xP5c|bcRS4 zwI#m`N{+XGiZ}n#ienBqn3z5hYg(0?AIFG0U2q~C(kN0bV#Gy=mUd2~oH0M~!n?#9 zXwzr!(x!uD96>995~$wZEg-ZHz){qvYnmSd_=0V;GF6DX&ed@=eJ%sjv7IuR-wJcXAh>_ zLGRLbzn&h}hT0DeJtp%ylHZ=xuESV&OYTsM8#UXHJj?ax-WF!m@w<&G7|8W|yr}LH zP%c(s=ec(O)ZW!SA<7!Iq%zz&j(aVzXj$!<^Of>y?M$d|utq3nz2FyD>zwL|Mf&xQ zf?4yU)M96QZDE;!j_q#HWpMY^VTJ79aOHV0giKWDv+T=vcRJ*xje^)U{g89%g@9Cpr-KM z5uYewc7|Q%6%uBY2E_Nu3r&S&ep2;K4nt-Ox(m@d@y)>X*(#Tkom7uc z6v;OF4Af5yPJtC%LK>jjdOHYM0I+_?y66_fDG27yiEbPK7iim?W$zo?BG{pySr?EI+y1SGUfdJ3`B}WMuXnjE3guZK zBvYbu)6T@l3H$E&vK1Mb1+lVy~s&!ux)OM?aICpe+-QgjLAi&*MyX5ocVKWYjeB9Q4BM&0gVC z6dD9*{8$Dis9pLBh<2LipUU%LPa#i9`QPcjXts>U#R+7%83eysfoFQ&aArH9=iN@- zf;OX6H{TYQVXhu1G_VEv%AeuteUV$6XYQ;m^dbFwS{m>7gl-eu&rbwHNcT6hCQ8uZ zsazaS3>9I(Fc%Vj;ab0Rv)%j#u&9bnvBGeLlKNcBe#gldWScF>qNFh_8qay*=dj13 z%~XKpv38I}qcytUqyv^vd14*l$7J;2Ru4%kMkXknqm_L{qP&fip{TsCs3lIQXB(_& zS4@B{1m z28M1#d%qWa4(oR2GBesU?aBG9(_^^*MAoFT=^TF z`kkZ&#Hm_I(hf&R4#OOTxCeNRvAKTj+(Klj)88rx6IAj{j(i+JuSS`O5hFHdARtt? ztd{6=eGv_f#D#AvhT_1=>vJkYN|T*C%?r{;d^e8i(@2Zah&AZ=Yu>hv2?Ju}A`Y><$Y&Mg%4DEauR1x!}SNJ(Rq zQrsY&U4^Ze{lgb}U32v2&P|oSV zuq)e)gNeUBkix(`I#3V{rxGCAYz2$Q_Yij?eV)6Q=;p-nf^6vNCDp`cSV|dZ^y*l# zTCyP80)xzNzzCpnQR^5+4^v*GU9)8dw&i*#&PasZDhj9I%PF&YLn!unNb{%h3*x?B zcQIlC*dAs`p7K_NoEbIu7{B!Pk;YA1#-pVR)Dq)*YGrrv%g;idWNb&dEj^G(z z2sXQR*|?)1y!U`2XTjs;E%7QK8K!pxKB9l=VQ#@ZZ+4~zY)yPR>)w7&vU4(4^d8~) zY1m1WMVGN6jg&x+u3q2!R?UlkPSX3A)*~7O_3qzr7KmY7uPU$|VIJPh^|#M6X{GHu zXC`(zM!*WayE&-JioRW6#M^sk(Pr>QYSrsR(TY8@cG229+erYQ%Vw>W8MztCd9xBt zXII++M=pw**{Sby4?7=ec?&ctLbV1Y>$ndU|H%z>p5OM%><;@R_vc&a!q-kt%9ED{ z5E^f>#aXC`lB);t^r$V1jmHpbD$yoQh!8${5{|fHGNEP+zx68eOtghOTy_E{X+_%A z@kPxd35C579*>|+nzVhZ!Sf!dz=+;KqE_nMeo(r^Qm^zOmjD$Wm~GMN0bvJX1M^J(P!#Ij-Qc9iV@&xM3tuB?KFxJeukeIXxK55jaFx*Kfj(d zIv+uxgl%xs9>)5C@4)*gRgdH^3vhXk`l4lKw_|w6syH9)c3D`Y+<+#fK|Z@-O9H(- z*~}6yLuH7IKr|&w`Gm{vd%`a@UP?Zg>DYRbql6O2+*z0?(3krQLi1px_p*nxbeu2s z;$UgMLZL{D8$AbE+tD0^u+^I$@xE=t&B|Nt#zxfKMj=-QO3S*$%#d=OT3daY8JNX| z5d+JNY7v#rE5;qLrk{(N!xTl_U}g){*c^8tw9P`)g!0+vb~F9xV_e#ZTRo0 zym)_VJYgfhOnd+BJM?!s{BYb-*WTsdfA+4}d5s~#1!d7ttAGE7*-Nmtzl$YU1ycY& zj{zkXuwaIyHXrRej_^+V)zXNT;G64x%EiTK#8J7`(!A9LxuG@^Vwc$OE>Ul+cj)Wzj`tvGzS^iYI|l&Bpb z?N=OgM)w$;??9GCDfw4ldz;FxKz92j#7-pKK#7VFG&0E74LPT9<~B2!wOxJz?P6JR z$!nLKn$buM#TF_?yzoLDdDnwaPblg9-=D-Fwf z4Rzb-JtBNH@n7aOHz+UE5#@cN9VaA4s8eVUD};`GzTWB`9c)$9IgKVs9qrbn#teXj zq!0P3ujc$VVb8c5lFR2F%R(PF28PwHVh-iJ9cmCcw^7s#iV3Ss~!xc_6=g$)q3XO3|xwKF8GCZYO{WRQFU$T!wwM%jZ%l_1Gc<9adza z?z~vMHOY}~(f~2Ie`ED(4CA7~)cdw0-uDm0;K<=DqRFU?bADUxNTk%K%$u(q$4jcd zv-E7CixS6ha_${_s}Fk{NwK}b!?_{9AFzV)jMMqxTB1#+v-<|y`wU~971O^OQhN}w$7`?_##VIo z7y0!;Qk`!{3#xxRtH3yP3sIu}5&r3wN(6z)O5&>0(Th2#9=cE_Y3gYL3j1qEeV1H8 zSMO8G0zBG`rzd}*(-3*f^8C4^76T*pDY#7;r)xHF5Hzqe1uT}{ecPUXeDzh3eQCBu zG<{pmMVQ$bd6FX?p&}1L{pl?uh1{GCQcoA9s)iM7Qet18ntZY_qNVb$>vBh%979&_ zbJ7^f^lL2GJ7Dz*Ce5fmQ6^Kkud-k9+2#}Oo|k*UKVAGs78(^;_KndFFT`52P$#J1MVXX_BXS|M_nB#-gtGc*ljy`f!OR;Q0I{XZwffCs$T#)uxR!~JKoyq*`m1_f=!rSpYvQ{C* zx<<02xlcsN6JPjfj=}*F(CENa^h%wtEp_LXd>*KQF{3swZ@1 z8$|6|2|BsYsYeKI<<#tPAS<)WWww%t$_E;q%0fAd@IkoABCEhR5QN9HBB_Ql<=Y;W zp`80XX2X`p&)tSI5J}c_`!=I`ja>~Df6cr;1`|eRzWE_*W&Fo#SLbVplP`w~Du$+E;Akgyu|zrLTDFh`2aVg5 zxx@<0p>)$yH#@v8hS%MfwsLf_uGdn6QD($F<6*^!5i%4GJD|>>LY;r8R%E#-IhE?% zN+WbH)P3d2e>=slG@~QIt**TNva|yv&meThns6S&=|p68#$@;wXBtD--J~i=10ZF@ zS_xmHC=9#@hfTfuz6T>0(G(seEtF@8J?25*t62CM8fnxWoRnyZRy*_DnPX8aIs)!# zu?S{3XNnsn03!#!J0>|KHs@ZCNlBQ4{CQ@DhlOz*W@`EKS@`<8ajkDO+sVsHs|u67 zBt4_o0HVV<;H>xbj%Di_ z)MxL4)x2xT{Fh;CqlKxW@z`;t2KExFyk4oJ{yMOw#l>P1t50nGHHWp8o-J&I@bJMX z3PyQiN+0H4+|qhVmFM2S?KHfP;c|iq-1>;(F3BO(#L)9x{d^F0;~iM5Phvm-atfL8 zTanl<9}YGxO|>451j(HYN93Fo#&c0pAel{jd#%5vsAUwC;*j(;ROR?z-oM3QQcqbq znshwOWyP~Xwxt?jt`}ij__*}$yphxAy@~&v>DZkkPW>^JfqpZ-)~g@9yLfhgEEhKy zux?*;*bsi!o?(Ddd4IG8l4`Iv$H;@xw?^lBrY(iOyBN^OZz&mBbwkulX3mz3&?s9I z+4CvzskKF`@L8`A{t}nJ^3e`!$cx2$2MOu4e@(p=NN6g{KH=YGGWO7>Dq<`HG(SXGr|O zUVAOo zSosv1R;IZx7RF`)7r#(6DIqw`Vvmd`h*pTVr20fYlYKesc`IWnFf*$${z5w6m`MAxna((~%!|msn zn^07XqPGXeyq{;3%wPZIQq zunEY2pYk97SDJo)ju3Z&$AnHlBg~;|U+i;@w3Pd=5>q(XZp0wx6s#IBU&9$!a?-R%7o|$KzN$B!n{>{TU4#e_zjQMdn;`1gZly4J zwl_NfotQ`XLeze_dCYmF!T z)}Qxk)*5pg{}JCq`tgdp!UUhT-RPYO{XA$dd&H?Q19=o|CjQeTJ0XG9joF4BVIUaPyctn_qf1Al4q)q>s zZ~uCo@1nt9h=o*{{5cee0*3-V^tEX#fp}MfCW@-RIoH4B{SZfBS)_ka*72{^0_Y6z zuMg;d`-}fSvK?}lSi@yONuwZ8=`pg3E<3xR{4^XNvf>TW^A3+Tf=?OiS-??n)I;Kd zG&y}j8F1#k3Dn_8j}B&Wtj(D5Tdb-qXrUR9?%qn=24s6ZG2scB?A)q1Yjh=bA9RO5 z^OPhj&JNz2z75!epo4q#z(t)%06+_( z`dj_O7wEQsm$7^1J?su-#mL#Vs3;)h3N-9|(!_UAVA&D<6b%gdwQvIv_EAlbtfLHR9vLJbu&6KIb)3yRVc z8h~~Bk20XjNAg#X=6*|S`nP1Bx_|e}EWYUhzI1)F$Nc149K8@+8dNn8R^w}f@RGOX zdfgIBAkX#;F#MifC0cwuZu&viUf4oY=`eL<_t6&84)@;^c zR6wyaW8!f7ZJdR-L=cFRoX|-u=YDqo)~Ms#;-<|Nyl^}Fp!x7_ICIX(J6Z5m__ zmM{xIw`0Z|zbItiG4)VJ0u!NDJym9!HML@xEXBJ$d^c4~(A%J^QOxNRaPWZv*)Ruh zWz+8QbK}K3;5;P#;6@`DGyxlxU4lai(HEY4g{rVErS7} z;k2+>!u6lEGY3N2V%GO*KA2wFk4)gB}?>5 z&_&<)#r!{hEq?b&!x9*)QvjoZpU)3wWCl*XOaW;TcD?y4_eJjj^rUcwhY)B0TQl); zGZW>p0ed=K=+jZ=K-1pIVpk+#_gTTboLn3dnDjbl`wR!ra($fl&Rpf%@!#rtTB)(>T7L?yd=k9{m6|B~ea7yX2_(Fb% zXq2iHaLULV?WuAA6}_aO)2`o(OAt*^xUES|Qt1Moi5Rb~8eeO|+aQpn0%Ie&THub= z?9RNZEFy0z1zuDuzFEiln@LHKg9iE!b>J21Ai+#*14WmN=Yy2SoqP85ZTOsncHf#u z;O#$R@=BXe9yVO{N$R|b{xu*9i-HLNW3+DETVRgDaZsGC+o4G}iu&*qKV<8bzvnL- z?kXss*85Q4QWOD<)J&;)KEKyRxQa1+RwiIBk4$d_4P1uNZw(tq2fzDHc$oS;`~DIf zbjo&p^C_Lc&(&RhZo(d)ujUNp9{Z;qQ-N}0w+!5#Z`fkbs1Sl;xVU_jg%aiwvGRwf zx-gpd@R+l4>B`EOM=|NTy|7BFR!F*F$XTjs4ey~dgf;4sh5FaKMFU4tQ8 z=4+Ua_$JEUL(@~<7~OTSaia`TVuPs>Qii0&%8{hr-0O7c-6? z7XTO;y(O_hSznG8Cycy|(x0PE+zDenvhZpp=6;9Cw0Egrt1gxczb^&exJk<{U@(F; zn_%Mb?X@V`BTL?DC^Jfki21%QZ+LCI#ibD^?z3;DFHjV`2a;{c58m=`k>U-OmB4tQ zX23)CMd-&$VCPc3hWP0ntwK)~ab(J9^SuRIRmK+Dg8q(gef+L@#Yud!V}`hS{1~*u zumU!8!(fWlFaFR8e#qN8tadJU7@%L{RysDZTNW%89fz!UwGqx{W zKnIyVz)X!4D#$`!+0#q z8sylob8r~$hXOfw4rfHv%bpBf-o6iP{mehpR+pfUZqhCmg>uf;U{r2C{-z)upL-QK zq14h0=k-dm=%Qe@>@j=*_SWj`&dI0Yd3<5&AcPQpLpAb)RAhZRz#cH>>Fz-3BmCTvG3YKyewoxr3Blm4s3CG4M}w)0X+Q zun6!ehoy7nQ3G345jn~#=vs#<3Ggi&muIs|O_kD~;+NP>S;rUc7OKc^TeR-_OP96^E7) zyAU0Fq7yd_Oe{=}x+O+wYMs`YG6kID6VJP>wp-0}hCRMaD}@nNwmPZ+Hn zw-ZNarWhw@F1VO}1$*5@(G|=Q$3sWX-|MWcUR*D(cd-&)`m)-<=+vja=;n2)er|hnJ8s-J zW1>jjEoeKdW<{a=!Ke4yhp(A~x7x6k#)png4$tna1WVd~u@cE54X%{GDrSwoONHtS z^yf-T0z@o6rQ!4vD<|%b7 zCM06?-rCnZ!|9K>l%~r;F;f2zSKl4a_WHixs#dH@Y&B!6ptjcDR8bwoj!mtiR;^Mr z_N>{`R&`m4t<;Rzv}#096_pOLYp>rs=W}|_`F;QLYH0H0c|YU6@9Vm+i|8Kk5Pdth zQCcoH)w1ood_p^zqGm%b!G}K`BuJ5<0sMe5P~Je<@GPWPz%@aG@4?&Ek3#fs2_VxK zkc+)}PbhVbQNLf1y1^MH?fVr6!1`{X?xT{Kqtf}LWrkJdKm;0g7fmLjwJ=2fl z5QgO%qf5CZlVBGpk`D~7+>f1!5!$fg)|A_ihg8RiM&C=fMD_}lgYVDlg^aUCT)3l1 z2%;+j5nCe#u0mD}JTR9XAsh@*m~h3eOpOG%rj@61^x1kK4w$o2fmNztdN(Yn^so%bC+*4^AzU*o5>1~ZIMw_$p!x?3MH^7jd&Z{kW z{g4Zcuq{7;vFH(ZK7W$NUnFsLlrbFS*y|VLZ&|A@BkzfRxXh%on}B;*`+WduD3}?O zJ?VR__maqV*Ibx7=P;(XofQWTyY#AGkSk^RC9bOol(V@0v1mwmkCC61S~R}>^N6Qz z1Od!B<6e>i5S`!&?Ky8H6&REE2_ES_B$M(w>4yeidC*kUX~@d%zG`ELDfMX#M`TwH z^+55#%y%pQ+vhTO+ugja?%tD8={~E35vM&Ul)!QDuo%W)f1WBJCkVou@v{_RS(sMNvdcvpV!_Cv4Z`+PuM94%RX>m0 zt)!3GJkOir55&6-Q-R?oPv&pp7u^&pz%t-1h2Pn8eo68)>Zr>JZ$OIDH9>8cV`e+; z=;EIjcRWQ%m_ve*ITKFdma|0d^}IaxCD3MulJPx0Ij|AHfEuh{b%`3xkC^PJfMEh# zp+S%-M@dp@!*+6LQC;j-CJvGMQEj1H*sJK5^%=CZ_eX|h)`r>v-nIo(tS#|F$hRpB z^SVZaf+cXG99E7*Vz^p6ilq#Mk}w}5Cn6o*y{`D7v89Xe}<@gE_Ca8`9lH*JsqcB20pFB)GmxL;7sff zcD07sysy34Do(*ZF-!V%7Zl~xWipDCaWzJ8?GqVaJZZ)F?J4->2ST{cU~gU4=lcrE{2P!f zps3!tO2k|5-a!86Y!N+HP4$H?&ZK$7YgNq_1s;R+4N;vS8A15{qWcR-fYogRqKeh! zXL~{G!PdBRCL_>5P9_KH3^h+lk=B0o2=SITc7^YzQK8_qKD&!;>-Av3VQgCH+L^S_ zx-^u$ApC;8H*$!=t7S$`<6E3W6j9u(9_Hnpj1Zg95th)(`k0pgk~a4b7l2MX=wi5r zvI`B4T_ZN3QQ8o7PlEFSw;%E;q+n_nI30Fg;+SGwg3D(f9TvT6H}m3Cq0Es8SA`n^{McMNyQg+AzxYz#`{B=JxyFCP-v^@B8?@juCHxO4P_!1%4^vZf891pj(u zQ4h4!k@So$2JDc^XNu%EU}ESt>&EpF7qjXF93J5<3#CBA;bqCUNmi;lhXshYQN8vt zB`NX-zi*%fZJ5Lf@ZJ^3cPJbi==du1HkZ75wZ~Kr=q`F##ZyhO@%0(>gy1X4$O6J29y~7vw`*zIe#0soZ615|pSz{2O zLl#L%A8@v1?^WKN)=MYvCr7$_dhfCcl%FoY>B#;3g!lvL>18G?aUguH8`4l@-8_sJ zzdHA+G-5&ZmhWB*7^Xc|ukf%~9t1m>&_LzxiLs*C*4vc|HoFF+`d zt12Gh42q9Juv)3H^c~fnX+;(}=*DW`9^F?F6P_TYg;@W!x3_vQTI+MJG@fTRZH9(Z zOgTJL9?P>U-{N1u$H(A9JksEtOJGh0;ff{XJ}t+I)qxg@w5jX)(dr~2suVHR@amB! zSI3MhW6)^90~EZ_DEUONV-$O-^-#wa76BxN@@n@5tnx+s%AwMvb&h0@iASN!zcdhbDnq|C1i~`@#0TXz z~YdO&Zo zc$D+nb}+8TztQ~F%YU7;56mLQIR5d|ZW;VOo?CEOPz5p`vD2IeCzaX?7cTq)zm@N} zF`a%6WEb}_F*(QK2J1o!W!7mwfZ2b$M_Zvc9g%?2S<#CZT8D&k#kk~04={jiQh&?> zoe)-|Os$j`o#cLo89|*p`WjdgU^;RfxA6&Ip)V;DthaM}#XOC2Oi0=GNW|rz25?KM zntFy$NOp$j_UeRQM@t@zA;HJXYE3!v)f>)e-k3$$917SZ);>2h68YD0P<|S-{#<05 zm#+cJnWp@%! zwtS!W32##LrOz`~0NI`8+I@T9!i3UQ`iP7nvQ{CDiK{Xr>=6zGz{nzE){Hf$MR5ta58$Q=rxsV*{bv&+`)UEM3$`$R-mlJ9C8w)&MOv|;QU z1`836Y|P2a(AQiGH&EFX9!FsPnVQgmM|Ed2)e@I5>@i`M@hgusao)93)f*MjUi=?T z7Z7%J^*1o8o5LdNdwudTrO9y5r#|y#6FN{h9%R;h-p6b|wyt$uZzC;~r(?8*bB-Z3 z#V8iBJ29c5VCb&=Y0BnSD%jG5~Cup>Z9uFsXb-;@t4$mQDg?gkqjpox6E7M8rKuBT*^i&6$S1V9!qq4TmbmohS;{kwLFVf~{b@GJfaZxUbXQsCyj6srdr zo1bwLmB`60N8~C0<{4f(f%@AX!wd4iU<{besFwm~OtnpRgnP-g9 zx|S=YCe{4Qq2t-1iHowXgs_(p3(r?75eW#Pdjb%oVrm$Dhm6d9Efh@lf;K9)nfvQ; zZ!cdY-x~6@b}4hUjhlt)e7-su#y#8PN^L~hU(FYQp#3hIBnBTIRnvzvc670-h^N}? z7Hw(=4NOekvFt2n)kZm61nmvLwM_b-2;tXncCVN9`YcEb!Z%a}xii%hr3F+rmkk#N zi*X;XlQf?&M0EMz7=%Uf&P@x--G6o5e_i*5Kwh`2vz5IHa3x9WZ3~#`XioIGZ#-#L zni7HMOol3;ja9_Y8ZA%^^nR1`A?z9Z_-842wn`nxA*Q}pIg$WL+fR`vqm7qaB^89T zl>*NWczkEe|1Ffj)6*PuV3v5}7emLW9>>=AydE-6n6xk40lI%AK{Hf3VOI7ITqyjyp4s-8w7T@G-k=BPVlu)diH zkD?S`wf->{^}6m?LIE&qi1qG0F?e+aKK$F2R!)8Hc!c30bM6Aj)067O>!y@7i^AZm z(-+Sg1)PN{w7Rg@}pKS4i_qZd`Uj6S>mHmGfvBZw1th}MJ4G&u^=nEixwmjz^~ zf(-1)I=t3U12Qrt1f7Kg?~8b6Yr&&EB~reXqG*Fv8QG6t#)Rm;dM9t=e0!%N+PS~l zFw(hF=5^5bu+Ce>h(3!uOVFTMH}x7&PTlv%_42HfH&Ak^f5pXPw&c4rf}us~Rj||Z z;Iom-t59{QK@QsdiA-DfjL!8Mj~J;jY|@A9m{Ma!V1xRV`^_D6f83qKvjN_4Qi*7J z^&QC@fXSifKD5IhxH{ohg+_xC6C;i-os;FdMjfL+X)(WQm-;p7Cl_GjqK^d}V7 zL4@+9$1HBJKl19P(LzkbU5aMddw5D98QO>p#GIB&=nZK8V&q>I>vo}I)W`Z8m-K0A z3C~mLL<4lmdzhW@xDiTA?aHq~zf#b3L5E!S^Bto`7YQ_$Y0SEG{JOsfl3GX-g4L_S zj2@7%YBeM?lHyxl?vBsI>v|{$IKKJ}bH1!yrOOd?&e^8dpPvhSyJcpnWc3;4CnVQa zXPSXV$o^AblTdWk2RWwceS8Z0g@aDQ3X^~dz}pEQ;r z`3N24fS2D47a_4~Enn#>?OqqpSkmvLYH&v;80jTN`)T4_OlY0yHrw+j*B3-3v?vZ; zxCQE%9qFF4Z67lEc{@E&d#v9%oaxZVI{ywSi_zhyoS7>1Esb;kdZD$`9NAkvT3a>9 z7)am7*!3R6c|ttF59IRS99NB4P!Ze4WS}xsZ>8oMb8rIYt5!~;OWm?lbcMfI^&dl2 zkOBsl9541E96C;vM#oo~7ZeY3hj0(Rx@|JUx|M?*NFZG={U~Zg-LA+PiVi$*Y(ovq z7rG`fP$!9`moS$nZ|0@t+VW(tGTKH&9Dx=4fyL!mF()uOb;{w?Wjj~jNlK$lMyMWF zZfRu|Hjl5w*X5*t|F2j$nVM^;CN?+#?1fXGH$TFU?2Hf0IXg2x>Au{W(906gFW}Ha zlS4?{OXf4AlkQ3MBWnk`#@Wi6=TKY%@YL=)V7ZI)OP|Bb`hJjQHpJAs)Z8o=TOdb3do<$p58R& z5nZDRoTvshv{-z*+e2cW5(=!m3}_MARj94rn7C|v@QWtLt2e9?rxTKE>v4YP_;JkQ z*Cn%Ke?3aqMGx0iSqFxXSBPA-t?S>1=|(B(z5)#3;Tx6e}wqZ`2; zHX@AWr$Ihg`#GJm{5@h>&mg(GW;If)%u6};DWTi;q@`ED%=ruCJGj5vD}7E!m*YH! zIuCO3cO7hTD^g94XDx=aGdTsVt830WgL8C-cQRO-51@47nQAi(v0s$q=6XoE?B<|8rhUu zVC)V-X=|x4KIzr`>K5e!NkeM;k<59Cr4rcHZtia!&DuFN=ryKEN{9Y)b(8TAeV{y> z#VhOS>mQVy#U0C-VV(;r%whbJ+glZb*OTU`Jh+3#K8)a)tZk^&(HJ64XNHU(D*LT2 zCF7Z?4_>T2>F0r}7WeEDE(YhxH2{+(WYKfTJZF}^HK;2(LEts3GDXF*aB3m+u^)CB zEjL{b`jw(XNCPOY0(;CR(yfSg$x8iwBPQd0I6k8;oag+SSei_*eKEqrCoaRuH^pq1 z+q(X(9;@?I+Xj5@dC>Wca`ewrmA?cW!7d=%aN}^fG{#hC+9sZ+LDnHEh1Yzgd#BY& zOsMzuJo=qh$~r{*^skgxDEJ-pq|J$zM{L@IQh1BPG)!B8hV#Pp@Z#&m$ysRbg5ZAX z)SHZ6F_&^ZX>V`_VL~kXXMG>{f0K*!6Z{ZV*yW}4W_C^l-uV#et$jw?CcbI#`fDBc zHpdTwD~a^z)UU+~Hr=1b!PLAF!<%Ja~3kGnly}ZC#Eo{`A2zh(K;mLh_o+>rwlCHV;ODychR!n0=#svz+ z!dtksb%m&~T(KUZHF-rO_r$G<*a(iCFKOYD8lT)E%TJsL?OLSlxt$MTf0dMP}o}?=l&4U zwlj6`yZxs!Pk+@_YR$b}Mr*lfwOnw|dykI5NT6S5>-pThs`@!te3`2#Sd$$R4sz=~ zqmvz#+btO&$gwf73zeY0Gb`ZU>|ItD1}myN$ngE8e-+r33>%f^;NWV7=DA9)PJee5 zgkJer6pruX`#fV=lcH!Z7pe7>B9E2gdljt%b^+zA&t0#5646iCX4$@MYR&aotv&%G zL#%t>wd2gSv?O=-a-U>#+y?<33oT1`($6JMp!>=y&@yHF)DLY87J-cS6JA~t zaGyx5J0tz5-GDN2blG(I{Yrp0g0p70;I|4uXTE*T+gTXj&f?-uFUZLRAk%T#=wo}e z!l$@cF#o*PFYfnlu*${Vl!SzcZN+bHb@1ko?6MQX^PV4|#Cy^_%63kZflkGf+$XKu z#v9$}BY;s*8)T;D<}L{xw*1Ucai-k2W#^|;XnCmjO3F^b#!ePN!$!H{sR`$5JgF=^ z$IEXu>+a8Cmd)+Ga65i5Xz<}{L%IKiakB!z@_Enu(5r(+n~$wi+^fC1X-S9zv$+Df zeL8lPp&wymtV@KTTdgtTa|+hQG>+HLJ@$=y?AX5_tGOMxCx9AJJE)yflKJ5LwYTx! zp}$y=Oyb<$s`b6c0kFn}KyJe)LJ;^QsQjG0%_O_)Q9}EEs>X)g zQuA5olfP%doR&fiUYV0I7zyK`Xad{Gys3Hd=d=EYa{u>V=O6|}!t{cFq2IvkaBgyr zdIc*ThK>c5C&i&w<6z$oY>hxh=8r)zBg)-W-_XZ%n^tV}wvx+mwg~&7z{;0?TgK&v zbHf*8&0FPvC?hxXvRGq^SKInbxb|08^CGW>4f$hy@oJ5cMGK0zqAIOfWv+yp{+Sy9 z)MAbf?D!0;tq8UM_r)=YL5EC*03?qwI#e>&H++Fpv2B06ssNxjlr-&jOMRKn1Qc1` zP66HeoPx`aY;*0+8;`4Icp$_#??vr*JJ|}9zpSTv-d-&rS0si^l$Xa20Ywm>O1~6O zIrXETriDv3->-Pu?f{k;HG2S;Y2vK!oQv=1RUEuna>X_zv#Ze)&tvjU0mSVX$-_KE{>*J zYU~2q8#6OM^c3%eyWK%w#jOJkwNr_nvw4Jr?A-Tbr3E)lF1uKA&BHk-OOwOu{KO*q zLpqjo+YVi700kFV$S%*(4}C@7`=1N(zEWS-;uUSy0ti@-BZBqZzB%W2viJ#6bv1Nk zaEn0|fnIl70=~+@^sd}1n4n(JQ7MqV*=gnU*`_m-&jtSt*qHuGWOvA7P9)kiIzb_!mz6`BK?lk96t}?-j_s3o|jT5h3ZtcHaS*`SVaQD{s+Dj4Dw|m`Ek)IBieWL(_pPFL% zhQ@A*bH#~=k?m)AKB{bFq&-1z2L>ECrVP}^^g3=uHq|=i97A}{1MXqw2KMEQK_qK0 z$^o)X&ro1h*sT2cQ^0F)XtH&?j_9h`JXMXmd;OoOzp6kek13_=O0p$64goB}$(di~ z4FyTm*Ou6bPsx53%QH1N%g;$Eyk>>oX+zAm2Fb9aIQ7R14Y=bcF^e`fg1njk-ekby zWiyqne%}K7v%3r^S*fF$VQkd6aMCYbgdMFz=d){9@*m5H^m}EH*V2%Y-9{#{ldbh` zz`^ufYv|N~-2|WbYWR0$MY7lrKnk3$Jw=xC@vTWN0wz|$H*9*k0MLXOAF_0NI<5j3 zPxurak=zthowGhb%Luot?%xJD7~kc{&~w=fGS_4JcqMcs%q{@nt;wg|A1lEFg_~?K z4naRqCHX0FVw{T+Vw?J}vi$)fmYhNO(dZ+<#;0M3EBsTE-58G)oON06TH8FmuX|-k zx3~hp&@`<9Toe_^-j0PCSH13WJ^%iDYkC#XA8C^txj#`;kQV+;U@l{MIx^1zwqcsN23f3VCj5ss@13%kx#llhl|f$Q z^`=+_4AM&ZEp^W4`tO;!EzaY^l70zBa)5-9e<38Cgziz;`LG&MX#Hg)XBl_V>snzp zzLEXR_5cbIMQTmpyji>wKZ=(gzW%gcHJYa5D@ESOCh5!+uk9b~d=d5Dj8F3zO0y0k@ zSoX;~!D8A>EzCW9|JP$c+~rKtWi>~N;u(N~X4Uc=B23;d_{g^P6yFw&punND9-N;s zido#dC}gL3ZkFaQJ`fP>Y4D3t?>k&!_4@%B)_9u$d{Uy_&U=dhKy{@~y3CcKCe>4M z1_mhoqX5t z1N4Q-;j=4oHT)&k;jD$Y+$Ib*wc0(cb@ulwMeieP1;w_S^{$o@`yQ@dulO!dzB`;*Of zoUaFI@6tqtb}|*ATo04u=&#O?G&IjH-~T>SP_^HL^Yu~N{rb>a`D-CTJbdW6R7eMH z0r`pLJA|H=8sYt$SONTKcjUVyRpcs-&l$P)Z$7yW+=rKW%35R~?vT75E%pr4H(EK2 zr(7)dh1nQYQ!R8Q87V;S)!f|FNqjoO0#6~B+@?VnD+*S#5MUG)LW>!X0a{pBAs{r< zETogMZ|z-odlL{^sTX>e26%PmtO@yK>k5Acj=!UNNy?Y73;EZsf^uY}>T(fr*N=d+ z7e}UxN>BqyMSpL$*qewV!*BQdZx)Rvnx-}hP4GQSC~<+Z|4@Wj#LsKF2Q@@70yrR#Y%_m|WBS!E`Qt{F77&fa1(~>#9(yKEIM08%QUh*_n}?+dQ*~ zzow}530U0bEHJjwqJpOpdjs}9hVBs>_n2xEAXTA5o&_TjD*+PulH#|TJs127r)K~e zVX_X*5ZS#b=lUZ>%~xD(`5Id%KJjduaNQ?4@lF#=vdMl` z)@=@)q@=tXc$VicU;rnHAv{s(RTK%y+xhTEdoc3FaXVGU++^y?r`o!8D9!jUA%x?baIj|*ur_G&#+UrQwly{ZkxQA|7IRl{VXWzUq?#-~!Z ziD$5OvwoOzw~$tLPXUUIWN#Epq~n*hmIC|US`z1LfZ*+G%*mBRPZhNp;5QM^6(M84 zmULlQfgPz#wBavkJ;=|~T$7)~^WDtp#-yF($)<>LiXJ%l)UL-w6gFcNg3d2kB?}r9 zieQvQxRIKv!z{`bryWZSlZ%acD1WTE1%%E$vEIDBoQw9Lr_k0a&2tF=L#LmdT4ja> z%s=_}E;EX2R|zR7z2iCYpHwXn02{9@8Bo5`LGaKzd=sb!&tGiTGA|qi#g>qSC?0r0 z&H@EeVfen{jV*x7ZdUkd?c*c0T9#Usq`R@nx1C-2>Z$E}uXa**7QE45UgoL!!9ywH zZx)|e@(XD$;}Tvd1Hcm(ITDeM)XjA_hL`C`9{ z^kYBO{#sdTfI%Z#fhh4yVl3#M^Tmu`!ir6O1p*EkzpJk!-C}jmzS5D{$}Zhjv6OOw zYV;wYiDIDp1UW*{1J(r-u(X)rJ9XgEI%4(yr&8(XE9Ne6I$?e%#Ek*WRW> z!^xa<+P&K!ZXVrGH=B@tis8tAUgrme_e-Xr_DxvZg1hgwuv@)MESvm(M*oO}*0gJeEOi&pp4J2kcJ|-z?u|&rf zdzxm?0p`Wt=bqAY7KzziP}aIO#N(XC^xKtVa>D=~G#^TKy~Der6*-M?G}9@LEmJ0- zwrb{XeXa59PYQ?za86oew?Z#6z>x-RVT*EHz-B%Z8m?XtRVc#!aJ)%jA9#|E@MvxN zT`D!JW-nZK#WPa#)Dq|G6~&Bh<3)tJ{@W*>#h)gxC1N$ZnbSLT(6Eikam; z0HU%*R;zZ8+(0Eq?sBx$nw|{WhsT5MlQM`Ljt-y}qUmd@Y@pdZY5iuDhhp9324b0v z8g&jqvTZb|6D?2wX=Vn?1{CrAqw{k`{zr-Q^Dx35g0{kzS2K~RGudLuUj6HgPsbJ;%`jo0oT7zD{Yw7al4KTGLh1eoK<2By zf!{f!ci)_K68f@vuK%;!w`HJzVBF4bse!~tcvj9pc<7~Z1mL|zn%79I&S-&y{u^O- zK)9uygm~2s?lX?f?i1Lg%&0QHMAuPGvM@#olK2xH+{0NooU$kfJf?5f$ZmmYxu`gH z2X15=3LRu2hvLEW5!-3Nyi8;-pjcNu;jF$*EfK5tLh|%@ zV-W59h+iA9-aL^7u>w;);W=#p?(r_AL7=(Jyy{xZUu&*p zwzRz?7pZZ{@9^dO1*Na;Rm2`AQb;o5r>KXM=^Hu8YGH2fSqY4i-?dMAAxY8lVSHml zS1L;pVqw>xWU#zJaliNlw3N)bZtG^`>yaGvX*5m3sGn&2-MP>qL!^+l=X!MJ^o($v z&-`bZt`a)xoDA*@961>*D_?pC$I_r}KR8ABZ7ko%2!&%G`!At$Z*-!Z%-q3v6e@ttZ_H|*}7HOTYBy-7G`^pO`VCJPlS@|;%9F~`gfDtk- zI3ps7vc(>TUI3OU6XP7P9nn=y=~9k(o4Q-{>;Td&W9|GkTesNxCp4d>r=kD+r`8+r zcU#u1rGp>a6HdXVDPOt7mli`JTplyFGCL-E3D2ENi3zVz1q!EvKDt<8g54`#2VGWZ zh88DR80~@wrBO_BvP?c4V-k}zSZx@ySiAgbRZaOOgC@UBC^Z(tqLd39O)E9}gyipP zMCmlkha>DA{=Gi^zQOUnecRcyCE#r?0mI$&*#Rjnl8e#Zdl(;MRJJje6-l)wjN$*P zje@O%I!5a#AGH3xYy!~cRj{|EJjDP}2-`(_J{24IQgV*}-oX3B8=Fqj-kIEK5E!+) zOf&T`0qInzt&yOx`!uBYJjl%p*Tx-ZSwlsbEnlz#fXa*Da}f=fTBV!3f~5^*mRSPeE`5Xo`ux)%TKT5dHo%*iN}J_Q!@hQLRIUvZeP8ZAWG=YyKt_ z&dBN+302!px#?w+u+GH@dvupognuO#5P)dV1b{q$yIp$foON$cj>kkh{+8B!CQpF5 zU{+{>OLtV&yvr>PH(4qJcupSlCVUU1r_u4ql4aR0|B6!MW08NC4l9IQ#nkn(QoHi+ zi?1~J&JKvR_Zu;tCc_Xx-*|68GI+kVCS!ZcH5r*Yz-z58LP>`4cA%Wz+dBhvnk|fz z;Z+QM653hp3rOQB{c0X85C)oZDYM7EkK8{Nh&GIWagBLSP}~22)v^KDCK&#nyZ!KN zTjT@b#=cA0wuYEZ?}qB$2QgWzcb)>4+1@z}&kcBu9Ntd&a`>)&iV|EU7eo|{&ZeeD z|E`daRY9lyFr*XW>&!yVH(g5Bg1=EUZ8zkW2wF;Y@TX!~8nc7N)0Nm#vF?H7^@tT1@uDuE|T`lLM;ME?-iPG~Ac z{0vnHSBigZinHNw1r`qxRbc<4IAntR^-8eWBgz5jlYvHAbCk`s!+1)g_2FRuJ+|a| zfQkQFYRvIv@-?l-(1}CGtVe@e(2nZbLXU`XqUaLP{@_IKR1()Tpp=k?{j4H>j`Kk2 zHoryIe=9YEoPX8I8$^n8|2>{)wSiR@H=h$+(L-KkIcCDs;;G^EqL9?oo13$8`8Jp< z-Ro~L17O%gFI}Xvu!&|lBhmS?sDT?n00OYg1Ph@1kAbp={jz*(q0oVJ;yx%8Uk6x` z))E|zQORC36t+8sP8h|`bQr{v1L?=_UdseErh_F7vc>RF6r4(;+lf$f7L8#>tB?6E z$J5Kq9yPoludsT4TfvFT=oh=;xA)1yoexNt;@abWOUQN~hW`k4nWoOEe*Pj&<`L*s z>+)IsDDhb8p0|uw>zll@O;8i<#Au9ssmWC}AhIe+YI@)lVam9hnYdB+ErhJ{~*eF<=wbBQIw!#ekuO9B6CKPjvQ#$6O4>iv@Tj2JGgIhoEf4Q!VO=fuh#$4)Clx;FY6oCr*1H$9r z)iM=LS1%o@f=zYN*y!-NmJp)bo7LeKpzl1GSeS8SUEej*t?0dYQ$Y?%Eg$v+e|g>o z53I1F)skv6PWjq#SH>Q-;I=(6rb3C0Q0erc0UJTlM3FkB+o?u7?8|F!$r(_^hag!> zC&~1uZ2A+O3Gj&_9+9hk`$=x#QbZ|W`LhTd+UfRV*tc9pfmbRgm3nFj2Jlv^t|n7d z@~Q;m$(CZPrPV}3-fp)dY{=Nr{C8K#G~CI=QHpqnP@lqH$1X<8reNZJDRP4S7*(po zYIi8nQ&r2!>A6n?a^rp;k&v8Y4`U};r2mrj-1|C9r3aV!S`Nk-EhdU1|jyu)6nqK^Vw!SP3$+)EP482Uf$Np45-35rC6)nF7 z=66fuBLD#x)O+(8uDc$kpM1qGhi?mTz%5zkJY8a4n*e5Zymt6ym$6LcOprmaPW`p% z*6NSjV0}e8DcgH*6*0f=_xtI1ee>-~pd&Rp8RfCUaT9YX&Nx{@ zdv_e`0ob&DRT-+WY0ldn$9JlOx*Tr>(|?@g;Z(&4IJp%)eok_Z*$winD5{(t{8gqf zhoa`x&G~%6881Du^dF>S5sJE{GSsgvZ2eE3Rt_W6KP?v?SJ<8dl@G+BN`zfURu!_px6PSENAGlp|bUrtl@RbE9JRi#Ba6b3ay?-isOeI+|Mnfr` zSFi9}o@-=c;}TzL^y@*p8va`p(LqFLAZ!8H;Y{mP&!2!B@s?{!NOP=kw z?0KgJ06%4Slxk%Edw~91=m8L#7y$KfJUWssGR!{?D5rGQhyVGad}}2>;1_jFJHozY$%CdBX;zH*T$; zw~M6tFO2g455D|78JXf<$ooKUcKqwTfefCLoWTQAc9SCKKPlBew8ekfi@>nS?8Sf9 zppYJL{Ro{?DYM=KebWkAOmo=&zhCyB&oQT>==)p_=qlU&GbAziD|$hSoBY6piJcx8 z_~&i^&vynuDM9kE1reL*KM%B>kqq-Oo+%oy2&eRiwruoV3j3!?>Yoqz`>)H+M1S)z z?@@A<`ls`O8TR=cW3(7~!m=MMF8+Dj|NET*fP@hkHjELqhx;=sL<0HfOE^99%Uq2N zukAVIss8gV|M`Hw|9U(c0O!h_xN6w``3OKi^-My0HVD=bw??+9ucu;bU5k57G6Yr} z%#`wY_2js!&aJiHDpAe$8$VmVbudsKK9N5GAg6)>yY1?LFruTn`*Zd|#)Yrnjzb;Q zrJf7}YQNaxMO=O8mLGH^-=#%loGdFZ&-USmu83_;oBccpHn!URhSv6n)^hQGb`q)@ z4EF)f5G^U|!avI$#!Eg!)SNOTETN!5PbgVup&7uwRz8#U|A&Cu@xh%{vh}$F*+w@k zDr&O%OWhQ?#Qhh@LoTETCVnM@B}B3;>hx=Jd@)oi8Tgh6xFma2Ml5?;Ob0$vo_QYn z^$ahL+@`%$yIgaNEO6b}^eM$>%x1}IvS3lVZ2!wB4_Ufi4v=Ng-vm_E(Qi}KVdUBd z!+!VGGhTqLffu>jqoCNjo-%o7UyJme42mr&PW!e+Y!>abxJh1zz2yFUEBsH_o3=q- zy$VpwSx)hDA`Aio#Ct^GQ$se%1I6F@?tesvh2*!tM1180Y9z#(;v=uk=L`|r=`R!63wFmX6VIyEoho^!(be2_>pTbL_`v89vgW#Ll0<#pmfw(U z@!p_09q@v^+GY)aDxSyzvhBB&C+#;fbD!*mivK*lh`&tj@DQ6%Rh&rAjKv*5ea>kHv+E$=S^zu_L)Zd2LPSGa=g3kR90He=AgnT0BXY9 zxBWEsz4K*nIJmy^kv~v~ZMppWqjqi_VsAYyswH$Zt7z8+R%YQ0A`J^3I8*yc$N9vM6W6gss|}TnsPwe&$axnw6XoGCiC+1VXI#heLMW=c<^h0xx_o@n9a`nN$<12 zk@kxto)NGES>iq#{&*QK7PBZ@w4SV|_oai1SEasieCZf~B^4|hJ6Z5ehZilH`Ugj> z4H-ly&ws9;#{VGe$p<7^&%6*TmYrB_Zmg2)*Z@Z9Qv*oV%K^^X9xU%e_kY$d)G$wu zII0_cYAqM|-{pY#2?l_?ntKw%1^@2vXAHoJ|5=iJhybv_?#<%;TSkn4*FcnSjch#S zKy@gkNxmDP-;p+P$lhc`nfYnAR4U@_RM51ywHec1C?JoaFcLZ(P(a>9%bzk#!|ic74wMzuI9Z0G_NXh4TNT@%*Y|6*m7ExQ7kX|b zql--e!+QzVW8u7+m7oSsS-Zbb@gCl&@Xc~J)iR+>fT^mkhq^c9rnZ?sq5u0)8;XOY zfRt5HGnM;+1{d2sx>_;_pvIJbO)0J9Jxy>E#2!GcBW#^WJC6=C%FpoI6x{UAzb z2T+!sX#q-`-j(;q%gp`YAT`P>%ZIb8k(2u~w03JTL~=W?6-N%Ktd^JJgsEsPmMFlx zXP_)enE_xtVG;)p*3}-nPmCFWMf;(Ed;|{xP}t@~PwivgO?%6@>IMeD3S>gB2fxm} z8q!nut9+^hP~!hQvt8fd-BZB3*LL6O3`NxZ0oGVK`L<%$jRO}AvRb@%{Tq7r!|b{H zE4C~CxvUMX?7;vOdcQ)cL@jd26)+Dts6&rqskcRwtZm3jCD!&20xhw%3*>Wfns=uQ z6W}ni5)3rk1kE6g36GA+$~i;iX_enzdH?YIl{YC#g}$w!o&l*_%dT(}CV_r6Ftlp~ zAWqayV14gCVXMB{#-Jr3a@})rxpx6EAJy&N~0~*B>B8vZkccs0rvwIiq=nE@rTG5qF>3i&A zG5awoji%Qc2VEpTE4y|0k?=3;SF$E`neGL8pZ}=7baj(~x8@ic z-???iq8V@1YMVswbRg^8Ab-LqxU*&2*1RoXJ*~nYk6a?Ei*Pyr9bUta$do3_BT*NI ze*&V#G;*J2RC0CP03BJC0>i8?z%P_=vA5pxtP!AAiF~7n(Rjib0)B_NsujJkM%Lvq zr{lZ$_^hAdM*()egN)m~MTK8}zpD63yx-Xeh|0_+`eE3Y&8ZwMT!s9T?k?`c%3vZ`X~4E}NJsD+^xPvE(kt(g3ZKBTdWl~5nA4eH%Y#L!s3w*qP=ijPzUnVC ziO>^Zs$cERd{>*yd|a(n$GQIK$9tf{KA9-GPf~N9BC{xHc*u+z>*RUSvJTa|Lhoh) zf{c66j9*W^FKQQfs#C5VkIzbTH$tN3Z)lu3?7=asnVL<6)+jQ3vBjFQ)F$J z=Y#C1;!1=eyV&xhcEfMu#F`PcW}$%;sF{3X2}4R!TSDwzt#3Yn6U%ZuW#lvU@XYI1 z-^_p3;p3#o;-t-9!Q_?i3Rd{tRt!(j==F1aw{5#{VbY!YE}^kLAp+={Q)6q!bz4az z+cgG1>+OIgs7)Q=_Q?THf^aP8)Y%%2#;#0up#vncMBo2A^ih82SA2@=DB(NG*U$Wun(HN9jN|2pQDMx@?m@}%-i6?G!A;(*p5Yc+l1H}*C~#q7pucfMl` zu0UX_KJfaG+Ev~$(>a5>;|BowKXPZt((zMXT>?AYTARZSJum}L>h@ASd|#h~#tMve z&SB}cPso%n^y&Wlm9RQ_2VD2dx(Thrho--`MxOYTcScqMB0CL^ZA}JrL_m3!nD{4N zF5@Lv;KtLgZ(sV8G{QN^Y&jXMm~~S!IL`%|T%Mbvbqd|ODt<#$e8F$tStyl~2?j5NZtA+8 z)-rtsRP;_)fqx+{R688}S}*q?iGU(8N*Nn1o5P-G&rH3Et?@W(Bq%3iu};^+%QRn0 zyLXjt!PMXzIiB-OI0n9No^y6nYPylq;}oNpIT41Wn^fqhCv@|(+>_97Bw(95B61w6 z#@{Fo|7DG17=7YyMw5LhUDy4v|HTkCRmlK3R=;ak?k7LIU&$U!(XvGSEQ^%)K-k)9 zesisC>NFbH_!mDwmX7*2iN3EQQm{JNG|slYR2-ft6`oPGW?V>9d(#{RH$>^h?sO|* zf^jTSLUOSYOaaIrAg|7|(zA66!hAb>2EeVTO($#On8J9UfjS zMqC!w12a2Ei+Snm*?xrpW_AwRvCznub5J=(;bwhwJjyKTU=E0qCHdg@Q#-$R--|P5 zKaf7Q+K=ATJlMw;{NoywfOGlLTkPo^z&*db+HcZy^x z>8?heD9qsU)`5V$y1Tdy^)}C<`%q0;S_E2|+u?j7V@zpNJlto&V#w8HG1amVclVaHHqg}83cuz~Zic+9A*@_j4^4tg7T#)E zVuE?1qc2@~rS5o8dkl$ju|FA%Siekh>{%0I%&?}|I#D*8B{@NJyjT2pqI>&cJ4|Kh z-D#-uKLogP3UVTO_Fjq(KQz7- zd0m}i6Piye7pQN)icNXH&^Q%RS^v1v!}NctA?P-b1KuSb5AZ<>Ew8)vn*kYbhHgm68V4gRqZ>0;Jw$qh`{|CY zzIS$DgEJwPX+iklhQqWDr*wysakZ0R+hDe+PR>fkgGe_n{s0Bc4Rto&tK? zR2?{NpcO3Wa#5f+K_)zF8D;G#ZiZUwf-G=Fa|XEtoSj$ym2?G^3w7Vk_j9GPoxgWY z8HpyaLvK5<=|HDKO93BB>a1Bhqa7ymy%Gw6IewrErw0Sl(%}m5n(-PFJv&f6_Y2DW zV~4$?nsw(9p!{LSC4c8I4|yzh|Rsi<9hoR-&1>M)6;%%}OX z&D~s3&wPW)BNOzHCgF{v8c4ljikj3MQwr02K}ZK+m542d@tebzsZ^{?&Z?V`_0bmY zLb-jSmGm=K{ogfzEp{E@mkOe#s^_V5vWTo4gFyRp^4tz}j!Uwfqyj5aSN;IpP!fyi zi}GgX*f{OD3)})JQg!mTEKsDRZi0~*e0%7$SKoeS`#T-=eaZnVuS=$BKN$c{QHl2d z);P`)l!G^c3lqgxoaUS+CfV*DAO2lSYfschuok&?2P$y>TWxhDFYxY%g|^mQ5v+PA*K87@qK;ox4yf+wXXl+8gZXF`|NYhetysMNL$0~LvKf4efta~XqbreUkd0` zB!I5PM#SyPc*SzxngDyWce6}QO<0Z~8X1c^HwCkjOM|sCfF;T9GkzIo=G_HRrSU&% zEi95{!>c^>-TZBh6pIy(Ef|C)MPKt;BB+jUrqve2mt?u(KjuVe;-{Kv^k7veV>8Zi zkw60vZ!1!S0j!E$jvuBx;@(v*eLh)k4|(;l<*UnlCGE5wRr515}Erbi0M+#=Id_!VnJ6IfU% z$Wqs)Icg{j$7z>ZyB*a(+qxJ$^B;pn{x+f^tMt7NeV9F7*VDXp!q(SoidKzuEr{EnZibsz&d}3ss2Aemt2Dn&?gNj~6Yj`Leep0F`J1=;Ll9b3Ttthpy7GnVziV zlA&!?evhh|y74xqeV8l&uV2D>@ zRdE4JZf!>#x>BU={0Q^3C1e zCsKVoPDV$X)k-U_e7l;498K23%%D(q-)Y5s|K%J?%b>|Yx!PkA1H=CTH3dXqcSCc; z&D=im0*=3j?grj5y_rSiCx7tz^QdMHlq>F8s9ndMr&p}PR-L&Rvl_VYmB%OuMDe+1 zRrW|_CQ(L8w^OV`HPCnOSq~KN@)P|6*@;%o&?Ozk!YhvJp86eZDXRFFXC9W(W&GlQ zd2_X5Elxf-)OnH99d=PO4-ZCl!UWzDr0=&AT=Hqfu#MkA~vko-VC zx!fvwz|wSmC^4WZuUvw?Io_21O3O}D*6prchMy@yTg|35yuv4mSY>Y-yDEIn=1_il zzE1@tKlOZlQNh|8bw4uDweM5aN~V3lGLv6o>3#edGXGmyNpGRO3}&nM;5@ovcL}H# zINDO4d<(gRienxZE*A0{#lxdUkzTcBhJdBVSStEHTUNblaOkS4b`mJCiZ@d#C1ygP zS1GUX+l6r;R<*?HvMCh_VzVzS0Cyyzq#Ub1qi2FUvH`??(A0LXcgNqlL#}xc?F+~V zv;9xJP478-pEtag7E`GCy7yqMbPRv1KSMkzwi8XLjqkW$FnB(urCGW_R3<~19;mRE zuq*PQw6K!^uAR6p%moZ!*{AZDZ2Kp}b4|pB;BU-)q3NAR-AEQm^7*cV0?C&XKvf^# z6u`J+n0z{xLZ|tUY|BvYIc!=zCjwGE3(@v7<1e!qFg)`LJA(UTk4(0s`QY|xoVNE~ zKek{E5G@-}>5xr>OtKCRZ=2SKoyUz$Mwyio)-Mkaplx;^v4S=BRy3cG=6+{fu~g#N zQKgpgWA$?Mi?tTJ9)2r34scr&ojas%j#;|8J_V+BHgRLBcf9TTwZu5vDPaqmeLg%U z$C9ex)Fh*P`yps19TK8~^VlJ@O<0U|L6ZHw|9}t#T`BltBZt5qlJ4FQQ@cS=JUz(?qQy-O|sVhk}@oDXOtI z-=@F&{6z0ZrM2-^L~I&R`ezrCY5&NeajOevCg9CV^&y`!V>~38))HH1^wuuFlm)B; z4~W@TAQquq*L+zGKnj&(g|%tYy*p{$v}khhW7qS@aFKxYU`_fcZab9xK_rx?!ck3Z zl*dGB?jv<;*I_;1H?y7lAUY2!8 zf4;+@;Y~%9HMGK1h6YGcQ@(QOci|aNhEy9HM^j6le2@^}@VJy~gk%cg1y*YibtZ`x z7a87Ap6o1aB39m(1Mj5uARVHsm++CrP(lEdCTdMC6zH*a|lT4w+SWMM~cuPo;Vy6K59=2Wz z^Z$F2mwu;gBM|&ZF0H2V#86rZ3Js$r;J|;PO`q!q6p5x=9rWDGq%3*5L-KhM^Y`ZW z%fe#A2oMJ_6^Rngj*eX-+nD*53jMuanI`Rz8=(?w@@+QQWdE0m#@SM5kMF)=80n|X zm$1p3Zd!WW7DDjpx?BK%y;B}L{u`mOEjuy}H5{MDb~FpY{hCp=Ss(k!FPq ziEF<=;D_VKlDB~ZS?On7^3Y2M#)e+0il@;~Gtbq|rvZyKv^Mfwc{k2Xy$IE&L_~+0 zg1U0}yo;lbM{A_=qaU2n?vswq2%a&GkU2z!A=glylQ$<`AGF!^vJ^w4dsy$=3^0_D zZ%2#{McHJ?_bo?Q`HX0uKaoHjiCgh#E75Crr$5ydi(Hm<@0ZCG2=qKWfgMv@W3`y_ zBoO05Llrg4&HXxMCu0;$rP`d)&(|gGheu1FoKuGvERGM}Q_0zt8TK1ANgDb0CJS^n z4O-Q5uh`zi{{+ik+-)~$#Ld)3;{slRBaHr|8F#r;eux=t&9N{mQo!_u7uqg=qVd@- zH-2We^~8%jc6?=%&R{yb8v4|D+dnd-(HJb&>2n#~Yv=FGG9~H)NF67ZSF8~Xi)(?w ze^c@FevjnaXu#$<`sVSt* zx8!`*(;+#1TXmhN)nfdf#&2+6_b&OeRg5TmukpgLeC?0O3G967%9P=gEA^`IhWU20 z?_wrDgu~J1OC^$mWs3jmpqx;@AKin69gf}b{~kKZS%9WnNPs!TGT?;OjbL%H|DLt~ z`-=Yk_q`NA(@k7%F)ja3lHtJVvJYE+|Hf(AKx6&?in;&(5)h&ZFPWu<{g6aOJ{r81~&E0aA68 z?f>V$qEf-)D9QVlv5C_}?Ql(!kC08?6n# zjW~xeb}H5)^{@ew|EB-n5B)oDTlnR{$j$EE9V`4hD5HnCk&~4+ zhyx2S(d_nsRI?~(#ZFV!n1#nV%UaK~8w^dd(6IG@fmL5i6Bh;A@dJ8NCIlai~Ozoo`K%wP!E&^lRLe|`G-}8On{ve*0@An3t(0EQ|!Qo6z zw+S{|aaOo~GhWXzd3T?+_uJubah>F8*Wsf^Y`(fZ(c9VJRhkm_p)^qWZpx81bb>WJ zx1R4e<8exPx?5bbWyFZ`rf6a1;cy*4eo5Dq!XqSG(#V(j#A~*pyI9vF%+dKvc z%x-fP8O(PDXZo(SessUzZ~}}`Q@DCw@{#27Dl?%;`}OLK+P%sWZ@=}Ejx5*u;MqT;WUHYx^>5@|xibd<+WW zgL4#~fFm*-+{5Z`c=W4h{ElyJV(y#V2j9y_?~CfO?{O}|R9qcHM07g{=AOkU2-iJ5 z{=NfbkLpA4jn4pu)IP{A;zsm;JT?Lh%n! z;RRF?dmQ3W&0ABD-2nW3NXg@|0XWmq*ANBQWq5V%cTQ^jf^gK@W6RK_mA}Ly8-7&zH!AW1VSe6uU3K=7ICT=)PVRDwl)shit{cup$ zJYrdxIM-%5g7YBTDIEYYc^sIaN3_E~Eg4+hI{s^UHoSk~92CI+m}>_9BVk}J_QV*t z9=4P*_(;Z#TJg9KrcDo>05Ah-=hja5W%8^u((_x*b>Yd0xBhBw88UpFGplSo>P2A2?l&~(E*#HGz z*ZYbAq@uaOY3q^QHCpC`SZd{A#>Gpg{jm*$taH(Q(Iwy>*5AhYo^eFPq((i?@PXaN z0+VIYI|?l7X_xR^7EaCYzbd)u=d$+u)m8C#wIEM?IDEy7W8@+$_$A82&ZmPfEfYuK zf-{c>gPUw@uriX3=V!;&SQ1o%k`M4F7q~BS8jk55eNVE(NDO$ODM(etw>n%5rhpuo zsyjJHDd1e<6_UOztv-1YVR(`iH8XdBldPw$?0j&3?1tm14ZHK^9~!zsI9~pb?^Ipf zeVJ$10Ll0x1_-^D%Xc!Kym9T<9#)PRi*w%;j2LV3a{0Tw#S%o~pkhan#phuyw7Ba- zVL<|CI5xa@L+sEM7{I0Daqd-NoV{;6sZb1@V%shny!lpAABSyl{_Ak8NJZX9k=AA z;jp8AcFC88}Rn1n2sQYIC_!&0ODy`I^1Xy%2 zAMg39g_Q1HzKKerv@6J1w>k1m5ok{+9nRb=tJN^pZwF68Zt@31RR4I2L4^pWW3R@j z`wP3otK#0sTRe<8`TiVv1-(| z5f$mY;uFE(?R2LD_Spj>!vmRm(a#tXtdomMo}Q(r&HU%YMy5ZU)?*MEpz*9)Tj9J% zt@x4x&1pKX&d9Fn;9G5zi8`DV>dP6ml}P?#B{t4~%rDfVRzKkEeZX2{n#ggL-r+uH`sZNv%z2;C zFGu-2Deg)Nas{3h46s=<+Ajpt{5CRTI2pD|JHO0=aXT4Z;jNHJN1j#V0&7XoX*4?@ zP2-Ere$mNkfa<3&ZFl|Uvo8+tAlq0QTxZaPqF5@KO`H`>UF(>nEM!nos1}$}L>cOE{vW{_vHO{K6p)iy0p5 zFAbDktCP%x-A|YgSE`=S_dPT;iWEtZUZFvPpr~W7NLAtlo#tLoBYti>1b#0Qh_omw z`bCt)In9_OqeWm&VTRr<%0>?nm24b& zn1r=)F;ihtV~#Kc5e1b_@u=_9FT_WKxJ*z#K|@A;%hqzG+fPx~y1} z$OeuvPL7jdm#0Y!mCdM=Y-Y#n5@WQ_Q<|$LU-S+q9h>Yb(AhrISB!jXZ;dU7Nzv(0 zC5lMkx<^#MK}NE)?0+#m>S{71ZY1q=LbSKz9EVL#$@7Jkg?x2%Ht1->eTMHIp`$$+ z6sOzhbf;e3=@B`$L8q*&uAU$)h#{ruSOdoj!!E9v;nLynl= zZu}g;A`RX#C8rITW1(|;Y_-|>kguMa+IPD{v5$^YFT`u7D!2_F*--kzKS_?ar2nD1g`sEy~%=p2>YwqIjz zr9RQ%j6U8X+Xu5cXPM_WqFVSjODORe-pZyLCgww6?3e-khrAaI0u7H{RuULtz8tG< zfZw}O0;>y^G6;`*96chN>;{u@V|nIJK))^Ck((riPs$SL0P^kOyfe|iq(6#$iMqX< z{h7ybE|H4w;}x|Gb*Z6)jK6-wzK z-3^JU2x4%#tlXwL<9sx|Bp^p}Q!kPe8fMFSee7D~&&Wps46AY5Fya;a%$U#L^KRU9 zDwy^^$CbypY^MVYhl;N=j~l!>yYXW0XJxc4PWGDB)x(NbY?U* zGwh2;arl!&SwMs3`XwGkM9XhHYVM==FXq$l1NJv0)%|J*PN1XTY zQm@H+6G}$7ell+#Usu9u#B#UAS<&@kpzOz4&NYaz`0V!ko!skSz_X-x z)F|gvJnf=4V-yV8a?eT~eLfzPjJMxZ^j{cZe4tVyG&ekO%Ygw|4oK589O zGSxd$w_PNpHsjgzapSWGo9E^hZlqAC&LC}lKGUCqnBW4}?+_3GN!luN>E9jEuamb;(ucWnL9vf>Q*a(5j zc8SMqhKujvJ#^b-3Eh+rWDYQU&a5=Q2)+0)@>_K`7xNS7@lH(ad(v+1>=T~^s+V|d zWGd1S<~Y-5%p{ea$z*1Y_uUT_Q{6arH`bHg2n(kapZscP8hgSx7I3km|($P0xrcIpEX8a#suzWMFs}n;zuiUP0)O*rnfOA^o;)zG$|*- zDoD`jy|x!60)G_Cn$9f7BG5?<6`nihGjK3g#UE0^D?FzY(|$G{7Rv%})s8#NetB6L z5hg+ajb<)k$ToU#;T2OBk@oZGOY~FZVny>4Mk{P^X16fv@$g@Y1c~$HXZ|OzihQ=M z_O!@UWJf;VE;=NJaYY|pug9QQZ(J;qI$>LF26?PgO9u6C$-HHXYV-XBP|k)+UeB-zAqb-AmZkI{NAm#YTmE$u)xU4}-Y1LYrC zCsE5FjXhz3q3BBLU~%$o0;QFOeHe3?XjlEQL{k&1@v#Z}%%@JSEy-(SdNW88XaGcS zE|z+YMy~G#iA)xG&w+A(lCm%P2f_#8OTK{QEv)LD>)B2xzmsK0EXb%ZEjbL&3)@)|Ud=z5Hn%e5XSA6gDCsrniwse}Zc_fdkk1;$z(FGB z6deV_Fz`Ji&g)cc(k-vIBn3G{WN241-%(C7@$kdzvkxiayazS?DKg9rgbci~JlI>P zASIh(llG}qE89|qa+ff!n|M-N@(T7|nJ8X^-WYvPM}+8KrYbT$`OMkVPVQChvtXTpv>hC`#wXIw9YpM^9Is&Sd47Vmd6C{9}WC zvTVopc-@eWcDl=3SE4GTVhB;_BWOXtU!{lbBYLr!mVzot?6v?M>5zogDRmXIN^gTj zJBDHHH!(tR?=)*q(zJ0}vqN?+DeBQM^HfwN0zGj2?2zQaJ3t{Irl9O(yZzPEOvlse z4eZx%z&k=3RNabA82MDw&cUd-rhmIT4rL`dh{b^S zz_sCZc9vdCtj{26{?d|M9`n75Oo@qax>W*!u4^|hFkcFzyyiHwQSX0?zth=Ik^Z8v zM(H!sIe%ttN>l3ZRI^rk6f`~{Uf>{}#g#ycfO8F~_ioB5zaAsVvpf4aYE)dM^dJl zE1Y2k-Pbgi1pUnp`|s0TwdU)y^F}D>v98oc-*1)dK)@O3T5}3=p=s=*6vgr8|-l`H~Wx2u`u-1~b(cLZ*#1b7Cg%Cma6&y`kIH91NtEj|C*Ssv=EzZ!3vh(2$VtL;kXQ<`>U%~h{>l)XU)?1#oAbB zLs1?%8|?Rkj{(U_1Z)Onq&Dlx)gfLQy4F|?JRR+hn|xmnQizVa&(uok%k2vL_u(>7 zl^$06`GqUZbY;0}fH#|&>T7+`NVjd^3i^9(O@3BK_dSydMeV)(Bx5V_SWl>W+~J~F z)AS84i4w|^abPg}pbDBfXpN7JF~V%Fc8+ zhvU5;$r&gv6?Hi&M1y<5_Q!smt}*inE!RLJ?ItF)mrZdcf={KBsP!o>lm7^Bk z6HDwct-V?MOOH~F$Cfr$ii@!7rSxS(C;I>IR$+yB?|ErEunWr>3F4JsOY9KL%AP-q zXYPlZY;jlEA?CW_=xZMCJP}mZ1LXl!#(oPCeT|^sqDACkx3hsM$1ySr3L4rzuDc!6$ zi<3Q~Jlzxi{zdsc)k_vtQzQ4*YcTSZsIN~ZH!MZ6n6pr9TKDksT$tvnNzcJlM4!p+ zLAZ>}M;s5Y%i#IDv=~f4^bEw~cowURLBNa}B~5mG$I6q&?8o^;->lLb`pBs&+o9!U zH|y5S6#wV0-{a=A<%hGYyN_UC$8WLKv_xdCFd&r zXShabMY}eeBA16o+{(%^e6L8uVZP%yKk zStAG^*ccCZhoBMy-8zFy2yYfIkh!3ab+uwD|EU3h+4n(rzhgu&k()3gIX2rv{U>;g z^%U)~Zv3?eQElr}F|nyb=gjR#tLj{`dY7M)rzx02xuA`e)H$as6uJI2QKH7Qt!2C} z;VG5LH_&5k#UOTD%H)BDA2C?ll@)31(uh4*bVQkbV(_}BOL)IeDR>? zeP-}4A`I_%!CMcTIm=jojJFf>#EQ9ATdBDwvMl|>c+k!(BP;dGTVniuxN9C5;ojGV zyqclvovXRO^`WnHC|ZOkZFDZ#(MLZ~tyE5Dq$^X4w$tlQ?{tkqRZbyun}6k(C&;9= zxf)qV4bMnzde6z~oS)S~^$~leq%_)R%r3SKvmx29kWF*gz}c{O&Tk~gOfb0=P=p~sTO6^yPxoWtK0?jdJJQS1I9OQ()s%mB%;(vSdJYqrb{ccFSce`WDftZ?i3@GU8g@01&#>TCp(H-L+lPYgaYKYV)!K1w=58nL zhRogdrV*<*9_)=9&d25koJ(vqI)fdUX$V*6V$+_RMLDW^Koyi*wKsEW?H$&u-?hdb zQE(N2d;R~AJkObcE;~r^#}x_Mo141#w%f>N?05Jhl4Xm>EWZhhQuCFo9c z=F7laFRnfK71YS4MP|?-0=c`U!1fz*ui*kY8{tbij+79BTmCova=7r>+Tz~kO@W0$ zt~AO$gGzKJSeoC{YDb(GZJ>o~sQE5|6KZt7527qX=@+hir-3eZev6=$MmsUYEnl8m zx8k){A`w{@W(jy=n)@O&zS|aYF*ntS2H$$dJDRGHFj0=nl*Hu1*2j_~nO^~%{4H^E zU`HXtC;I-TNjR6xbRrE)G%*|7r!?-N&>!zTdQp3GE7{|_-Oe`?_+(>;$NSkTe<<_Q zxs;rdrH*DGg$G`U$5L5z*hC=}Xju_P@^aEg_hj-pwOEp)YO%4{&==ZTvi@eGBu`0a ziN;veBO#&PvVo%y7^=cw$$2EqUlKTVAuhB)5e6#H2y@wt!2GQx1Ms69e~_SAX%X{& z@%JBD3wy5lw388jTS5e0IDnWV2IV3pW=eMJD`K=A3P4^OY>VtOPTN$tf%QRAAvz7sGPT zCHIcNt+$@e+4mGRKM&t3cSlCaMC#wv>fw4RmoGZxhS7w#Qx7_GXeG~>e)fd(y?XNM z9pme^U4?hU4G&|fw?%DPGDabRvDKf=R-X}3Z`y9j%qn6u=ZSbserh#Tz0W(S@a*KC zdxKh0(y&o(D%Hlyr(_~d;f6(IvMam&UqfH${F-NQ8#@#0^MMATqQqxGquLAD=$EUmJ=!4k7gOSas4Rqa>iH~IXUtqb z;&iDR_QohR%lEN&z_CP#(T!l#fUO-Z-EoJM;%idhk+6+nNQBSEbunSh(!hN!&rwZX zbXQovQqk@g`c^gXB4=;>-dmq@^%(K}??VXiq>Zk!Kw4j1rIpa1rpBYY!L^3jZ=Z+} z=p?nqi($G#05KJB8;HrNJ3#rpg6SmAP2clGM7}B`qHqsI-j;eu_|m0^EarruXr?5H zfQ^!vXl@#+FdoIsWUh6@SCmmZupRIN`swIZgDlVJuDC)S>%es)QB%btDH?6`~<;h^jC-a3RS+{Z0(U$)hyuwp%}t+^rO zS@2b3azC}{%r?eSSu*AeJ8y2k6H&>fmzOh5G!_#t9wD`o`aY}l(iXJIetK>{HSikt zw9Ibo8cNE!8S%B}xC4SWUc`eIf{Dg{4fla24Si!ti|g#V$RaIWCgxMb*6O`}&;Rml z#_7r3J#-Sm{l!q06j`s#(I*oZzZKegX&Q#9A!Vs=qrb77K}NfkvqFhO#wEL1X0VxX zX5k+KeK(WqiiOOr>sh$s?u?f}u%2NyUPK=VlW$0+QF~Z->U6s}3G4jra$|qZm@r&#} zcl%1YwE2sYpG!r2WhUV+P{j5UZ7cire1vvbxp>aE4~H2Jxr zI0sOz3aB_g(v~_?$0W%VUT@7Z#V*W!8NKD))weG?w0lb+83=rX*4jOyk7e+b?IOCB z@8MVF0iDw|pp@g{y(1 zSp0FPi;LOJ5%rdaSNiYz?`$R#j#&*Bu@bRo@RXs>qaIAj5k3(g*?T+5G%~JSOebGv zxnGZ-e)J?oNRcQ6z5AJRw=uiuWGWcSS9+tw_Ka-4Qw#B!)MxqTQaoK+N47$l+dIGqRQXCz66x94qB^+^H<9+f5-TQvza zmz{6A_WY95@V?E-kT@*5XwdxpB)as>s_2-0!iI!XJ7?84%KB3G=#o!)MVF6_*B6@V z_OpH{m+igM_vJq_hDBywi*{AK9~}+3*%x8a(-RHdE>6uew^aqIGxVtbT_TtXkUV%$ zE@7$}ac?@7(&C`fed@#3pl-S|f^`4u`Hzyz1zsjsq6qAy&W3DUE%Z(OM`@yzI5+mF zJrkJ{d@QS?Ki=8z^JaV@>zgxOAdI}qPoTYyR%yMy6>yI0c=HpoX+m@8P)?f1JKL-cybBX{6>himlK&*>ceCOtDLALK`PS{vwfEhR=>a+<5GN>T1N z8z$|F60sf}c{cXT1Lb^vN3z1wyBzsQ{}zTA#m`e1_w(LPg0UxhB~7QA2YVGUGN3J7 zbrO=NN-w;jJs3&~R}x(`e(sw(k&CKP-hn8ZjV8{!hQ(w*ijor1QtVE2VR+wpPP(+2 z?g@XG{SJSV zh}yHKh9gIB%YJE(cgIv*OswRsb+w+dnBEaHs#&-5o(>l(+7h*xk&uE9dUuI*E7nLjzyBbGUO{Qqea82Q}yvKzqDy6mu$B^oQ>e7OF8Po(>vv1qtBYz zk>wMyOZHOurp}PEQ&(3?xjVjzYvuwSKx`aIy!@!<&c?#{8(WHIGvU;Bvj$ZLY&H8t zN?kxp9VA(&y0{?vdFBV(=!v8-HlnX$HyhFJ>ud?nv9?p1_{xeUIfc>peMpO<_1E>gF0>j(p%B^ual4Y^>RJ?_SaLBYe{m5uO20 zB3FyJZy4(P=%@CbbD<*Ive55W z(r-bVxO$288zpY?t{|}`cVic@HV3#E7z0-TcD;mO1NbB9@qAoYbgd^~MZUgWeq^!I zP_TgGzf@1$HGh~V?Kdn*oF3cx;Nsw2p4)hzUFLD{TgTyyz9$RM{FZRpOzS2f0%7%t zX*W;N+3@^mq#j4{ly7J+1*!X#eeoFH;zI8kfczRPt|>s6soL6ig^zD!8vAQ7!>5bB zp(BJm{U?5ZP7}c0*6lz$iVJSo`!8Lq9-T(h+`uKr*l$!SJ{FrBaLmU2L>h?2eNP7O z_87m_X734XwSDb&P?~cTKFHJI?{IfI|*}zJlW|-UTf>OPICK_|86ExJQ*2y+A zqa?INfvT+;d?|Gx&*oQStXupCdb3-t-#w=R`B?vQ`i&45E+VJ?s`$@~jmfoQVNY&u z3pXG3uZsg}GQ4{|Wdd_etAHR8*V!SqF%5gN5yrpB?wKW_?#$8&@IzZp8SO}LCU^<*}Nl{{Lo5rM`qho8ybq)zW z-0E9*Otjt4*3)xw6VMfx9aE16Az4$n_M3GaRM@QI1_-8!#qlJFk?Pymf#T zym@krOKZQ6@Oa)@mf?iym^IssFd9=RFbMgg?fZDl^~-7RDEG*fe=Z{oEAF&x>n79w zxzPSBd!ht#rRf1`#e{e_@aXgj40p1q)&Lwzx}zN%%7xDO?BKR$V>odN2C;!dbX`DN z{o^Cr8BnX?jEjHrgl(!N)jd0M)B6+0L{~-ZlRmAxc9OQdby!=FsIiI0B^WI7lc#^ zEOEinrt2AC2W5XCuNOBxzC^$L$o^d^Ggdl~bS;rjfU9Up63ma~%ld(fI1H|7ir4+K z@=+fSg(jVPyZ$nFJ<8q-ac)1xg3F4kkMUkbcuRoPqqJjdNsxiHw-!kHRAFLgsUlax z*7b{1M!D4Vk4Aj1Q}(`tH?v!T;5uPO|03hUanr82wwq%(F6RjwWIRAqJ_vBz6Gk+P z)*0Z$*Ko-5?waHxhw9iwvdGm-a9nA_jD-UuRtvq-iPy%!g6QBAw+EF z^o?_tFD`%Pc=btDNla0|)K^ubfWky>b|-mEx0VY-AFkzT|MVtO985&S>=1 zfB^{8sIJ2;O;dm~KU>!ssnc);V0E=`@NZl#5n4qG+Kwxl^2j!gJUZa`yLnl zl3C5GPdMzj{j9>PX0LoU`DYTh=YV?#ak`D(JnhtvVwXzsi^%tXS%7Jta3B5IYns2# z&%ed^yxg!r<_>@Zo)^Q5bZG!ZC0G*YJXz;xKgz3my(MOQ5MrO-Z!&iddb;CoaKjHW zHfZ*7Om!U~+Nx)M-ABe=zGdDWU%y*qKQ+HPlOb(t*%_vBpNcco!8!5iXRWxyJ1(25 zdoEM-QZJ*lI+&uYBv;N7&wC!tk&nMfDA3E^f9jpu=GDWi>u6fY=p%x@YWf)$R<~+! z*rT~Oueb^*TfwJzwirQT3x3Rwz>`xHc#)Qd7w;oO4GU(meDiu<# z?mGRnU2#0BQ9rvG?b`5ximMahWXpkJc3gOMiR9P3(%7T#zkfvaJzp8Rf>0XfM?QpQ zq%Ix4bNBp3qz<qS*^W&G$d|x zYPoi+oGQ4K^$}_BXu~q24e54{dq7Osb&SJ7Oi}LNl^%PnJ6|f4gxUV*$zoK102!Y< zCQzhO^k+%=bIXSK5hQMfF_+%NttzaS!+ZiIvM#?~ewKUhxhgXYKaq3^Bl;bbBQ&I& zCX1465eHwZrn0;=m5!Hr5)TUsWX+QRSIq`4O>lRg1$Z7t>epF@B;IV!jtYasTGGQk zoW@Iazas3mKe5vZbr~ISOUtZ7jaSr|I^{RF?QP{lS$0B6LL_(IyH2qb6zuBZXS#^x zfQ3LzU-i>*z-4}V4tW9@5;E$rP`S^#Q!5(v(ZyaMWq6z@jbDJEeciK_$l$B@Jl)K% z%z4R_7<}b9HW><7P6jCm2$Q(t45NiEK)!^^nDXGIItZDwo0vRyv+7*}MI4MvOdu0+ z3dFay8?;FKv(DmT+VX!ew3(%vR7s@`yIyg z>B&%$C5B256%&rX&Yl|!e4YhIMP*j5kC^YNNnH$KAkbZL{doInIs>GLKv^=nLTb>Q&b7BU?cJ9fGD9A^n( z8Yzq4sg86)$Vf#w;e|NL#eZYOyY-s}J}$#0QgLnV!@?SA!DFi%5~;mo;FoT_1TR2lkSQ3LdXg~Nyi1p7$p|U$SL%B-1gB0 zDMgJH_PD$tQ9neSA<4W_0ppfqv}yvYao7$&<`0pcMj2_-H1K6rttWl}Qlqo=;fCUv zJ699Sp6=e=JuiDMx)`s(k{=+2LwL)Nxxfx?e#z<0yh`U2I_{2WjdVY>!by<*rtX?x zRp{}qmmE@mc-jOp#fwfKHtUJ$J-J`Vp0Ne35otTU$u9bUsX6kgW9nTA(8w&1MiFUz z0IiL3-4FeY(Vh1|X28vL<};M)dc=!JZ=G$z=+yeEF?3EjbCw#2j$lG3)3AQwx^Gdb zO?7d#58s|>c$<+c*)r{tU+b@Q&OFray`m1^6-Tsc-LNQP3Qg>i9fLeuVYh_Z6jAkH z7_b)x(fB3a{gt1MKtN>cV@Q@Ysv-`4)3 zSYDr*vXa^=q=?PzCkc*!uE$bm$mng=a%Yd%iGSY)M#sQ?e{yV3bwl&M(FdYg6gVOG z2qCl{TfhShFCe-5g`k?liOLz*`E5`@ArH(~&8F#bO0MnxdIcVhcOkaW`V` zMy1x@KJc4wh|6%$bYrPJMZ()xlP;;TsGn^gtylDhc8`c=34n{N7%BdPm@L zZ5P}*{}ey?Zo-2Pkde^04nK<32vDofOD#036iuqv*?oq5TtI(QJ$nOmRv!P&`&ZqI zPDgpn0nn)oT_r~u(_Ufd`Qq(`-;;byiSBwyvvH+}y^K%QJ_gXtpP^5LTnL!U2*PXw z&9aiPpvi=5)`*^UfzapV>wci9e<&)ZkWFD*K#NQ;3M!NAOMW|)ZBf6V;}XjMf=cOv zVc=7ro9ar$e8IYkiZMY=;5dh4Jz@t#JQI+tRnNO2rQ;Yc z0;e>zm7^{XLGftx{tRx6qEQqZ|KcCd(2lKr{^})3*^HOF{0Z! zm8Fh+l^L|;T)HC@ruP97VgLD425ktYGXCFN*u6iuuzL~@l>a^&uOh)~^*Zu6cb}6P z_s*GYq}?H{?H}DFqX4~ZrUmT?g@9Ix<1+tS(htp3{RLmY4SgqFMoJ_d+oEI&Q@RZh zvDMPi8!>%c*_2$+9RdsdlzASrY+?bboD9zSKqU{evBkv0L`*2$EWpKdFPS-y=m7t12{)J0Rj!M9+v(93{`P>u~fbPxUvh7W@rUMj1h z7=bZ`DLALp%|Kl%Gp(5XpK4r|iemslo$pleYGnQ&y1qLqisbu#S5XH+oB<_Bj*1K* zC^<<+NeTi(&XNX@43ZQHLk7hGBnb#e&RIZm29-EO0R?4sRmIy4N}SspRda91Scim0s%mp?|f@>x>9tOSq%~S!`-gbiqT`E64jDe|Vlk zQ&7)Ef~%g_N(^_t*%)lRGAMeE@+% z2PD_9xCRk+HUTM|aC1~o?&at``@XmzR6IFQn3rvO5RE`mq33XBO%^jEtf&wPulS-& zj8@BL>NSB&NP$IeX|P3#ByUZ{*4Z?wy?c?Av1Sq9obN82NRP2-5iRZxd`fz?SJnKq z^s)rOo!RpA23v6iMK4vd;!mbip%+az$~-FhR(i8?dj`%CG9A0opPZK<_r1#w zL_&_Sg?7#bB{K>W9Msl#C;4keDa}@5v$eLhJ$3lwLU{H7Ph!LMJ|jx!*-O`#ZU%dm z%qBLCpHSE&QC3vJVuOoFzKfX>Hk@Es`yhCABq6d(%-mo+&tvjn?23fR*{8`jzCAcq zZ!m0};mv=$Y+l($>+n_smHg521CaHzLE>Mw#%Yb)-gbB{Wkd67ME!Rh8{rwCJstzRrmzjiktdn^jw$s1Yg*G5TqHUiC>Z4Y_I0NU@s$SMRa)AK{ob^ z6?&$`*>v6{kRe1S|Bj^mMyI6=oIT>36Z+bZJ8ilk)qnRqbU?B?V(-oE^6uS@f6SGZ zZRZAP9XTyj+MF^s&QJwC*|JY#{-iF+(p}GhBBdsjFFCqo!Y&d+tmq!oQx4K!Ej;PG zu@t@ex3Z-Nuu{l_vrZu(=4EQI8EX%ts5$DfW~WZh8O31>Njkzp(1d)XYF#Q_MiyADT4cSzq3TX4AE(eTvw+4 zE2^x;Y($6)TV%ld0p6P-CR>DDjY9fmtY6*7{&ntZKto5SgIO{U2=CQlPSo&`HWBt~ zRfDXL;3cH)HWjm1yr31$``+UX)??b{M57xc+=?{OR)U(5#05g)_lU4243e!WlnM&G z!`1*vu|Q{9wnl2w@TrEiYBi0c^d9Nmki2u&R!E8_xuhf$X!F!=dUEZiyBqMnQAE<8 z$5L;`vNt+jkGL>*ueh=b{I*GQRjy##z}aX`(fsx-e5g_9DmsSU;S-SOqY9~BLHMF? zmr&i|&k$U$KFFu(6y{eY3)P)7sQ7Vx^mZ~45kgARXHxbD2q zk?~Z5j_QS*$gE+*`7x}wE%u|2lPl54%=#x&@tFQUQNI1F;j~?Ti|@?S-x(ctN*z=< zVZH=USrMb(q(+PNr}{NJzUiRfo>8o=jlR_)H2X^bYlnl#ex1#Eq3|yO1uI{Qws4oCS0QpR8-7se=&hzAnUOT6@iZgHLN-F0-`{=rloD^wsVnZ`g zrw%V)hnx zX6_ZCCl}tT#~~PYWrfs6?{^SX@bsA9>fP*SGV<7-K#5_Fe?@uQi(-={#2Ya!xiTJg zsOC@Cg=&66KGSs#FEp+h5s&fZ0Rm=+qFzB6TckXM&0eze(d%99<^kOWEU5MGnu*25 z=IKYgtSGDlA9;JA!&`DB-sgh1Z&#$QUxsN)>zz{t${cNF?&5&7GYfMhU`rsw4EmEM za31*DBtPsQuBzO%c{UzcNoPXOaDWGs<3hHMhmnjumoVryyZme27XIJM{ zD7(Op*Y_!syIV=1*gver@06mXXu?$-vG%=A={zG9fAidDm~N}88PIB9Z!Co+@}>u_ zzIg6IFyI(=!#I|^lfh(qLb>8{*VcyY;hE#(ZW7%QUujSS)fInK>A9iVG z)Q==&QsPK=?b`_1d9&QgMNkC#!3JW%;YM08!vjS8ohQthWXayDXk#sNrJ`H&;l8JW zis!x42rK}v>ayR9tu7QT8B&ord(OY+Aeh1cq4skjMt7=iVBc*&*FOM+Z??Z?jo8)2o3nJ+rNgd-rswYn z2iOGTXW7uv_?8vpMCO7xL$i=BQKqnsI#P=*Apd-tmSS<^u^y=n=sN59GCm$7U= zq|dirtubt#E65rfB1Hzvd3D5Twg@-jKs6fiiSz1d_v5@?rnUrLHWb#QhHr&dvbIZ9 zjDN-4yUUWiq3v#PuZd>2RxqAAK6j9aEUwF%qjj{R@opIPo?ms2`7`!}VW(cppxld! zff-@$8^t_!&;0WAhzq5Nj%g1sHnNLMz^6E zD@frhRolalTi7XhueH*QXj1@9EW=y&*tzNa!xl?(YcX(+^YN6Get%_4HP8O=cI6`% znH%fn$paL-59%-eMh1GNjc7%C=gYZNN&Y|uaDsV=H^Ze?%>_H4KZVzUjYo42IOZ@& z5Zdt)o2k(~djGdKmbIAhzTaQh(~J&jaOX?BqaLWs4kx3pNKK?w!0*%e${D$YO{Gb# z#UK_0HO)+Ok^6f6?C~$!h58&^>$*!sr&qj9B)#=G(?WMrm;D9g+q*Q8t6jQ-v5XZm zOz}J!O1NwwrT~Av>7=uK8^d(4C|*77*>4sn^ds6Z;$>#M{%Czv`CAef(5c ze|}10m|P}zK}afQvVE#jW5s57zDUB!+g;x@4WkNkn2Ww)C5mmL`zrPlotAQdz^cc8 zbn?14ZR_|*l-AEnB|e1AX~odF7u3Sy7K`FO%abkyBIbzs0_|4rpiShDI&yNf-9Rwq zb+!xLX9_MvcqHvD6f%><8fc(bhVG?Va4)T{Dj~@leLB~mAL(7&yho& zHu|i#CqjK*f)BT4O)XZoyTkT1<_D^mA5ErJ+c7(7SOvKRdQ9vT-dxvNM&pe1>oW~z z-#Qre<+Mli+hR(-KNRF&6tWodaPQ(DmVER)TxUe=D|Z4>?Z}<{;PO+DIhT#wf0_s|0hHH{z*AWR zC$`$bC4ZsI??*l3Dy<@}4kmb4mH)XLW+h+NHODPhXuhD&U4M|?FT>4K*u?32smn(v z*V*k{lX{J!vGMT+jYmo%C%eW!{S~68Yq!8g><zLNcv%oz!OQ+G9SN#2NM;T%MSvbZ(6@fo+<2WBf8yZeSB9X0x?)$&ae`=r*Z2FXS*kEr`W4Y3<=&le?ZO{S z{$xB(ro$BmBEl7uI?(&)?YE%L-4>h5xsh-%J$SiW{Y3x2V6p}SrG24t;v{B_!0R_U z=4!Jn<9@)*7~g$Wjyd~#>i*9V!%m41fDjgG`SAVW?{`3ZLM#JMvaDx#IWRpg%&!*y zEwxXc^><7e@qvNL3)EdX3G$*LI2frRYLU?k0)+j_34qcn)>BP^;kj-2n>z9Ggh6gi{JQA)a+T3 zvXS>P*Y)ZtlP^#&f8|DykdoWGIa>Sd9D&(N=q|MoHlHN)1tu>j<@Q#Z);hap!QkEH z18-}tF*2tky(LHe-=nfbLr}q_TI%#cRrRDe%ex5T7~jmRI>rdgGiCgxfa3{-5XS3( z?$xRakil^Mg@&mo&R$X`uy?B+cLAVhsa%6EH5OS z|MDC1`=>fDdICqJsYw7ge21KATmj@bSz8Ef0VbvCenhPRN2qUHs0g60;|hBBE;UdU zRA;XT0RPnjw>rEFgr^H!u7Pk&Z!u`V-G-csL-q4K0X{ylznJLwhM6{dALu7dB<=QC zBs+O*L*7;*Krm)vAJ?hkTCxH#UJbV%Q#z;Ny02;HBz79>-tPhU`j}x`|MMw|Z*~r$ zy3P<*ESItis1#YX;JwBUfkBu-PM?eZ0iYVZsRcS)Q-?sbK(vDylIwAUFrFGntN+|y zL<7S&T!zL^JPg_|{~W_-6JBWSXMoD?StifzNffT>)t7>#Bu+%rD}zRKUYi zyK$2%Z#~{&w?Gm2;7~Y&ch#?jC=Qd5Lx_ILs>(Zx@@>fb#VwUc|7|Up=7w*d0;VBu z{_0#KipL(n)D)9y8=s(Re?`ecSUqdfi72}L;cI)ZIqFGByyqct-2OZB!tsGk)p9qk zWdEjL5I@9a=wqX9o!A90Sr37mVnolwck(^vz#DpPgORD;2md!AwjQi1s*uD=;sYiy zS#M!TU@UPB@;)*=eXZ7pmY+|cY@TVE!%3XFY`#RhZL}qn?mzsK1e78j?e7HT39A3K zTb?C{*&_d>yPac@l&Dl;rxck$)AGjiHJ}e>W{8KplvZ9AdYQ|=KLCC-gXm6ZNJ+kD z!1Yy})5u%^iJ^JVmpKH&DP@ZEK1F!`a5S0n23&@X|P%+yu1R#GWvZQz~3v4ST`Wzw#Xt%4{X>IqC$&tIKKP5a8L2^Ei z(~la<66&>jHNOKXnRx?Cl_dbtZ#dg~bnDjC0!5~}3;6ylv`3`pM0!8nm_>>=dA!%i zwu@M;bkW2Th>N+K+#oJI6n&|lsw6^!Io_|wU9V1sj@2S&EOyXLo}I760Xt_JVrt+a zg2-lU=M7*U6Iqi%pqOwIn24SG$>V9q?huKQDnhqDsqWX^su9yae&D$rdtgio|)jFLVz;%pqpy5mK6-oyYl-1Kd`!0|XodxZ_dj^Mo z_H@QEpb1z}kn(oGy*em;dB2#=3evrxyi0iqUg?9OG)5Q?7#VQS&T;e!7vPflEzxBw zRXn5u=L-DGG-@nF=cv3rmzH9C129epRDMyGAxhYxwZsL{EJ#@jXW_``PeZ?WJhVA4 z&`|wC z=XCvLH;Gg{q$S0DpubfTySy)Xi+bv+t|ULcet%{B#gmq%=Z!apefurFr}mr~dK#{WJ?^Fe=>G@j8=`KA?daR-;L4Co+r=$6ey- zZIGN@2a#7ik3W*&?z9yYXTE)wQi0aK!IU<<`O8hLEi!xEz*L;C-Ue~(l(MfkeRXzK z2spsi*HOItd`9aE*;>qZo6~=%@Sip3?V2)w0TdZoz1fng1jtoe?!*UrsV8pP_kWnW zLcf(ml=5yMX=N~yeJ(u74y@6wBWLh|DzqmX$E0*U{492PBxpUR@E03H9Ee4^EC347 zNl&=+LS&=*{7tVjSv<8B1kG5(;@%ru5KCiXh|?)@fN~1( zW>&78o)4M^gq^zMHI9)`X|H!05($)wDyQJ`gc>bXLOTePnuCqrB7em15rWh`rBu{$>h}Pe7?x7U&0R$t@hD z8VT`R#5ozy$`BrzB=fZOxfD2U#vOc33uc$)M=i_Rm2Ipy25$o?`=BaSV7wB<2W8&4>3fm~XG%uqHA-C@0Fk%W}IO@gZ>g z@=|bxg1z@(*3HBj;=0>6mLzzrmYn2oRy>kDyGZ0124}~gHIT`^V!z2Gq94k_Ox{%@ z%g+(K|37 z9uX2ii|9oRwbc{z%n?3~_#lTQ%Zwfi1&yH`JR@n@Y|#3bH#I(-B5dcA+ju4BUzo7_a=(!BN`MoG z@o2a4CsR^H%&`scl8twZ?D3zr_mk}Q1?!fwJE9HlAWLt|Y6q69FZ1nq^-*(`Hh0A$ znuORMfi^P95cj(@jA_KGH$GFF7C%vLQLne(2-xkpNjT$WgiegF-7VRbnQq;9T+ehX z9H((Wp%_Gk zEmZ7u&I=T)&vlbBzNqR-pIAr4D6Xk3h<9Y|a{bKYob+)SKU0M#+qxQh3e%u#@pdHe zvX4oG%TM9`>jz1B0fd^)oM#ASKa1h zugGvihQZI=iwTAdhTu8Z;%NScz=3kHQ@SYmalON)l2}kW}7I#0B`k*3!*L!M6-J%qfMe zJ@HeQNTc7X6EJ&!pqFYv9h-+ncypaD3*ayrtUWd}W~@g{C_HMXRJnZWfzW)VUeMB4 z4uT=jzFA}-+2OuFDprDpqy0&7ISK*+YtBGq&W?1vM)^Qajs)=-1rO%Mh>~^ok}uuq zka}Ysnx|s>(NO9lqv_=Y68uB;owWdn=Ikwk5t_=shF9aKI2FTSh>-)K%(6w^NNU_e z7eFI7`@_5599hEQD__Rs5+q;NXLT+$laFg2hLvUEUX|j&IfoJ`x^lQKoKr9|t&i&8 z{Fu7w*%f9^Q0v+q#f&0VozbT!uhRozQ+>Ck(F% zWs?Vvr_r!QL|k@_qJM|{DPiO4?$Kn()ebiw7IKC{!W+Cn#e!fAHSI_Om-j51bK&N3(9yLnePYzVQYKIU{cT*GX( zgQ@(T+VvCm??y`skrSaW@wmmMUpf_W;g&xej|Dmrp^s-)vPsNbx?XB`jgnMe*GJYe z*K{@R_)?1L#Wa!`^0Ow1)mmpOc6xkq#!5wBR_kwW$5l@Bb1!~sio|G)kGNamq;=cI z%o8t*=Bw+tuc@0-xAA`%lpQYIZQLy3W@dFLH zgGU8aBBZX&M?l!kaiXSIV9B~3X~Uc_(Pc&DKQ*jpra$~@!=|x>&tgri-csq+xp&P8 z-|Qnwi@W1W@8^~GF~Y~3zxbG}PE==;BXu_dC~dt^>KOWA>LqKv@`F*i@EWlfM0H+N zzl+_3koR&Puas@|=uXa8GQfJ|Ko z8Q5X!Qb7xh&4IG6QM7X|l5Oy7m;3^dH<_4c>!KVZ-Z&9Z@Z8-xwH|5oh9NcT04C|5 zwO_6g&Et<|mSV~=d-{@j4?~>%Re{@2O&@#>ZyZK1`xViX`<+!Qhl#dGX;Z*-zc^N_ zR-_ye6M31Xg>BOB3U5^(RX&n^okK>o0+YvaHitFxP?KTIGz8i1f7~9U2UtN-)K}IQ z7rqBmvgR<+1v7P&&Ug-*k(CwYk294%r6(_`_X=u}VIj@h<$g|$3+vEIL9%_xQrm}x zX%>Hn(|=)<8i+=(vBD7HFvSjKCV>OY`2z*X3UHXq4=e;BV)Z63ee1vb7g$AtxJS%Y zL`GlpaRmaZO2Rcw3slXtU^Hze{73X^C}_|hki`a1F4Zd($rOysr1l2 z4FBI3LVHwpuqM(?DCC+@EtYv?H)>ZF867Rg-)B}wat164CEQRP-TA;-a4>R5pVkvE zj(u#Vf+e2#AvPmF-T=&SH#Y*p3Dx~FRxzb*&-0vpIv%=M%?NnWb2pZmU#u4&F3>4r z5w2LfL4k-3iPEa1{5%M)E*nM{n|l7EK;+Rw6HseB6~eqRR@XGHK)rt(V_nq?1XwdPq|ZStK0 z_jHm*>7u=KR?gQi{L{cA zfsj2xSqRw+=kkwsBT#%3<_Eiq>R7rRgS^h!`1~(z-gBWwcOJb6xNXU9LSPc`-u#>= zd&Kn^b6F*s*NoQ=8(jp@vTJ2%utBwWry5gRJ0#~ zCVZAxG0K(`jTi2!{bBvFWg8;{gbIjPb2wOPdsySojkTSH-AhaD5uYVa(QC~#-C+nC z$|7N+Z}`AgaZP@a39lHq5@*yo6~TbS^+25}&mU8xj|d#7UT^}&2zj}*oIa?eZt9Mr zp1hXBkk(r_s-?jCS_64mai-Bm+L6cR1d4vb(S~ioRksybu3tFQ?Wpu+bSH0_j|~;k z8p%HWHbua~t649zf>O=@o+}eSuB>P&&ghw+1p*l?U;>m$%%v)32^-%=BVk z4%ELtWppUfho145D9(Ln81tc%E+PpjFOBuc4=d$qEP;JjcP-~Jx`yhyVzc|QN~eA5 zapLG-tPz(z;mH`@2$z@Z);B}MMee^(6aVbA+Voev|B7q56EX+G?^&%7P3kmHP!baVs`jcoXM|nO_n%cRw?D; zneN90+Hyq`m;?Fdplb96#?J~f9te%D?f|Sr}4eO>Bkq* zHc2-@j_6bVDn9p`&k#tB=-Xc6k=Rg=@8Xo;Dii?Qi*K=tzcIcgIs*Q#fu&^4Ozc0s zZ6gH07$_KHR-e893kvjZgp&*#E?9=iKY5AAlA1mXzPP?ljGfHfJ z#C$R=CHa?HI7?vnL%o)7 zZl61^J)ePvl2^DSh+bq@iDAhjD;f>_Yr!dAz<=S@tyu5iH*E07tCxCUKLUOlf=Czi z5XdN2D|tpcBqzgUz3;ojNs6Sc3nP|)PAU;ShS5C|(JIm#B#AG~cW4xtx%%vRxS0(I zUlVEVh7zSRE$m0RGm5Kn=Jb?QwXC6Xq6|gd!kiB8DIdzuzUVzO)|9fab5H-`v}Nl> zzYmEEV6?;S=X#?n_8z_~&h8~|ds1A#6c-1|opRlE|JMLpCX{F;Y1yuU+lR4Ii?oom z3z6wzu$+yKlkTd!t2dHgh0>hvwy=H35D`qRz7avGPNd@%`kte^UIQ47n}ULbdA4Tj z63^3bZ35QsY6 zx9=K?Dk$NEo0?|)JkuF8A&=xhFJT@u5t~eGpV4heG}X&0q8$!M9C=8f$6f^KIgjs4 zA&`V0BTUpW`UDOERc9^yNXGL`28xeji|+$gT;kYWloluv1=ms?Te3WN?g{Y^7iY`d zv`ykbaao@;Y2f2J|2?~|BpD+RQTIY$sz-jStB927{L#T>9s}O`^Zc8LDo(}>aZ>DU z)ms7;go3g~gPD#8$W$p2j0%Cpod0X~^g#M@P@Lx$$Ybwv_$ckl9ljHqONeU5wul6L zww8v`w2qm#w*ZF3)W^FwuFkt(wB|_eSOVnVU9Pl-(Nvmry*-W>+Pc9n&l~a;m_H>$ z65e91Eu1K|dzW?KMyVQ3eUw%=TOZCeCcw8EiW9OL_v^1}}f!5F;a zQvUu=$V%6j!d~e5#6EL4?zvE*#5`BL=@P?H*wCtY{7BJ@45X)nyT2Eagw(_D@>aUt zbos99;a60>ZF|S(nWbWOOD`?6`Mh*%v2@-2ra-rxO(+XoW#;zFVAh8eFKH|b ztN>Y3+;>hyWjYEWcjUG3*LaZ8_cdzysrJscLYj1Zarsb#eXa~)Qp~C=je*|aXRk^ z-e3p8WSkC12Gc1Ryg@!UV0=wBnPmo@L08?1DHl_|EzvjE5SVGSoK-lH%ew6mH%FPqj%DZV>rLCjW8bR@ zFf%vH?;vMY(H1m};l?eotyg`WY;idjqd`Lbx(~g&(Vy&0`w+=TA>kuDY;EWpmsK;D zL>`_SvAH=evQqMH!7X}uB)GCB^T2JC+$3zd?b?D_twraQijj@t{_^lBt`$nRl7TFfD111TcD?#x z3bmr{R-Cm~_yUt?o-SI)vFv*q-(RA`GnM?D2)AyL6vD6w;c^E{{nqH8>NXW>{d&HJ z75eH<_d&YD$C1tH+Uk_`;Vi|}Hv)(asa?=!Io%Iu-sR~#djIZ1gfSO!CA01Piw%2{ z160$K{CKdQ0^&`Wq+f1StGK5RHZr49$b$4slF}7&cfqyeL{Gz3m(BZsvcb?41ZMHV z_uohF4+l)~?E?(ceONAc*{{(RAEZu|h?(hdO<12t50BYVzLEHaAlFd=%-OSa^V8Nz zEG zrT|cjj6#{C*6Ug?#LS<0N*nfM;ELIguCp6oj4Zdh3Pd7s`+T(DMMa;Q7B1bp z@(WQLHHLTv#%ERCPIv_n4{7`rKkYaYBBvnDHYQFU?7xUN$o4^iMe%j5Yv|+;71tpa zMUMHW0?tr~MKOHK3iVHi=ilW*@RXsb86pQX6DO~nuqYr^g$h1f;R^^Km z!PdjpX3QB~3I~*g(x_gile?b$9PH0NrHBS_60pr2TIc>e$7l{jO31<9sjWbQnX=a& zcw_v(pZPrrMEoGR>0U!k@at{Hp~xB^F8e28X ztVjcDWNUD~aJAKjW~e0dPV@gAqCd|}3(;I?AFeqI{LWn!oY4H_TMZQVN&!AYuM~g( zzq_#i-s8O^M57=n)cb?GN*d)tfsw1jwmen>&5*hBi@^U68A5~@qEYmG{%-es^3l4` z{OAs3nkEE*ut*3%C;u6T|Gp}uNbwbl3mSuJ;onc}_g)hU49#+-v2ycYq>)!_7ydug z4_8WvG!oZ1F!_7(M=PNDsmN4r=O+STAwYx^{WA{#eN~7C(hbFh&^t$$lW@%sfhaQ8 z@ntsM(AvlHDPJM~J$L{2nU`)r6qy^(vTA?-rN|bVA6w;w2wQR}EXYed{*1%_jVL$) z7K#f;_pgg5;i`KX1cvSquhj@v79s@Myt;+vzWw5qy;00=)pyJU23 zd~Ks*cF}>yZJO;Ff&h@yS17X$xVnwich9ElZ)M)J_Jsx79WT!7}u|1I6G-(lXjY zS9e1Kuqm8>9hHYLa778Sj{!=1;572bq`ko`yQ#>fC!T?WP}2-`mCmhsCDSjzRKq zM~`U@WG*%dZNZN|G1IMMCc%w&R)7iDW*$FuPI?8Lx_5Jd7!nrx4I12!2h-_>ybtk) zs|EnEb)f(!{c9obvPs}pgt-29noQgiXT)z25(All9^`G$}3 zw16c#2~N7dxuA9Pa_H^`_!sBNZQ`7jAwoWA#1g3ZNpgrUh_m)dyt!Szm@MMP zHNNFy;0u%zYHL3Pa1Bm^;WhkTjHi=tmQyP4kJ~$8(imhft2=3AZ)XbBedqEOoFP=L z(w(2G#@AFkEl*SzpLMuAO{<%L(n|XI=Bj?DxbAwU#v@$Fp+ds1W$JnJ7g#V~pS66l z@+!!nH1>jTAa>FZLJI(W!LtV90o9J}0n$g7CuFzpzh5t*NI23E+iTFsncrQpNp_hN}HN^Os1W@8nx`8>sb)a?J0RNR&N8&8K zyQd^#W%ReILkr|}BtHLr5p^w30w_-`C4=~PE%f@zQLAXU_sKi+3uItsP~{Fp1t#|Q z(n|CRy5)g)mA4YpA_Do3;0L*j@5nYMO+8>)xpm;Pt9bLi&}~=A%l{k)Y>;7~I5_Z( z?&s?jkR;?&^sP=4O1^?izRkxcOwI%og?`usoS+K&NEe~bJ1V^FlzsWW*U9k%)WB6q zeCqnF2z>)Yf(aESsL_1d8vsZED)c0PGSg?H!##Rj3&X;! zPtBAjZ{``8ZP4KO2>znF)j|{S=&lmv)HY>-B5(Wwyt>p=ynlkVTUrYk5T0kP8V0tx)oUiA8WS}fV# zbA0@9bnp!ah*sbU2uBm9KS9E)svT|R8XlS1SO97?b?@&eJg0Jpv`pGp;s6ay^1z`- z4$VXq^qD!G&>=UO$<8Wk|EGE#BsL=Ns}QjnbbMjmb~mmqqFhyuetKjC%HVaj=G*JN z;3fL&C_CHD9?&gY%HzF_ul20cS3JM4V1T-uIvK}HKGU;0I_AQQ^aT_>XSe!|B+rC3 z7w?7BratP=CQAS+rtUu2Pt!aSUCHSS1RC@AFhZO(i>`pV!Trr)rdHiFZNd}{86U13 zf2V7Tcko*a64Y}mdt zo78i&iG$~Z*lZUnkKK>8SP}cJh&Y8=WKG4bM*UcCZVkkjsvBfllo6M~weigT^^w}$ z;jF3*RZ~}1|X$C8F(jYuN*@bH@n>X}PZuNHJntuU59Drhz?pXcNsC~Pp$nB zd>GCPuMi_tB`?3w!BV@K11z4!9mTm8^tS-UPvT2qZu*BEG4O)CyshP;`$(o z422`HLsnsniS0Ycy|Rpxlx|(_i_C2%>u7r~zk5nZj!|!*7Piwwcf*lj;n9Lk=UJ+) zp#G5^Qc4~1Ve1s}PD}v12(`^oJ{MIlKM|#fe+Z-!HVM9M=~IC&JlGxV5&Rb6!Je(t zlYYQ9)!p1dlIZBsXH;VZCX4JoKv+VH@?>rb?aN&Nnfajti=P@-q6eVShNbla7~Yg85{rPc2)dNwpV zPW9DgU;Fua*Dbc#xYjLDAqh_F_Tl5%4i74IiEUfoXzq`m3!Il~*Gy=@*((7mrlvy! zpH}%Ir+m{7Dxb2Y2^$qET{4W8)36Jl9luTanEes!lUKgz!J?x%-Pzk>0wKAkBSWhW z6@fV;^89sW!{nRy2WH#h^fqT5UfQqS)oTY zMwhoGRlgo0*@$vrnb+pNlESNyuiYJIuz;uiQTvD5KM$Qn5ZA2!vvR?v4Z^53D^$iR zSb-(76eYqN@VqPgW0X5CE73Zxm1GW!%tdfMjA2VkMMp`Dx6EG*aSUU4DTdp7%rWMl z5ROr4yeu&6ScIh}Hz_qvre#CyKJj;JBV^jcq|tjt=yJj%GW_zaf?t;7ZIj5TkOd%G5fop-DgDVRA*!H>tb6 z#SgWUe?`f?VUhF%P*(>H{^F@ux3$)ie()R({7Bs!6>;S@X*jA|3*cUAMdMQ2VEdl- z=K5wdondnpC03ZEukNNtGLPo>&--eaohB6w(~v0M-Hz<9A@)~QCxI+ z`Kc+kq3pm#sVHW5=*pZ7j)#UEkSf5r*Uu!8{(J?B6%5g8!$mw(SMW=GNCkAot(9Hm zk3`H>#kzuiLD{lUjgSkZZ7ITpMpuPD2Jfx2hGuCd7i-Qz@qgFy!;;lfZU|s(^P0w~%Oef2i^5EjZn*OG)m(*K7II`r0O>6GA zV2i7@$X%Q0diVT|Zn2>%OmchmOr2gjOy*RQBYSJR`|1v|FCWk6;jJfHUJvVax3{uO z74;eyvD;)kwo9xjD9AOS*X9NbWD#k;q%aDdFgUzY0M2SN(^byLJyzlH`#q}%jpiu9bB>c4*T70PB=?Z#vW&&P9wA9kT`2B=!Gaz^^1y`L^G1pZsX z=0hbcN2155%55WkBIB0VNn@}H*)!Q;XsTN5Uw%>1)oj$y-|}8U5-PyV{oVB8^8nj~ z$86%x>hptHPIx706-0 zWH*HP@Ax=>`X<&>)Zdjy8Gh`N;KCnVJ>QYXQpK3$C60vIYPqjZQay>aKvZV%VYfc1ojY_#p-!M4RA}$6=jlP^?Fn18@ zyPzHZP944kohaBx_STf49}sj)(bNQmN4FkOBMd=fxnnie=nexVzJJYIUtL`8i`DKu zJr#tIy7VM=1>MdE%N%*m1EiwW;NAS4=~{bzZ&fJ+Bxs_tm1gNgz5=eKj`e zW~P|i`HS(j8D(JgjPNu*Uz@lx7ZF9%Yz$!UwzWq}gH;#KDEigR$z3*~kr*x*Mo~yF zGKB{Hb&W*mO4Kr;UWoYcW^rMaGmw+4KBoH^X|~WT!)cO?QZxDRVan_MD3fz}gnxbt z^M1r~i}@)G6A7ttOQX4|W+Ub{2gg00qgJQ&_f`D!x~{CJE;l-MO{3wzLLFhITO1|U zHZP=|n_ujlFh22+;)@A<<}T9M&{n_#L4gjWYSzxwPLiBAZr-Zym-E+oodXcKEyR!Z z`KiYdKuHFzdcaKug}HYj-$Lbqwr|(jbS7d%WGlOSU!(80eW&*O-i91(jYUJ^+CC=E z+VoTdURJ+81*Y!kf>%xE5k^9M+rm_-AiDehJ|jXsq~nyY%)aPI+_0ITYzQbFgD&Oa z*3*2IAh`XH)Y^vG%zN*RcLzpkB6AkX%!kja%)zy~_F@Y$gg`Td&dq;MQ{*#}jr4kc zbuXy#b0~!T7ZG9->R*f$^Q4Wnjjo(%IDyc0E8bdhqI-DOdS|{SLpoE z$7GD)mn!C~h>$5$t1JPjX!u;UbfcOkR_W54mr^oC`}(d|8w)TRyaiFJs zk054le@ArutxHH+=BpgA?-`c4J$I=TOSWOyO%WtsoY@PmP;wp?zb7>)IT#zpOqIdw zXXe3p9NpDn9sfcW$uP$BIMgUx3}cf<^GRFsL$|-ly#I(&O09u@cUv-jB92Fj;<1(ogpTO||I=sK0P}a>$rb6+{>@?=Z9>0`4jn zp>c14F^`~h|24miEriZpk?#A6V901>1(qVw@j9akKY091x`O~I<1BgN-As-p!bJk| zri`Qam0Tr8JEaaNB98)NEg4HHU9U^)odV{(99bOctwnfDD^5q=$OGg zVouHVP561C{8_XPNODY{V~87h8XeD%jJ4}JiHo)! z#DBZngLHStdUWiy%*PAu&|5~iOfES*m>zj0oy7amI%VM0=-VA-AvzZz5zwl+F*T}Z ze)uuR?N@|bZ=eoJ`Qu6pave&oZ1WCz&24{{RNNHD*z#}3*@Tz#3cNa(S&)m*2@s+# z)3FJarr-NeYe!9n?0%I>j?BNWQ~Wl0AkgpY1GM8_U|z?M2qo%`yyFnSK3{3s)fCAq zwf(YTcW=E-j?`%%+HmS?4>T7?`Tp+tzh9ArlKG02t@Vkp44gm*B=azPNOA+!E`^#8 z$_rpj4YZUV^{{xL+~;0MwthC7tyX0VxCXq_Jzsq1?eo8xoya^Q+>vRRFfo78=m9s^ z9AM+y$8Pn-`OdWAjz2R3cO7-uSc!GxC{pAlReZApi4Y zT7=WxB4;zYQwnT!jC~@BH2DEW9R6ZbLkR1yZ$Alvz_{F~n8;d2%3qGCHn;E!Jt*9l zW#EE7YdY>yA(che(Lcws8oVSEU|6))6qWEp-7l0Sh+q!9|Le9bg*&U_%$J%=X$-G* zE6}2|X(M1SJ7qgGrfC{W%$fZw9s{_Wpv0AF^WAae;m*XpB9_3&&2t}7bGrUddFThW zu@~2Eq|)4IOX_-bQE;T!N|m7eDJE}P9;Jip?M%Yr+VgDmY+l5G$%jFE%93!0K~ki|X13}k&M36)R!U-1`qnsk{n$q+>3Q!?5Z{5AAYp{+-pP%|YJf zNS&~N>CP`UGYyq`R7Uk=*}5^|uq?oKvlz%G^0bL*P4KVQM5F}21Vq~ni}-y^L;hAH z8oiRgTKO~(^Tl1+VPgK=oTE}vVpI9n`fwumO8Eg5UBpwDLQ1@tZ%L2YN6sc+G!-9I z%c%6G=5JkYm{~xZOunZN!slj>>ipiA+jF9tEO6D8d?a}(P@b@i5ZZRZfOB2 zDUnh^QBk^6r9rx+hZF<`X$zI^9J(bHVQ3H#kOq;V;aMByJn!qe@BjV&`8<#BP`0!8 zT5I--@CWOw zKo4u@KL{^9x|}WHicm!FkeYf8#d(+jjU!PD`^hmpJ^&!X7Vsy%pc1ZjJP zIhnC z(Kk&i;@I-6;$xuFK_}QYC!=fINqG-g!6BK*(|*xFxiN}E^~h(|NL(YK^7@@@`z3l= zvsXr(x%C)fEQuSyVP8hK2RIgUFfXPhLUv|x7uAol?BP2sJUZOlGAU_kcFEb@ ziE|-Qr6bT;+oYY=NdCrmc4b(xSXacnq85~gy`Hudya3iaePpi6?Cy(|ljT=}OIn5i z@L^Wm&)SlQyb(>fGl|TbIcO1?d2A9<#FE(|A=~9Me)>~aBMvZ(njhk_=TPc<+K#Js zkxYfuH0P_DDZP->i>^X}mdihK+;_Y?(tyb0vY+(jhLtEi<)qK+(>R}_R}zs69v^4# zc^gVoS*8(@i3DB7UTt}Mh(O;?2+diu>3YPg3lMOEztJfkI@5I@3e09t9RQVoS#%58 z*nCaNg#lwIG3_;^v;Ql`d8 z&98wYJH*Q2NrZ&fdd^%NnQHrI0y~!*3Q`|(^qNubUDreue`)>E2eT<56Ud_V{nUR& z!EDII`siMVl*A=psS1R%?(6C4NDr{@Z9CUyDqq7x-|D%`!c2T&>Kszb!j`!bMFhX( zMZ=AfZp{!E?BsK?UL$Ov6ddO}yfKa-T7JoaM%v6$3_SttjNwV~UDmz#aqD7RL&KK0RB!Rv63D_*L1$~)^iB0ra;}uws);1J z2Tc!b-*6MvUL02U2^uK#w952q5>Gnyy;%_?e!Gkl9i-BkUKc+f6;<(RjeNS1ifj7y zD9bx7EczX~)vDJWH!84vSYcvAIPqw|Y0v=n|emW_Igh^+MUkbHOhUWQ13=d!`5SMeb%}l!qP@>i5-pGW=0`zrmMo zrLvd)JJn+$k#o~1fnyl~Deu)m=mJj6P3O4jUl0CMQm!k6iy2o^@WfZk4E$X>U=@JW zi!HgMeKKM|%o(#LpTBx85#G_(c-~|*`n355f>9Gvf>vG>=&*6yZD^x8PTU4?Jn+t4 z;)RQ~=$EFuAV2;Qlk0HMi72kn!kz5TJxfpm0a;=IH@_1Ksr1Zt6}*3y^#6@^V5tc1 zDDiaH^vS(1F@ZZ;VfwDNJPz46Jo1)%fBmy*{kxt0^Sg!~kY4UFBvk#kaZ(^3MT+I# zZ%+jXf`Kd_J$cOkxDNV3m<3$g^?cU;WDdbWJBKaAT88r~qUUI0sE@dIOl6~D&^(LXKqzs3oG?%~FZANkK` z{I`em&B3MF)L$g|{ytG1Jv2_}@ud4#s-bbQHO$BR7e;i_9w*&VN(pQfrSVeVlK%Y5 zUyuyo?~m6M0+(V5AJd;OK@3SC_6Eu6w5MD8&^N}zIv)KW z1Nz?w1}3Vtt0Nt$^LPHV)RHbV70K}sxOQcyT#qF>994&s2+HA7%mn8plb9Hzy+(lKg#(&#; z5&G)5uXlcPK83fa2?s^e1}plTnHo+&evYr?24%TpC7|+t<)+fL2V~X%2O@{sJ@q3f zXkY~pNYz}R4EH@Cdx~rI`~&02wfs*Q#~9~b`_Ma2rWNUTfr;TQ$3Qo@b5-eCC~Cq5 zL~Fb|=6gtO*ORP3^l)d5%HBAU2b({tt$h9gS3Gfw#s5#^g=l(ihu(^Vmkb|xh8NP% zJsE8Q9z!N(Ryc160y)g*0zGfb8}~^`DsvCOHO7JB$)D8ES95Hmf$$%ai@T5bDnTs6 zI52B~Y!iUJ*rGWLr~$UmAOeSlOs3hu1>Ns>W4tzk#iIEqUI6WNO*R5*J#bL)Qv z<`|d7)@3LrrMtHI0N6C_l!dcOH~78R!}J{Q7A!*6kuy@ZnO;sjTA4_is`8aur5wx1 znpUZmuMk*c2})Yna{T(Xkb3!*P!MHF#}@Elh#=`^E-TG@Z($~!AeYbFRiodD8O~kn z9G3o&on;It+53Tu?-d*$=^0o?T0Js0QAtSihKLu5Y8vOv>mwR*V<7Nixer6uK1x+V zmVcAs_$ve)N?_@uQ)2t%ADmDM^h!%HUH=7|FkT&-x3j|UZkBuco zUW@DpEnHlFGr&jFs&DseBEv7=1JdP{_jkdQe!FnrLSkgd{DP{bKwD=pqi;ww*zETF zplcF>?H;Syps>>h+L-4Zts*1s0uqFIU51>IJQt$(K`2N%r#|qp*v>Ht2CVSAJHC&fL7WRp8=%Wh^Y#}GcOS!Fy2P7vQcb6juiPw@NPgQ zVpaU`ss;!%F*)u}!c3XV@}uiaQ)*V=(nZHeUu7;a3920EB1#up%9C28@zD zoKgn!{Z()*?*yS~Fc9*=ODFnEKyruftf17_bXV#6sblRMr6l>*_FZ-$0H!2Yqb8{f zKSCi0P7n`c&%@M&>BaA@-uRkl6Vj}MjoL~H$j>wF1iqgI zGJNFg`yfOqUjkr3h7BfwrVG3nn_JajT&?8o0YJfU*)+iBjj^soCiQDrt`VTvXt9zi%s78c^+xO*iv7a05oX@#ma0?d2I5lxz{*VOqBNonICUMeN+kQre-)JS7& zAc{s>S@Ybg7x0Bh7dW@m7vUgRLakQ)D-q|Q8xbDS zU*(w_h`+|BeZEM)8+aHoMAHInYcfj9T#MTvWyJ#{=*&6fyI=swFO+hZb%Ne7RV~-l5_KW40YgWn5>AI z%EOzLw(8zmWk&^)$ldUzI=cZ?(5HkuPsfr_wSttZ=G~s5hC###@J#xI|ko%n84`#~wk*mttW}&(Q;h~K7dS*-t@jCX+>_Q#vwXWQo(?$@NB2a zY!uDdPen|A#$KL`u~mnGc7YeXxZEPQPi8%*$&*I5?;~B4(S|@$Ex;=+w>~UreCzxw z4*;g^SITf#x`PUSK!W#+7&1ny^Pet^=ICg9s~cb*FZVuu0jR8&O>`SC*VSe@maouv zMDGA_Hq4PKX%zU=R$C{bappbN%&;9^Vb!VcS-h=gxsrbfGza)#QdTnJUem0fY)Ihn zm(Z6*br79Gbp6RnP*OVam;t>s1w3%-bvrTt#y(x|w-O0)Typ^@s=J<(hpD4GYO`!0Phv8P|dOVS^ts&RHuO4$~jYy$VaT&fZ0~4u4@KK{R zFvI=s#`p>0YqH5Dx0wzAXG3k1bsP%(NmXHXcudkj?iO)V{v68`>e5Z&8}HxgsJc{s z+kE>x+{{)oY8@XhMomf=y1G@KN*uLE&)QVJ-{lwJCJIZ(H!`rJ*x! zL`qIf?mKL?a=m*saFrDci^GNLBs&enPMiAMW-7i&*;$Jv0tr87ane!>o)8Pc$o^^V zX|tn)EtxN0p7Z~T{d9HCot0~{U!W64RCDvzg0{;TIAT+Hg+*f7AK9Ip!$OO?dvHv%1rkiqqEp zrT~k~LfD+X-sicWT)`R#m896@>FG8b$4fh_jCcl7XRAPj*wQ8bG^hS~@4e-Lo@Izm zCKWkLGg*$iFz_sLC~39u;FaEHYclh5B~qY@dTnd;_bldHH9LiU1~OHvJ^f@7CgffGQm9T(t9w3+YLXPC9FpI6zTCtxeX+Hx z8d{LQU@)dBcu{9qLzb6)ripgIQG$^9+=fR3ib^865m>geoQpR4`YTHeGgNomYk${I z;x~^L*6f2t{nFekX^*?vq_c;5il|F_&xsSQX-uU-YocmlQQKyH`{&hN+)g?|${DTv>{%9_2DIjn`(<=Dx;R(wuybA0 zt@k!|{A|cS(2%9(f$f_TTDsCtVi{BIE53{fb<3jHs3)sj&}=Acl5lJ|O|PJXH5=4c z)AnxJT5x+bHEOpi*v}A*ZZRgJ`DDPuX&KijgRQIFE^FkN%62uULn?Qj#{Uo=NF{2{ z?;2Z@QR0l4?z|%~WOT~DYd>gGljkD7_WHQ~O^>sy1;V|%0L?&W3^cGt)%1xgTC5b> z-*U#VOx|ZbEM+E($XRkG*-{ZD%i?tR5ECD9k;2j)O>K_`<#M-n*C(rbYX9uV3{4Q4 z{HjF))i?i_BV~8UK(7zm*rN-sa~ExZ5j4PG(lbTel*405)J}(^A-}JCZ)Q|{oBGG$ z=rGv504dTtvvAUIyXTTzZ%G}xBv6QP)U_TK1*sQp;BXeDw;8{66djcKbnhSBf}Io5efiHKsK4S>1nqMfGu>B`Xz_)`YzB!bICscj z58A7?KwY@Gbiw9-{>9>rf2Px&@rt-I$B?##46n}MG zf6(X4h&8}X=H<4sNh6ft+)ekqS;^2|+Ba6#u2lfh`-^P&cct8IQ-djWy{EEP-5cJu z&}r@sjGrX?+q$4Ae^*iOjhA+B55e!Ax+=m@HBo3bPy%F$fVNW_u-&xs!s=R&1{Dvcrm}M14K_hS*lLl6n3>^l_d9lpv$OBIAJ7mk;klwe5t=)=II-x z_ss10ue=&N^B=yEeK=Jf}}! zsgG`Ch3VMKh6|B26ZsA4){{Cr9l>uK%e&b=IUv5i+@KXygF}6q;*D-k=6JTF((=yD zwx&Rp8y9*XE3jdr*^+Baw-KMQJMEuu3am$njm(i6>(&-@=HKoy&6|aqO2+aOCZTVT{UV>*>@2O}S)Y#UU@OlLw^; z1BIiiu4De^Hw4Z5rRtgQ;3yNZ{ssff<^1^dkF-?|jPkU!`j+~3Jj)TydzIDLOP^I+ zjoB3N<$*KR;M2;%TDQ6otsxfN};77_US@&zYt1{ z8q}{f&ow1KK==!Wn2OJnJ;*f;W27>Bf|xM9^;7B2wX8E=ABV$)18+`WlN>-Z)dee@ z^9xTbSSS7Yv;m{*ulz|8a5AwLN^P`EcS+Aj4W*ac#G%AJKhE9D|4loYXQ~;w>3>D5 zssF}9mUJ++jb4hc)LC_n749vR=|pw587N>AIxo1kWxkx*1T3*)N|EnNq1w{oJg{>K zx(bHBtKChTN#&!yFMXc-V3)w6`3uQ>@pRJ9x}NW9@rf#F85 zA9kk^t(w_P3s~x8g;BcUmP>P20>uo|jPsbtdYR4%H2TsViU!5_>zbt&V~Mv>!h*cy zCce{a>_GtIMzOkx)3!9V%t<5#_4k2Ov0|@Z8Q@?}iUmD72OBAy6TTM~>qlQ}S%~eGzH-1dMuA`P9j6g5&6D=+y$~!PS`>bLb(?paRw0z$q zq+j*n_G7zIWO|dL{-s!OTb!`(Lq#iOP7pPErn2iL-Aq7jjfcUvK?xq^+D%ojT+Z0_ z5X0CpIlE`objV`pp%GZe>?1mxK>c17q!`*KN~ z$<47x7VG%2oh~!;F-Arc&*!#T$vtcIKh?or=;Fzzd?Q+FzS@{ADM-q6t^!+DstN+G zo`&=uN(6Rj`>|z5#2B_J2Ee4{4Ea_$zO~-KE9yv|Gc)OntFtt7V@fUiH=iI#G|1H;i6mF?-bU!%9x8G#7=&Q zu)fd5V9)PA7R-XRwEfauIlZ+RluL~(h+R5++A%660wpd93opb3C@g7|J!N(b{T(yI>e0E1`~+98Wy@zu zX$cU*BN8O}%>K^*)6GuW^8f>|det4mBa_tx-NK!J}LQ zZh6inW%B{u`ogI4++el`q#JOZmJmi;0<^sB04uX($Z3@JbWGgBH7V1wa561_;Ixur z8F_)wrA&AiAbb$jFJE_Mg|q%;ieB98CC#A=-iyOZL!yGzQQu6ajgtU*s@QtSfJV?T zB0=*yk4VkSvo~I|crvzK5D0n9I!n!Oq>yHKU4?;6LU&-%4aY*PGC6h0^sq${Ha8iU z5AId;i23HH7^<*~@dOWV^J;dx)qG#89H`DM%W>n7BPLKOXBR0tf{qdopFY?yTDq-C zRWd8rk-JFFL!iGOlZIg*qIFnKt&sj5#_3VE)J_k`1X8x9_Knx~83{kpW#c@gP0(#c(kg2;_H1G;jcgd3a76#YT`vQGR_@lIG)gj8|ipWGKOEB!i zlt~4bw$(45H`cj^pC>vA4yPE;`7pUkoVxxVtn^A!O8D8==O>vGcW)0m1ZGs4xnR>h zEymVdf`tcP<*j{FINMR_6L1W?smES-^nYbjMJ)1a#5lX${Lod2wLZm=lct8;!wcBI z7T3dAcu#k}L8~9ksGqeY%eE{aPsMUAR#2_H_EUKj>_%II*lK=I5SVHPj|GIFQ|FMXB-wA6M2A{>*WG_W`Rjc zzt;X2r(D4+T{6_A#AwZ|2)9gwlIMfk5}p2C2p%2F_u`VJ>f(|@&TLj8QjR7}_tR_# z&-{|Zl_}BH$hZ&Iq7B7MT(YN|3I!Z&SDAD?HWiM1n0x*zoh{7y`l;q79x=lw0u9U; z)b7URcQD6KENdPwT4I?7Or~P67^h7`2c1Pgxi>k80{ERa-UOFi&P{^@MzQwo`|tp7<<|~$Z(_Cud0RpSm^6^s z+)D~}=v^t*QNb36g9X}p($l=(no3gGHb~c1zcaT)5EPqLp+w%NEj?fkn^QhV$|Q?Z zt6(OfR?l77p!1Awa*|zW3}JjtzqtdwJP)4xP9Rx+(}`c+3m?;-W-e#MhV}FvT<H@RNn%lJM`=wPI=zFsJ)VpV8GtE}fdL>#d zqMil`rHgKIRg6`iK=xvQvln@BkL4cK>O+9d74TDDzmQ-ulc{Jtsf}Y|cT4qZ5tI+f z+8r$%vEw7!6S&ATq_m%;#vrJ_#52$ux+xfIiUW(7W^(~;#jEx1k%pY+$Sa*11Fz5x zswlNaDjkbk1I{9IgYP3Rr1Rlr+sAPi4h{4VW2vVv?N;`nFf;6@51DKFGy<G^3+>6MACL_q-Nxi#k*Np|B|dSi`>vz-TQIDZmxDV&71Do7uf^h!kod81=V>S z>RNZ*3W-^M;@08?{!N4?-5^yBeo0jp*n%6URHT=G75fF|NcW8W%?}CC1>Wf=%=8GTq`XmW*Xu%?Z;^;9g^C=;FNT9Pm-*a3xXARG7Ko z;!q9@&kxPrtDBA@qVewEAXLt%lRb=5AI+le5tf1{Eezgy5@D74IA0-zy$|MbkRF z{ZVALFF0IjpA5M}{>JfVSSm=5cUwy7`0(HDwl;}& z5ANxnPop_cTW3$DXchNpKJ=NTM#a;35*>-bce-IUR!f_hifIG(QWAlDeeO-)55GD` zz1O($&9h}3rxs(o(CbA;UO9(W>e*T?_^sGTvxS6>q-yF5%bTY0BolgCTON;$e~gdI zbr+bW{xvyBh1DspU-c**c=E5Of(lpx1f`KM3VBAF$+M?vB>67Lio9Er4%m&|F04VL z_eyw#sX1~ZVq~vhiOwh(3+*J+Dwm%&!u@onv1}oO;m+YHT*73qq4!F?W~VVU;mK{m((lDWJSh z;h(5EClM+_p;D;pA`OdYMw~p4^V_rL(Ou&@1|-lM5lvH)^LvLII_Fv&^cmrlsW8+$A<3Q((P}t&4?)9pDE$F-_dNd zyMqp91>x=*uiNQ4V3<&e0$Tykjc16#n=o`pw2l!;MKo3V-^i0!FMwvgqdD{WWawvw z1MTop>D}GZmvB>-s+Z=sKK?svocz-9W6_}?n8oAYgyMfZ4W(>Au_{Z~68h8ywSAYo zsMG&oEs!;o2CXw|636kUtr+3ig5X+>p=3dq=z`|X3~1*N^U zl~BDv$Dw5H1w07~--uT}9v39NWcuC^muMs&LH>l+?00m_k3G^4s)v52ws=Xc9{{~j zm872u_-(5Rh9V#D0q>3h{%W-_hYPGtZ@_xym6Z9rF4`V<#d2NVU*{OHkHk+S)25SSAg`NgFNFiR9` zJwOc2w?Dx-pz79X05iUczVQ(yl$c)@o0`wDx%6A}BWeiwtMu^B+ zq8#M=kF#AM%EZc|!IAqGl$kPiForr0GGIiXLHQP#7*Nj@)1Lx_-Bl>CVA*{(fJ4&A zwmUlpt)yIN} zhJghL#IlN|6R8;LvcZlR*<{$S?}1kS2hGyO=Lv`xOU>aMz$V~`shD+yTpJiD2V^Xv z``HKKw6Rb4;{coBJcacDDHJugrzem0Rsqof6!0$_;y9N>xgqh;`5@QR``A*{#6tg7 z4>aaPPFTxtAhqZ1_2+r_)8X=i$3CsBs`vEmyMFPf@ACpfVO4*-fs#IZSt?}jp{GR{ z)HY*~4ToJC!Xsdy>b5aRGj%f3+^vT!B55vALHVBZkPQ!7b#h>#E!njsSC(gc8j|rX zBR7C0OZJZy35xwGXa(UO(<=~B#*f#!t5uZc1IUzx!hKvIuRCVh+E!w2-Cs(`qU+Og z2wig|I<*I6_uoNqb{bw_4!;KK+iMsbmRrLN zLq^#(8^Ylw=g$f_L%A0mDId?jCA)vSE#}U~F+u}^#Dtv&5STj}Mwc<0M&0Fb;$s&F zpy}is*bdD@)C?D3SgNLM40p4ooZ2}KGjSCMZlYQpm*XrQV0yC0Oaq=t5k_meP`~~c zL_<;<6ay%p@r#SkmcY={;r}TGOe<+)Jtg#`F%1bd7x9t}=NZposCuBhqQlhyg@ywN zJ3#-UatX6qQ+?SDFyt#Rkjuhn6EYD|N=W6c9G{`gL1sATkbEd|Ms{kofx3 z9Pxtai7+3_h!`Jj5@2LnT@tHz5HcR7-OB++o+9%;=ag?B71D;*EtUXrrLGqm$<-omBwi30o;|E9Ln7?Ct5wPQGO#Wa1;8L4{X55evqH; zNm~T=g0X2p3OPJ4lfVN-hGC#+j02$nUnn&jQ}PH-3nQ93f*e6E;7e3XskC|j+!#bw zSpgO^i?j%TLv}*MgH^j=iQmTk1(8nK`eJrBs!cUXdCas)bAQWyxbL;hQ<(gC9b(lw zHl)DqKP&4OZb(pjEJ)38st#?*ozqp$hu(*S7W3fqSAQamArc-&Ep4|C6Yvit?1(1X#eIYDr=92VuUk}7t8iR70q%FxQYAiQ9wieL58Pb05dHe>d zW`!{={6(rp+%Oz?J*?^-#0Y<=g7S)v*)b-v&nQ*8fmrw~zOpZUw}yNK;vB6W7^ZpQ z=E1nN-PAH=*sjB`wA7uxbPS+csoAQwHQn%aAb(yBkp>+oG9ht&KnDI<*+VG*r% zxFHBQqW_FL-BbXIpjq}ZZzm~Hz9>MU3880JS{qhSGmxFht7H}>Gu!#l%X1&3zj^Z; zj{QQHEftjiRNx=(IjxmXOhl#3iE8fvsHw4LKIejQXYVtj8_!dK8uF%kvN&}|sjsq$ zjqht%74YGyVva3B^T4dR0{OFCmP{Bhl)phFQ<{@#)g;lL4V5Z#sl`vRLse=Igl46` zz=te}dsb@r48S(S|J&JVO_qnN<`;OnydFdJfr2KZ)w-Oc|8@sM7tKa+S7$ZEb-@@( zETx^fH2WK}YOFvAjw4|MH;9Tg&8Lsx+3D3}=cG9fOY<&swF1*2kSwraWo+< z-epe%fb60r%v4udd;O}_Matw*5}J2>Y;8j5rWTJ)gwM|q4+^iEHTM_Diy&pp@+emJ zXCX3G?ko4WEZua8wYoDH=%pOvSW2jPfQ1#b3<5_d#@Pn|FDfm7bM&Bma~jy$S{?EeYIqtvy?cJF9-=VX5$MUBvf? zkIqJltG>!_(d6IxrM;m~7nZ99jsWctJ+u@r?YY!+s#s&|2KNWbn8(YEU6)6v@ENY; z$pDw;@AVDH&RIp>4QgAN6LQWXVI+eMp^&xw+Hd{EXg}|{Y@<~~FGp{>? z7bsC4%KK{E@G8ILv4nATb!dSn0C|D7)Ts?hQX1jd8CzK3GFjW zvxIZ`a;js5EvO9)RxiD`g-nQhgNi?eL?P1)F4)6Rh(e)2$S!yIfhGY+B`h>{K@_7AcZ-wS7A```CSqyxoF*2t~-BQVv87f$I~ z-f5fi$nBQ<9VT&@?~#R4^-Qj_v0+Lpc{FaKWsJOE-Yv$l^h7QVwYYzsX^r$D{OP{# z*A{}ic7FPXzA20NbZ;34`_jqDI{A&y2fMN#+N5ACFAi;{J6pSWIYhSUqN8K33?jwQoJe$F@V1KGy*K1E@arZU6K_r* zFnzd$k&~V(I^;4YeKTIAdG)U5^ujB}SkkOz>T%#9!yTGQ<>om$2d=$cMk!q}vbArn zx;QW?_pBDoB4c@F#Eq|lje}~$uJjJ?WtW&Eg1SB$4@^28fv>51{QBl*uB@H&ciHUX zb734fBu+M6rm>nyQpY0{D`}5vOk~fBRvmhWDzRK<>sV&M+6xTTQ!YAQn8*-*oh>k2 zI=5y!uo!xF=0gk|o%CDgUWN#?^vnMYw_;T-`mA?n^PdenNZAFp0g%5S3ln+DqVk;u zjy!Kl-pvbW@~4%>?!hJC*M1as629mEih>6$#gGT^aHX@`MJch#y}W{IV)>1@O#UO! zS=Ta*mg64!kR=83_T%0&$i@y%{;pd57PRUt-?r!Vx%kEvrpp8@Fs6ZV<_N^iHt8u^ zBNLVUhh?j9i*ePTTd0D{ZBfBo6enB{58gn}$>C3QpTIy~kEz0J0mM;c<5 zedj8Q+tvsWp=ywmXmrtBV9{ZEg0z>v&B`bP%y;SpRJ;BUgCqnWrL)ZLi zy*t&t+Po4dn+>)}Wa0B;m88x$r76=`Z4mD5!uFekK?Cd7P5W7Am93MMQ6AF*2DAEU zgTK@^LN3ekutp}t&w}I;o5Q;|r#$v=&K6dp=E12N$zD&_8LeBh%1H5c2{!_5*g#3{ z6ZUI}b<}X7+eKz7Ujq9`#<{G`H|LGXe2d_B8eQiZZ+tdpcW--m_3kt&+3gRj$*<}R zXrD5Mb~FKmd&+kCHcMD#)oL;BjAMBun}Qw7%VN7Zon3We%{pyQv(*gEhcD#zzwj3n z>DDe)$~S~J5-Y56PhF>*h{%JZbEuy1^$P^?q8`dg^end)`pvxEcpwAB!GdJoj@>f# zgN|&ir9$)-i7LP!zj;-Z1Qpwqrf^W7$nSg^d(r+C<4`COHnm_!HMx&rk9?y|7GI#w z-NZ&~kv7qO%{)Que(TkS0vGM}UNmy)N}zQADlPjx-r>j{vkAH9S3fQZ>poI_&h2N0 zRNN7+y`qmF+=7!%O(-&NyUwd|fZZtB{yI1wa=i;=hritwaUkL{b}bM(vNx1l>P;&c zoJ5QcrZ$|e!j2Ok;?iLz1G{10)Ldh$f85J|25+n}CNvmS$vJISGaw>BYVom8nY=5IiSK^s=7$UG1uISgm%LHus3RRB;2Rz7l4x{Md_ z8x07FpujKJRd~`7VsMcJVD!@Uz1yFW6y7k|Ig_1A8>>3ZWO(S(4wr%z(| z#Q=9b(}zs`+6S3um8m%kKLiERnSN%vM!+Pm5E#*Ca9$w6(1<5MT%N9;wEN~&kzNa9 zG|zPtHqy_24}Ke%XA(+jR8`>huSO^3*w3pi0|%;UOkC%?UpCzo-E57${WYODQ=$rW z@`^?61~fxEo?~@>!DYB5brGnJuE6#>=IolbGxkT1+p#$?eL(g)f3 zxjs2=wVjD2;f7j0J`Jyh2lvw!Ndiom8I1BGGiK?IF6rpx7@2IOt*LD(N#=_(W^;PB zoW4Z;w4*8H+J`vHOoF&szSFl9E%eYKN>e`Krn2P^Y0nob<+E>(PZFl1^07R@u3%JK z0qLyOQ_YH&tS^)yVmSrXv8g)-GR|a2+@(fe++8NhsWdxP-J6w#yj?o)z&g(N_jpYi zV|CBos(OG*2{`-Xsxi@5rHg6^O*p3)lO}UXv>||hitcWG|J-spUDt9UwuDZiL3GbgSmVWSzr}4qL_X71XsL*g6&#xl(*Zb;drb6|vKCI*qYALAOHw)QD z?tLKNN3j+@Y~6iy0gbw6+?h17KPye6!t|U zr6vVY~e|j~EQlcjie7=_Z%k@0F%;Yogui_`o0sXH5Y0SNMw> zI01S`t#>kZx8G;0zdiG2q(~u(&0XB?l!fC=*GMe!-qbefc#vz{*9oKZq#oI8(*^!nlbRt?p0HXlqQC3(^h=eT zD@gNF(W2Q7CA>*hY#c0XYo%&LVq7aeI#U1g<`Nd}!5VyaVf$)HJddAU1-aqvd>&Dj zV(cleByE#WpYlrVw%Q-{z;KZfdO>5U?cFc^)i4Y_Afdx!SoqzrJWRxxC7czlCE7X4 z%*dE%HqpO2m=#=vGMwiUZ(x-r*qPJjZ<01foHl5WHN5rd`gfL9Gl}-+FAL<_jFsz+ouz{0Xe7};VHq!Fer%iQQQIYgamF0_kSyKlm)`o`@dS6Ar+-I0U z{Bb7QXol;`l)P75^0)omAi0JLoXWXVQ_1)4T|n=C7s8`84tvgg1~K1dZgSv9fUGYX zrwr0$4>x3l_;qKBOCUs*sfHjnfZ3RXrijMAo(h$hvpYDk>D;0) z_(LdwmX&kT{O8`Tc(5nExh57zKczuT$aC!oOUi>>Dr7ZVC=DfSL8peOLuRkmzL9H$}JFmlUBZ*-vIt9oDRph zUr;U1jEg;U0k;0K`BT>eZ2?(x%1PK{j*T?yIC4*UKe`~j&-+Rz7L;kg-chU+w$Ytq z@@wNFYmC}}b*S@9jWkYO({KzS3fatkP5#1+|4#FkcD@zJW$H%qY(BXwBchg{y*zm; zyyTXO-CC22r-@d*LxOM^FSe2t{oO{oVbFa9)T`~DVJI`-ID5zy`HNS>^DZ=?eR2)8 zh|_s4aV)%I$4Ts)CgaGk*Edv4?KnGHSUiXZ>VDaKJ-htDJ2-taZ2N=E6t~V=40hb2 zJ5e^A+nIcBp?6pUsXTWcO;d5MU!YgQjgH>_R1@t}0yMEkG47&?hlFMP0TI)^7EJ93 zcLOFc*k1^1AFR6+Oe1+AuceE`nOea*|Axl9Aq`1y(M&MPX0?G! zgOK_15S$_~S>)~wioFgr>-ExwnENxkMuSB{c%zhW8_#Cc478dJ=;*0!l@8}C$- zFHsImfSfPBYe(=$;QVOIg^Xu`u;b;e%a+BuZzL#KKJ53c!ka>~%)2ZdvrKPo=oJLJ z>Yx8rY5Fk11ST{jCO5(2P1@BNpW$c6E*)>Y0zD3b%gD$fx4Same_SWfZSFQA zSO7bU@ME`qJw=0NlNb+gDEve=I z7U|kRjJss~%5_rl{M*Oku}w!iA>k?q-{0j__aqB9G6jO&=A$gI+vE=0YPke62!3aH z9|zDO@zE0Onu#FMV zgHRd5b(3Wo!iv=uq|OcmJ@LnT%Qyu?7T3f$I^An0$Ol7wsGT0(A&3RXI$s2N26 zAZ<|Lx^8i~dGD&37qf%mz4HR$h!95p)k59(-hSi_&YJx8p|80YBV7Ykvhy5iODEl$ zuAVl0)pbv1kvhPP+rPhPIA%FiGB)Gk3ztlT8WtSmQ263&f8vEaX*oZ>2fC_ChH@7h z2GU*@gu)c$S$T}dKi5zShT_*7OJoYgX^oK3U4TWD?Fm-whG@2;`ef%J62 zVOPi`OnEUd+|XNDGqdBN)#I+C3Qb;8j@v25+7&G$6LiCC(svdOvUt8lzM4){cZy%K z45o!2jAK6Oy)8ZS0C>5*W(@_+1~ykxie*G`oqGO;rq*JhhEdeQHO3q}n6DnL0(12Ve;M6vD#A57``tCIfb_%_uCsOqhONpN~oz zr;PvQ1CL$0w|aqhphX&-0xk-LJn*X%gkP*LG@b0pFkzWHO2(Y$Z3Z2pD7n~nxhrAr^iRL;koh2TE#kw(N>J;6;I;EbpsIMoL zR5*vQ6VBecT*>bEHT=8OK*#dXOUq}~9%{}pS(icOsj^LvulYj{*y$S93&X-WjvaSX zjtc8T;&N5*{)>Pq6#;&b($a(8y+6$Y$2$uImGwZzijFXf6E6U;aSg%w;hOaS17gFk zjveBs#5})Ka&kO_y8@nK>&o{hHj7a6V#|ya|I3N;XU)V2w;};-4=WN0^NT0fg2@IS znrwi7hSAXNe}I_4@sa|7f#wdLNdHOH%wQw5hiH8Mu_EUM@T2HV1X2GrDW7yY*n1qi zTJohJ@QT#ZtNSPaf-l4va3Njf<5xORh>_UySY5fZM-xvLD?2$7Ng`_c(`gq?3Jv-=JaGv)6cjyU}=KtEE zS>;He86S<&O(BAR9=(V8=7gUzkcR9NlXBZ&Mjto;!39IHm7-NeBkvo~yk$C7+JWo) z;F9Hi>LiJ*FSXWFy<^bX{t8eDeg_fGL2!{RU_^K?0YWNzfv-JS=TmoAXv_sC<1-B7 zH+3P?hBF|ako-wV5dfhrdexnhgV+6Y-enFN(S6TZQ(exBg_tDVqaDv6@bj4h~-fiReA>xk-lCT6Jo*a@onE<4cFIU^5(GvP`fWPuoRN>mHPvN6Fa(SQkz}mh`|txg5vb^`Y8{ zPW+?w7e3FRV)sf*V5}H}B<7(zUH~$&e2h*3sT};3VR}o(V@^OKUV)-lmL~Exze7Uq z3c%7hZ2=g{(;OuXr_6r4MosT>*@QRU8&}OH45XZn@dCkHe}CsBm`A^;x_a|e8e}Sw z7~Y4})DLnoGz<<5lR13MPa~Z&yoO-E0+k^OE!k%Dk|-u{`~V4>P_}Ky2e5WCJkz zF2_a#eCah`OoVy0y`$~wtuo&yf&q;A?+}CVRCA@%==zh_sOEhzGvdongDmaX^ z$T`I72`Vw8GkpI~U2ho{RoDM-3k(8^z|fsi(jX-zt%9KB&@D=bfJzAxLxZ%GV4%_i zLpMW%C`t;9fPm87@vO~tdEfuveH@RkIAGkf_TFplSnK?rpGj!F)tt5(LLcNn@XbS# zL(td#g-Ce1S}Ah&F_TcgJjEh=q0kowHB6D<=9$I76jjlY9VH`U~1^@QjX>| z%&)P5fZb3`u{6{8kNryI6YE|m-zPN0L1_@;XI7!_>LE&j@__1W7-wny!>C04UD)Q$ zfemHpbiY$!H+T+G`k1SXe((TVjC^0vT_!I_Iwtcfn5vW>LuQ;T5RPM1P}8t07gTB+ zhnyS$kxI4D3bTKpts6W;;tpXt{Z;rZn8|tI12I3Aas40}^R(S(mp)D7dOcl$d=-P2 ztf|mOaX$n>G)QSb79Hq2fjTe~>I^t%{F;iHHjwJ3<-WekrQa2TF&jYFA%0XfjK>gD z@B+Sj-+C|#oVZn6ZW$v5L&kYwA0~c;T?@(_yC1wW4aH@+2#@=cOO!l*$0t5rG!l+> zDy?e7G6c_|mR6=(AM#a#x5xe_2vL{>%e+&eV%_Bn*vRa7d4iyZD5#XO;m1+Me~nv| z(5o5^boT_z)v~QT>PN&{8~EBu2rgI!9E`DcaX&8_Yy49M!&VOrG9^2Kwys@C z9^&613}_WHj%d?9xp?~-@D|%uy$=8~C2t5rsx2^`yH+PE4PhWY5THRua08Z&QdgToGaIG??IQudc#)1{$PmI3NBjYT zh2=z)Zv~?RP`%>C?lI>!A6H;7SQw33Go2w%{cR3bE%(w>NS}RqQES+^ncVP1=|a=- zoKRDS|4sr~=)D;lH>p7oP9@xA`GVfU+gf*kV;E}x-b~*QkPb9e-0>8mS@y25ljN|q z9vuM>$g(-l)#8ff!o(1P(~t7rY?#35%NC;oZ7*}=Kpo_g){|BWZ=okGm!IYCp8HFL zMozmQ*8nj~#(a%_A(}}46t1d;Gt;@bb4R>@pLGeJleL2_DuS-d+aKR zv#|Gph!fA(mW2ue3iC8>;@lCpAZp;oR&8Zm&3l1>ejhMcxp&j^1i(zVq)OPhmS`~M zf{{9m)+lxzJ`$O>3Dv7siPg(?8urnQW~?=C)$o0YVnJO|kfhnKvae9S^?YCjz;~-4 zPUnfXF$#U4C(0jX$?N&5i=VnDTJ(WCzJztis5{{J(4N0%!ASRJQ3jPxm-n`wJA>RY z_3eGiA3#7w^IP@x^nT|!8}k6KOPX;5eM3mgJ*nNmE%msz7UDzjpmlf5F-iV8SaNVkiVwmbe_B~%`Ok!;LagG04^*Y z?nt53i8_pNG>n~7qNbw!5ic<0zi@(I z{=S|M>K>ugB{`9Wz(cs~E#VM3#RxL5INymkG-U8zBwJ3h(oHuiCXWQ#h?~x@ z3Gr}SzQ%f2$hTc7i@LDs`im5oA}BmF@gOw*8_O@58Qe#?LKvh{A4f`pZwMhRnKq&3 zqBH~}Qe4l!G4$~;fHgd4uYO_YL_{s*#!I93ye~)g4wd@ug)a}){$`n3psuP`#S(bM zpnb!{GOa4)m257v*p_+2^NO2Q$l19fh(d^^$hyb|A*0vP26}wsgwZ!yGshL&f*ahL zFRIY7sUCN_6T1;ddU0T&I5w{}u_ zIOT)&_tjYh4>cY_6&v=!)K+zN_ONmZt*1S@yPiKG!&KY|Pyk1=_KX=!BGqPyEL2ex zzas)V^e%10{C@G9dk~67#11uOO#I?%xThS?i`hz3_-$bp-{0kp;XhMuF2fmoTBxwB zFyD!ipANpsEqqY25b1Bb1i!aW5!5wmIeYCkf>?~-YGjjPM0>lw*K5`lG`#&>Iet%`)fob2C@IaWV(9#c>_ zw7j(Fo?>?*7mL8PjyO&8b-Hr)hH;Lkp|rhNIMqxr`wyS*pEr$Vq#~wV9&!QxE@(0C z(@IbQyRUKl>KpZOKU27Hbi$X5GF$hiJ29kX)uu#_(N23H9kQBcqF=-_P654MjNj|w z7RGZ6;bA7aOqe?V3tTJO%)3JP&L~YVkAj~+>EKdv3g}d4(i6_du!(fJA}y>FYGj-` zU6=9(hN%K@BpX{&`*w^=w8UUUrDfgDnXRT!hK zVvI5YL60BxT06;!xZ0_leP%YBaGcqOOQsWMWa-J37Z5)9#$Bh+1ubK`hZ)n^j}q^u zFWRr#$T$)(#fX)K#Z}IXLjdrUdcXT{?@O@+zutm^LVT{Ua2 zvrrZjqz#Ewa~~UVqZY#FR!8ka!L)LcpQ8i_Nur2d-{E}^uO_LFBoZYfk~>kp=w?%= zw^zn$bT=9cN#{2polJn%?-$-o&)MSp&4j|nj*1TKUB`^iOg0|!AS#Cqmku*eGOE8U zvNZ882^6lVckZ?ij|?9oItvVBhQoE{SL^P~A0z6l(@ZEa4^A!3DoQ*My)C6>4czx@ z#TA&;XdTrxUzHn3KN;C{^%dLtk}GETU@7Blpv+>B#fHtia$H0xTx22$&o`O;MSIJ+ ziW^9`!F3_{zpiLBrMj@b65jC;JJk_G+#(BYtyr<~)R0|8Y?ozac<>B4Gdv#lGgG}Vs zudCjyykz!-0>NA}I5^W-QK5KjXtQz`YXb5UA<0!LD@rv&#dL%yK9Hi^@>-z~j|eF~ z30_@ zeK(W+3A?_XYIoSTy&PL2WUiK5aR7%SFW-Lkd^Dcrjut z)Hxx%Ru{8jIc2A5Gy)1K(?-Q1J3hFoWu(i<({V};%2QWAQ7;e^@LkqWvZZ)5Lbz9O zK4$@yjfkl~YF$pck|LmPu^`?}V|pmLI@acG7ht`8XqTRBorc!emt{u#rMAzOrUt+@*~rn*yd2 z(*me~eZO~PzCwSVWMi_P^AeqcrbfNTg?F}Y6n3L8Ccl>;+as3?si)AE-PC?>2n|rD zgfGXbN}??LVpZ;>7mKbQkhIY6j$ikIf1fWt1y95b-pYmAXk8oU29(wYUZ~uG%>7bo zeiLu7j>T6-?XKnIg|KqS4B+M2q01pOor1@*+m3~ zPi{DgdFh6p3e{?R@U*_Vb5pNRU*t~x}Qr0}(a!iHd_3bcH+Rj{x;7h+uZ zN=ZnlVT4z^_b`9(yM|kiC-awqBCuogZaZTlzO!@sp+A#Qc)+(;f%A{snYAJvEfz47q+L}LXD>v(u9*N%N zJb(!MGiA#L*}J8G@kcTksOlh0DX^lCgD9)&WL&nmGrI$EB>a-#4!3slv50Gr17#(zY#Ko2*Fk zhqmf$<97o6>@#n9pL~@NjV=ANW%bpf^-Ay?B!700j415u{Y08u)U8RuAHId(NW?6x z$FKZMdiG}kQ5RZ4H@xu7@ai8XmLU!!hM34@msJx@GDff)t|z$ zl@GjZ%gP@V8$Z=iHrl$tWy69w6<>o#>*aARVJ;-Ry5BzC%a7J-5sS3J^_+A)omp4> z6Ic12k0FmRMTKvsvJI~%h=6&NCE(^L&2$-IuyvF?zyk75gh=R5T^J%@e<)ma*R|*r9N`8X$Kz5u6P6`B%fs&u_Fxm`YYu2fZI1V;FK*6Vh}yR* zjsXQU=|%qG;x0~psOg15ecjWQ^{5y2bL-5R?Zlp6CQ7~2Xo|c|Kgv?K?d|#wjf_+L zf@aeVE(h&wUM~=TwaxW+Uhc2oTdnab?$RV7M_;Ctpy5EWCc9w-+xW;e;NG}kBuWJ& zE!Cd5CcdgpD%q^5b_+>5fV!YaB-FX3^GihO%UUENXhI-=1|Hm1{jwqKEzb!rE}IS_ z1ArhBU6IONze{GerOIGz=32IO#&>{8Cm|7~5TVfZ%ztywN;v*9_N#tt-+$3f!xxZf!q8 zw+(}QAhK_qcqlMRnnv$|DAAmU(|7$IFu?eOLXg_~*G9Xi^ z1KTI1oy(M0GLFM6^;P1)U!8&o-0#B!Bj$zIk7>cJ$*A~*pDx1hZeTx0HG5V&<>_-_ zA;Wd!e9N_)#PIn(dwI_sqV7`=O{FIzJ`B^45TeUDU3yLIUV?EQ+XWYwwMqJW>u%!3 zPjNIx8c8}Ms%f|nh!i-!ZMKk}kr zzn5mrjLU`>Rl;Oj8rIEd`Z&i{F4f9(=2f(_yi%ISP0c!MO192ioU-qSa}BAHcr^1_ zwC%;~>oOvfEtd(ZsHuQ|5sW1ua_Vi2fBjIXIm|OaVVlmg>HiKUbk*RRhozOn8J9%W zp&@XP_&OeEGk_uGW2-$a%!T+o=7SzbFSy;yUoN=QQ7m6NJ394^@!^UL<28DQoQBa% zv_ntR3PZBTBs$tYoMzeNPT+CfQ0$8U8ZHZjZk6dVI4INiE8Xg zVSVNQN5f+A=mqOldN}{IaZ|V^OE|{4z-%NWW@sT&p1qe=9&^!_zYp{^v-nD30Aq}^ zI1;poK{up`J|$#pOeu$BT$b(YWDs|y@%~qu#gh`NmQ;iqk8&x8aRiQ5Gt}S*CQm@R z%6(Kcx;r1)W)sXglf$F@OR4xMtH!nuC1}@5+>Y~BHX;3kEM+K&dKyw#8ET)fVNrVd z^pfWe$Cb`Qjtul%CngZLMw;t#AvF)7bZ3&nL;gJ0!Xzw$n4 zlCtcdu_#WfFyH96Qk&G10Y&?W$T!Q5f(S#*<6zwg>>(CaE)HWZ#@P8d7DTHzu`t+2 zpgVdMMsH4VjSr9M6}t#++@rRY%W-UZd2^_>oSD0xu}65M56Ar`F`2TTV4XW{3HnE5 zqV9?oAZJXFIURQksbyAVMh*Ds+Cq8iQ!IJKGOrxGDbqK5N9k7-!Yz6VtLpzzp=1o_muw5dER&B6T9K(=DEhj5hk zQTD?&Z68)1F*G@sq*-D-9%3^-m7WeL~=X?sf z=TNG0kFwX~h=d@xqr;w56n&afmU>1&yR}B%CdUy*@#^F(>}-$c#NF-nQ0!SJZPfJ4 zlZX~im)tS6v%2(Lu$WYOZg)y~D5~(^C1VL3@Kl&_!Qs=y6g0`KN$l2x)z^x263F9Z zFEr(jyvoHDovaGe2qE)ORy|?vr4<6iPDua}D&*I2KBkv$3 zu^hr=BR$~qKc)M7TU_ZrHC+ol_k(|Ed~OpgL!=d-4Oz|EAFU3fXK3jM#%7?$r13XFW)XZ1Z=SNAc_#;Je zZPjCT!sEYh+RVraqxg|47IpNskGFBcig|O9!&-Y7vEfFM; z)D-!T0-}saNfgmLc6H%(ua$K~hM@0mney?U%`tuv=&oJiPf zrsAjnvH)}NZ99LHf~;U1nLipe2Kt4`lOIUi2Mz*zKZodfmKIvTt|<-a9nF{U-8i7P z>WRVK(f@O3(5Xy^u?c?XMdYIUWY|6Axm_{kkAu&Lzux2S#I-L$H#VQ@)ggbkn>XvJ z2r#1IFBz|s`50Fx@qONDpc+|*7t)a&G$%h?)9(Jo?>|ax+AfjqcKn{w@iO*mM-><) z{x3D3EnN;WnGT!}!4p+2-L3(17zfaDWYs%7&6xu4oz9>r4@B!$aWB`M9)zdmTXXDp zfx4Q;mlLiS=JagqrOYQn@9QRCFW+6pBii4U_6)E%ifRI*(9sbjB(}fFwH!0HSXjj( zjf(c~O%XXXpaZS)%ltP+4{tdYm(XRm=2FkoKsUNMu{q%glRJI-1h)#Kz)WdI)jW5Z zclBxNM!!)(bi*9hx*89Upca<3>2Q+gAc`~UPQ9`#hE zo&Hqs<5kE~%4_&qV2N~RExOH=cKoSJV3>dWO@NI&MJC#0 zich*T%rkpBJfz&Jq05h*h^44xf^nF)lGU}n{qR|Xv@^w8JE!M!xnp;vRbgR%mbCxJ zoUy{n{XFTL-}%Z)D`W^SZoVF$C!+-n>hDg;$N$yJX`d7vu&p()8$g>;l)=U z>2@P*CkagFD;fDKx9A;NM`F8%or^5mo{XZ-GTn!p<`z^4mWDGACLam`{1gqtQ$#ZLTey$p276Rn?H@mwzO(#-5AID;{LVsmLpN(U%RrVcwx53bdDs)f zqvRT{Vv5+Xcjnl6Od5Kop^{0EBV`jF-mr)oUNiAWT>UIa9w+<5*rL-fAMKjCXwfiL z*`eU$Z+ekn7V*}swd%zU)JRd0-?)D3JO1*$OnU4D`qLct&~8%vjIov6u*a)uhiXuF zCAxjRrp)?teYY6sCQhy}iOBr1DIUAWe|ZxF7U*@|_06_hJK1O~!!&yrJf{B4$wl#P z*QW#`1B-O=y*-n;8oQ0LYqJ^(=eUV4MG!lpCr@jvmXHi#sw>!=F1&Eb!CJ!~|74hH za(MA6oWHl9#-w2Hj{poL#?y}%Atq90z63LnGUn0Ad_hrlCWD1Y*3w!+C-v+HUSG8a z{zJ+z0{}>p^vC!5yKvALtMm&~kLI4$57&ux_T4V!Uu!hts`DtQ?n3Q5C2zdTIp2qd zi06Bsx2Lf9*k;ThZN2sUd(8ee z_g`>=Ls|L)5_ zkG_Au16UT-L5pY7=4k%zkpXz3O(}Soy#44MB)NIlpZK35i~s(w^WByq1aOc{*C?IC zKO1*)gpfGLtp{!yL7>4IK@N-moeTP(12qF$Y{Xc8{2$%NH3)R4DtakjbRDwtR6HF# zFIxJaJq0a*Xi8w^0W{^6e-4y$3}oeTo+5S;BZI6w09*OHFaP&T!Ih8^g5_*dEdDuN z;1{aUr7=%`Fh5xhNRyH!v~T>)YWg32(K0K*%$8Yg>_7Z_c8Z|l-lG1D7Uzo)xOMT< z$Nye&|K~tOK?)-GzRjq=2fqLbnyg=O=dfZB0Z!i3BQ~%ur69lO-*)9`{6P~xZ zQXCA6D)dva>i(OM<>{ul*I(}9f4)@F(jByzKh`MVFE3_E1vNR+;C7AyJ#aM{j?4b} zPYl=Jmi@bPFCf0{MRZo~KO1kZgaYg(dvu5-dnRZ<%x_GK5~h zGIvzOe5%ve=1Xz$u5%n}(ziJD>Q<09m#)ha#(CX)_24{Q6KUB1c9(hbnAY}+tzrLEp|eWq*C3DHb* z1eN^(2d@d_J{$qE3k!wRPpl{SLz0%;MUbS0!FWft$pji2mRHLZX($2a0R78eOZenNQ3s_{szfyH^E&+2)? z&tPKqVUhT-r(T{5#WmF4K>CU|{tCRq`(vd(csr&Yn3@>(0?VtW1HA|!9D{Q<3B$@F6 zbcTAZSk@m+1|4kX9pkdcpIs#n({FSjrxgymwQC{E2g77vO7Yqi*C)z89b(yKGT`@( zh8<;7a_y+C$La2_VG8FA(#RL6j=OHXO41)3h>@r;$K;q-t|2{;&}I^kdHuQB-Rxys z?j?XFq&^1nk*6bzYFkIp59bj%0kXTKQ1(TyHr67`#Xk+ zK|iO%0yypl_=%ZYf3W%FIQ*{Ka#8ptT1=jUH%2Ynwi|0`aXL&rsw%8QDTk zLFkc*P8WjgFqGM6GaKpt>RaZ6Tx|c-{d1X$1XRJFv$Y>4U(Su+3o5uIC%*!{&4aVl zmLS4s(Kd{4xPL|DWq^q-1wo&hUavqvV%0%ZOhcM4kaf87n(&K#E(?1P>&1fpF)0aF zzE=UJ;8PxFqFgpY&eS_cU9Kug2_i{A=+@WlQS-M~KY= zVOMKYpxGsKj1qTB{nlTwOfb1M17Zf`7@Z2gRF;RY!eIV(j%YG1K;A?dF?*r&DAI3sdvQWE!*z{&W3pCIdHO@@7CgwQOZB$Y$}&HTljmU`Lt$+)}4MVX{(v-vVW}t)_L# zK7iQ1Pj!Htz{&xI#~L^Q3SJgKZBz@w4k+Ymb|CskS%t#%T*-UG0luZ7S=?@kd) z-hnZi=23S5xVFUAMwxHt`5!@%JU(r7yj?VQJG0Y zUT$y7Y3~CFaXgB?-FT8d;P-&$6gFPA@hmJ3#TWRpW)o81$aG47{(3YBg&<{TI`?nY zYAZJ-_AfriKx~)UE@q6z=JCHtVUC#t^HNVdOy|l=ob%Cj9Am>&~LfY ziHLR|2>*z>?Ddr-qiR`>>hc{qh8067Jge5Qeuk>ywcs#thUEVcaOqly*TuwG$U%;k z6(N&qMqA;0%hrK@_0x60Wi`bWEwjycRZ1HAkqoGwY)N%WYx#gQse0Fu78=i7!Fk^L zv5h;1wK@viMVHsfNloAJ#4h3mitTmIQv~Jh9DJ8`ZeN6y8z+aG;LcS&Q0Z-{K5@;F zQkL*|KCZ@jvPgsPJ$k~~hz`!Q8J_sKL2UEUy_^OsW>IK_>cljD z^iGMvu{oJd6*#N1_<1&b>tuR_lexnBLXP9KF!yH@8fM4=v=s4lcD-#h+nP2b|8NU* ziQ>2#lBy&rzHb(q-@?#0YoMy&EXbC%Cu*nNqOiZ#3B+cr)--j9rq7WFyK*)=i+gU_ zpT{x;#8&&)xgF!s<12(-?qbhJPa&|#f?!cD$wblEH#LPNZbfy)=uTM`YC$vy$_rdO zoX9LAD32}uk$3uNz%uTtt}cI-f~Ro2>xi$-(!^aCk3^%g`i|Rj)){gyGcNAOHoUBs zm=~g{ZpJ^%sTv-yakq3TdHK)lzz;g;jrIp!M)Y6NXtM#t{TQGO4r|GwNu=meWse2` zdaiZ8_@Y`*W&%=k-V{oAfEq?E7&~s34{|Dt~nZVw(s2T~S5HpcyHzS?4jCcc- zkxFkVkYquymu1+R_awLN7%_BL;kmcNKv*Z67O~3p0s@g2g=}4{!DL#nAt;lhig zhh%BKt$&ngYVY{~eN7Dw z6=4B{^7yokKZy<%R$~=?U*=t5SBR2~s9WC$+Mb4`LwW1M!-OfM=1D`lfXmm}PbJGC ze!C1KasJ@J;rG!niX!^N+yLk0os$j`;1^@rhSYq&revz8z@6R*h|S{RsCX1-M57m*-!fpL8x&Y24j5jJRD;TOg}Og?UB~0f zLdDKh>RVHutLbfPAz*fLpNEs*!#E77PQit18J`t5)g8r>$9#HgeP*p~qxGXHk;db> zy5*a;BjM**Q%-chXI`LLSb)7&S#AKUH&K5n*G%+S&KfQ@5!iLJ z3{rSi;)J&#awZQ!S8+dRDSuVwnaeLVbxou+^p}?*+#ob+q*QXe1epZgLXJi~UNB6& zW+^G7I6&58!Xf2R!&zdyD=T(ORoG{gs#K5wc z>JCFlGPv4`Ikw|-*H>tVRZ7zIt$9$D*UbBhD864D^}7Kc^kfffq`#pufKnV?W8JtI zb-Kk6{I13|#dNU%3E$f6 zklPjAx64K?Wj2h7&Q3iHWM{vDQEe6^FuT+-Mdg>)#`xZ1pugc6Dd$$1IMz6z&wR%` zDQn5!-DoYpn8u<*feA(teo_`VtZ+nr2I{G0T^ta6DJE@8>{I87U?P;R2dT1A2l!qC0G`VnJIzv%_P;JG|FVE1DcT~iSo#1Hz&1gj0caP>8NHe5?3LWzrAD(ht`I<(7>dn57-ca)+x z4UT6aQwZJtqIzuaZC@o~>k>h**22%e*!AA6Kh-`QCS^sEi(KZ=Y_1v7@}C^1tm)^{ z`qQSb*wOMDS#bFLLI#TBINkum7fSdsnka>{ZfMV`&=o_mzev!MP*O&-@#=RZOs%Ii z^aLp!p#H^eCnNfj;iuRJ$-)ktn%FPNW(AZAdsBkWsemzAfDkV83)j{@+Xe>M_Q7s? z#`fDDmXWdu;(zQTh>E{GvCd%Kbq@%V$2J}1@BIGx!cX@Ic6GnMft*@R6~S3g&I_-F zS$TmKL3s)D^au0!>;@J+nZl9@%^@aNe~-!vjiK-p$JcC=yIqt%r20&d{~R@x_>y)) z^rn%oHRD;o##Xw3Ej4vZP7EfC9T9s_g?9Gtxd-%P4a4uf*9i}eo#@th3i0!;p^i61->Ba~NJ!!92& zHj}(BS^v3)>f64rBXgUd7JpXc9~(!a4D@`Ova)A~Sbgia{ayj$!?v^iy9HTR!zDgolI`u!NQYjzilR*dmfv5&wHk|ZFd@D-I>8)t*Dk+DkcH3sPu^)a z3x;7vT;U5S1Lr^C9jPs$>g|nTco%pa$|5cGVKj&0w%o`jO`~MxFuCkPN6`J}n^w^L ziX{UFlq0~PoS6F`>4gsTMyoS_$KDVJs?*^(v@Pd_@xZEdmqSo!U~y5YPAa&bki4i$ z%|R5dI?N>UDG5yUg2L6V+Tk^%PzcR0@fQ7Eg0ECK$~Sph>4Ov{A|2sGs-gxxUfCFx ztKxYV6D)F4!i8qW%WYPqV$4O+ch2m@*gh}mTu$k-$m@olKeH{jnSyc!VH&eShS_(~ zVw{Lt`B*YQ$Hd?ey=NVFka=qHvVc8*IpimMPmidcZAP~@BVY>7LRB8Htdtck%cWm( zQl#WYHN#d3TXRQELfV4kmh=-g+jM4cYAQD;7evCFjuokiaT<~UBr@7$>rtvep7~pn zAN9kwIVsO*?ikh@lBBSqxLT#A^QC31|noO)bBQp*rUq#-BdK8sJA_w3A!DXe;ZMsun2V^qTy5t=sn!?Ikp0}<~4 zMG*@ILIfVSpS4qL&BdpmpM>F3Y;>+%j(j08^WoqtpaiQli68C^3?&Pk`S1j-K|;ah zj1cfYtnD0Q%CWR;n=DKed8hs=28^0FP~q36iqZ%cd} z17e!+Nv(UkltBG*r!OJB5Lp8=-zd>{6#(moWs41CsM)Dof!2n;x?^wKe2P;2nS*{9 z-&@Ny-g54VTWKOpu@hQ+<>0H;t_a&2Y2gzo@iRZpwp=D7$`D%2Iko~)j1%7AIpea- zlJB8SNZ;MH$Pq@8t;_ac|FrBCWpKT}=oy~S$4dKzP-*h5hkKiSA{1O9GpJyjzl0%-&?@HO>^-8DQ=sJU9SQ_B1Na(g zN&I&VBiRxoEsbtzIJ^mL=07iFan^^l@>PZuAZdtu@Txt6hr*i(WizedQZb|6n zovt2EO`gN90GPeumt<>AQMwp)wqle(o@<&_w_wphvqA*NEeAWg7V?NY!V;3U32es^ zBW}k~0;ol&@zGJ5=vf?q7wvq>(s(`B@N?S z=2I3hyz(4NdL0C3p8X$MwdQTROBuI7Sw(j$QLtZ#)O*%8lU=T7G3~hFd=kAS+XHnb zQ3^@XR=d1o*lf5))K8vyvdn(*zy-W{?3Y!67M(t$4h4`5rC_TJQwSX94qVWlxyd%E z5ysJ?Gr^pp?IgZiGhpmZk>6=8u9zc4-Nf-Z;{Hr{K=$Rg$5b}o zwM(}f4UC?NuJjDGsr*6ZlZ`MPf84uHBGuA+7hd$t5y*_<^w;`RnD*3;C=$jqc?hH~ zb(F5FXI@nq20&Tk-Gj2H{oK9g-%YE+t_`zeBjA4V7Z8!v#6Cxk1bfsw187+9U`|b$ zAFxWqrpnbSQ|(U9d-qx}CefNWPKt_1k}ONmZN@wg#}=8Z@O{|TG5G)vW!wa9w}(V2ggIs2gkBi( zbfa7PxY>I)PbKe}0hakFWvgih1E}M%5*Vykm&&VP$wwpR_l(p~$YM(X1Rx?rQ5o#(Ti72|vIL z=^%rIH%>*YWvr9Q1m9TkAbK7+_Y+*T)cF0Ov-@JHFzJDhSXSmN(HYTgI8fnu( zYSRh=re2b1XmXBcfyuL#X)#iw83A98oK9;Tcy3b6Zh;3Ue;`-w299U^S%ke`s+-Yq zqp34rO0E3;ObQAjXV2R%)q=A*sQCRcHUBs;=l{qQVMC%swCZ2E<1V85~AbqOQHTth4 zB~RS^oocq$7!h4Knc$i`J6ZPy-t_49*mZ8TE@3^gd=<{MfJ7X{OiMBLgr&)PmYA*( zTLD{1e!B3ApR#Ld3KqWp}UVJ-u&^Ass`` zNciT|-E{9|;9iOuL5Iv;>jg8;ZX>??`;=#MTgqqYwd9q%GKM&gIdRuWZa3qI$UX=p zxP&A>&JgG~38ogUu?^if&xyDqx=mOla0XmTA$P5n)9cV{sGzEefWq>)BtAM z;|hP7Dlsd03O}oDQ?+{iMnG@b!LJMbqYKvedtG!zDCOOBFxv9hxZq5t3jKx$*;4ag z+Rhx;%yk(%b1y^}7wzfy7N3dx;bn`kp_mMB?7PG8l=I0o)JZR!X$TU^YQGUFdOh`l z#g$3p$BrcZH}$=j_gNf?Cv~z9XmyQP@KW$|7`9RmHz)GTta@pMdn}y6-uRB@2UwWD z_jR)|b#}Ub@wAvNDF@ellFvhk%4y}v#3~xU?){sJ zy1lz~5(}P@t3pgye(Yr|`2_}^F;o-?#ROCl+?+po+&kgqT7#X;?olTl*tYz3J#GoR z`DgTSzCF(K!@E-nht3nNy>|zu+wPfb%t>Bb)x38*+apS80%g#SubGVT^WOUiI@iqq_Qemn@vJ~K4L9~3 z?gN3es^3#b`^11IocmdY@2DS`z=UYUu(?&+ z4eyqcs{SDBf*%NcMk8xEg+RDKy~*p|Vr&j>`x|Um4Srqhr_6S`ZPzgv4by9uoPA>HzzK6bJ4 z47mDdT-@TM{>A`mvZ(2i?l-Ta23(B5tI7{D+HVepe(L2s@|mh&sCkZXZovP#ssGw> zTy@WZF6ZRrL!-J)%dBgCff-dPKVnLTk74N9qTS^e0Cjrcye-;MUIN?uxt4j_r~u&noXl z-8ZKHriLB6ks=uL=Z$aohd5_}fmuYYUf6vLa|hRwU#>+bK6>_^k+@?fogX;Ei)Q_H z(Ibar+0yNAwAIsxT{AkjeNU?9n03~RUwc30Z8pGO`#I)PGx*zw<>=3FV`KhA;2XIi zA$rn+-ky4iRO3ZgjlH)5vk&%)#x1wmg!sgW90j2 zs{C=uNfCAmwa<)$3ybAnFZO!Hk$Qg$^c2uJm|!sewR^oi`vy1^(+ioPzcG=K2NhhZ zxHX>em}&Yr_U6o3rZKBv^Y+fp4z?_t$$8{+9^X4&%krJc*5rl@u5|(Qct7Bh3aH&X z5%)&zeOC-f1Jyx+ zmjLeYqe`9w23#1_b^UN~dS^!x7@0MjRra5TZU=nwZaz8KTCf!7l7SJ{>%O)LUs}U= zm0?Hkg_#R@!8}`frnYLt(QiKPReE78I#uq#K3^-%KgmHC`fg5s{uz7Ch2JUPYHfez zmT5$@Sde+p7m@xf%8fg!hM*BzDQxoJXjsBtni)mj1Rr1cz+EF74?Z4rP1)eT+dcn+Ad}08{2H$vK3V8HO>f<7-c(Bd$ddyX zhMz{47yPFYe}5Q;6@DuuI>yB zdwx$eWxfSIelwYk@BcaC=WQv%FZ?!9dq|ZH?W*8aU=hmg(MuX2ybe$KpJNFA9?Q1A mwdENd-G%?p5hykJ$+GAa=q;MDKz;%IyRE9FQmkYd{Qm*92oS>n literal 0 HcmV?d00001 diff --git a/documentation/diagrams/payment-from-component.png b/documentation/diagrams/payment-from-component.png new file mode 100644 index 0000000000000000000000000000000000000000..78e4b4ade30bdf650197cff7668d08877e8ff910 GIT binary patch literal 719065 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 z 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%0Awe$ZW#KXc|*L%>83og8s!3c zJY0}+)3GHIF-^~(*#JxoiXhipb7eg#sh>i_2lgeu7XClhY7f z>wTxJ2{L?GF4CS6mMK8L>+S|Vu+^$zyjMn(NGa1R3eUXC$ALPq`L9a?A6X&bpSsZo zAIJOf($mz_Zr~Ia#>wRTI&~=>3v(?wI4Jgaows9At<9m^VrBTGry1y;Rr^ie8emjI z?t?5P#F$66B81Px>0GAgCtf1!>a?6>)9U8jM?N=P-Hj+0;92$x5NyoB`9)`uwjWli z-QjHLul)Cxlzae0CKAkSv+_qQsh)56)KH2eo~#}v67vm)P80AyA3p@)F>=Npo*=j3 zOE3f$S|E)X=f&Mv6v4eOmvgDdqU0yE27~~ZN~mR9LTL@_Oy!E)MdOP|qRw7ZuTBno zAX4msEM3RDgJ%7975gR2SE($vbL+wjVP8#o#u($QK6N~Z!x(Um-9Vsty6?5@mTK<# zeITG;3eYewWHYmKr60UL#-~>G0dMpneD*k_L7ddE87A8P!eE}eFl$lki@r_B(aHK= zcPwQLHUeOWSAlFOkLVAOlI?vARcgk$hVY$UfRU_3jkv#OBWjOg^7?2PAIRyxJ|Gaj zS3TwFh^(9NUHQFr&EVA-ji(>cU>Tl~0VEqW)yxihM7)LWAe>I^KD-FqXSh70Gct#+ z&G`)nzEox|@ohN5u0B@|sC za8+!%SB=4-Fb#)MK!j6NUJKiL?B)yBnH2S5kX46+LoU?9Ij|yUq=XLF{FR;qV+>4- zIWlt*go7=<;9TG9V{ExHLOQmE;1h4pK7&TFJzZTPws;3 z&D(W+(BpFkzMg zXUwv+fVNiF&nNdxicpJmjFqIRzuv714VVh&-IJpG%P1=Z7&)lLC*jz=D;a+s+digJ=10x_v-W2ZJ^zzhBD%?H?9ED_(sS)psA$cklCGm zEJeN4j&=_d2@`!FPbxD@mi(8U=F2&9#eZcrl8Z-rBZl(I*qfp>axhw||&iPeHBZ1Ogv z;G3r}Du;{xCEqgmW?J3PITiPyt&%g~*69PalN;mDce$o;IYqihpk56D#4%U4Z5#gYFx-Nv<8+ViMPh3Lz z4`)>rj10#w)iXQGc~0I_G(Obg9N7ZdoWc&98un>MKpgk=Co~#%4SnrNyv*P6b9qn} zQaiR-vd^>2xiqGaTYm+(T1{iu`(u_W2Abfac&@s4Om)9?L}CqK-hlNwE@7cr>+Gg^ z@7=gR)KM6HAGd2zS(oV(bH-PZDr$3q#sNuf&g#|_S%|VWM$6oF=-dpAW<@QB_1mzy z59K>{bEnehXH&_Su3x9p3dIy zhZyio=i!01sxZtobO0r2hjG&f8JokKqLRF~g~_)+Y4 zEE-7cwr#?e?nzyU7T1eR*=lkX_%l(U@N7 z6M&F*-nXhxZyvrA**)%z3^z`m1TBAi4$!XD3cM8!G*!DyF00f1`NmR~8(S9d9Qxa1L00{M~DmZJ$)7SAp z{?3Oyq0j`2pBsGzg?#Rv9O{WTW?4?;zS%8B;O=IF?pS!4Cb$QTn&nSxO=^~k$i8e? z0$*+>kpGu*ctdV!&5R8h(BfB0mLyW6dfm<@Wr?GsbRM!@#1hH z^cfjn-0tPsFp8f81$1ZGa9owd$Ep_td z?&+oQJ9UIHnfhX92ydWph@EuAZSvh-p$E+M=^=ZZ_M0f**8y^ALa3^LebY(eg^2~R6GCOStje1@{B1ydQL4rZt%JM1`FTH@z8`HD#@ydB0-T_@;dL(D z_EM31sos3OZ+H3kcK$!5GQtMh90PjSCq&9Hl3y@0w^4|{-&^<_<9%{}zx{ikUXN%r zzs7zQfWp{h9Rgkk`$r!w+W#C|+mDT2Si~{*vdH^uCp8|gH%_E)a2@Ks7?|M7j+plp{BDV)KsKa3N^KOdbX z2!4W@9_WhO;~7B19F1E!W~M^#ebD?@`CdUu;X_3^BeAEL&9MQR@A_f?Al3JKy9_3M z`A&BBJKsLE$X>6rT<&f8jklPuYu?k=A}B3{{`hc2pe&cOmAJM<>;9AilwK)mHzQNN zFgNGJy-^M5L~hi*!N-f≫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%0AZ3n1kbq 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

DHl(~p=xP1}>iiVw_@0Y?~pFgmf!;pt?H$ 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≷vl8r60@tV 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 Nk)Ek8QTx}hKLHs}sT=?R literal 0 HcmV?d00001 diff --git a/documentation/diagrams/payment-without-action.png b/documentation/diagrams/payment-without-action.png new file mode 100644 index 0000000000000000000000000000000000000000..0bea3e8025b8bf858c018c2137323267fb5fdda8 GIT binary patch literal 748032 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

pGfoQd@i^73avKUh_Sy!Y{cY@1 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%0Awe$ZW#KXc|*L%>83og8s!3cJY0}+ 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≫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�N5J0mR0%}Tjf*SA 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 z⪚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%0Dr>3MiH0%IrjnF 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 z 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%0A}EN3 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
!zznLY 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

Mi?(pYB_i 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%0Ag~r5uEb{8Itke8L})7KUxGOo%leFn4OuzaV-V( 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

3I?z4)b%Bb20%>E~-9 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⪙^rb{jDlvPE6o?QcteStw&?myp`sQZ^~} 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 A?EnA( literal 0 HcmV?d00001 From 88807150bd42d313bcde61a764ab915434445845 Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Thu, 4 Jul 2024 10:06:51 +0200 Subject: [PATCH 07/17] fix: changed the field name to align with api requirements (#1107) --- .../int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper.js index ffa037951..8241df8ec 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper.js @@ -46,8 +46,9 @@ const __RiskDataHelper = { basketData[`riskdata.basket.item${itemNr}.brand`] = item.product ? item.product.brand : ''; - basketData[`riskdata.basket.item${itemNr}.manufacturerName`] = - item.product ? item.product.manufacturerName : ''; + basketData[`riskdata.basket.item${itemNr}.manufacturer`] = item.product + ? item.product.manufacturerName + : ''; basketData[`riskdata.basket.item${itemNr}.category`] = item.product && item.product.primaryCategory ? item.product.primaryCategory.displayName From c654da1cf5b8467ba630427c144804dc91008b39 Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Mon, 15 Jul 2024 16:17:11 +0200 Subject: [PATCH 08/17] Updating broken link (#1118) * chore: updating broken link * fix: updating ideal locator in develop branch --- .../default/adyenSettings/settingCards/optionalSettings.isml | 2 +- tests/playwright/pages/PaymentMethodsPage.mjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/optionalSettings.isml b/src/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/optionalSettings.isml index 5bac62a8b..e40494707 100644 --- a/src/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/optionalSettings.isml +++ b/src/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/optionalSettings.isml @@ -13,7 +13,7 @@ 2/3 Data gives you interchange discounts on US domestic transactions. Your shoppers will also see additional data about their purchases on their credit card statements. - Check if your business is eligible for Level 2/3 Data. + Check if your business is eligible for Level 2/3 Data.

diff --git a/tests/playwright/pages/PaymentMethodsPage.mjs b/tests/playwright/pages/PaymentMethodsPage.mjs index 26170b00f..c7ce85447 100644 --- a/tests/playwright/pages/PaymentMethodsPage.mjs +++ b/tests/playwright/pages/PaymentMethodsPage.mjs @@ -173,7 +173,7 @@ export default class PaymentMethodsPage { submitSimulator = async (testSuccess) => { await this.page.locator('button[data-testid="payment-action-button"]').click(); - await this.page.locator('button[data-testid="ideal-box-bank-item-TESTNL2A"]').click(); + await this.page.locator('div[id="bank-item-TESTNL2A"]').click(); const actionButton = testSuccess ? this.page.getByRole('button', { name: 'Success', exact: true }) : this.page.getByRole('button', { name: 'Cancellation', exact: true }); await actionButton.click(); }; From 067dcb102df251e1db9cd9b0219e1d106ff2c0ef Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:20:25 +0200 Subject: [PATCH 09/17] Adding metadata upload workflow (#1120) --- .github/workflows/metadata-upload.yml | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .github/workflows/metadata-upload.yml diff --git a/.github/workflows/metadata-upload.yml b/.github/workflows/metadata-upload.yml new file mode 100644 index 000000000..636eb3c75 --- /dev/null +++ b/.github/workflows/metadata-upload.yml @@ -0,0 +1,47 @@ +name: Metadata upload + +on: + pull_request: + paths: + - 'metadata/**' +jobs: + upload-metadata: + runs-on: ubuntu-latest + timeout-minutes: 5 + strategy: + fail-fast: false + matrix: + include: + - sfra-version: 'v5.3.0' + node-version: '16' + sfcc-hostname-secret: 'SFCC_STOREFRONT_URL_SFRA5' + code-version-secret: 'SFCC_CODE_VERSION_SFRA5' + - sfra-version: 'v6.1.0' + node-version: '16' + sfcc-hostname-secret: 'SFCC_STOREFRONT_URL_SFRA6' + code-version-secret: 'SFCC_CODE_VERSION_SFRA6' + - sfra-version: 'v7.0.0' + node-version: '18' + sfcc-hostname-secret: 'SFCC_STOREFRONT_URL_SFRA7' + code-version-secret: 'SFCC_CODE_VERSION_SFRA7' + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + path: adyen-salesforce-commerce-cloud + - name: Install Salesforce CLI + run: | + npm install -g sfcc-ci + - name: Zip site_import + working-directory: adyen-salesforce-commerce-cloud/metadata + run: | + zip -r $GITHUB_WORKSPACE/site_import.zip site_import + - name: Upload the metadata to the sandbox + working-directory: adyen-salesforce-commerce-cloud/metadata + run: | + sfcc-ci client:auth '${{ secrets.SFCC_CLIENT_ID }}' '${{ secrets.SFCC_CLIENT_SECRET }}' + sfcc-ci instance:upload $GITHUB_WORKSPACE/site_import.zip -i "${{ secrets[matrix.sfcc-hostname-secret] }}" + - name: Import the metadata to the sandbox + working-directory: adyen-salesforce-commerce-cloud/metadata + run: | + sfcc-ci instance:import site_import.zip -i "${{ secrets[matrix.sfcc-hostname-secret] }}" -s From 7525c5d1f1db9c1515a2ef9568ba6f3a1e1178da Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Mon, 22 Jul 2024 09:25:43 +0200 Subject: [PATCH 10/17] chore: removing a check that is not required anymore (#1123) --- .../int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js index ce53e913c..147af825b 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js @@ -295,8 +295,7 @@ let adyenHelperObj = { // determines whether Adyen Giving is available based on the donation token isAdyenGivingAvailable(paymentInstrument) { - // Adyen giving is only available for BCMC in POS - return paymentInstrument.paymentTransaction.custom.Adyen_donationToken && paymentInstrument.paymentTransaction.custom.Adyen_paymentMethod !== 'bcmc'; + return paymentInstrument.paymentTransaction.custom.Adyen_donationToken; }, // gets the ID for ratePay using the custom preference and the encoded session ID From 50cb54f839ff8b51b2efe78d621b4ab2d519466d Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Mon, 22 Jul 2024 10:12:57 +0200 Subject: [PATCH 11/17] fix: changing the method to store.selected method instead of scheme (#1124) --- .../client/default/js/adyen_checkout/checkoutConfiguration.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js index 9dcbf75a2..6f803dacb 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js @@ -25,7 +25,7 @@ function getCardConfig() { store.isValid = state.isValid; const method = state.data.paymentMethod.storedPaymentMethodId ? `storedCard${state.data.paymentMethod.storedPaymentMethodId}` - : constants.SCHEME; + : store.selectedMethod; store.updateSelectedPayment(method, 'isValid', store.isValid); store.updateSelectedPayment(method, 'stateData', state.data); }, From 7c7e8c852e4eff74f9c361540ec94ef1173acc09 Mon Sep 17 00:00:00 2001 From: Aleksandar Mihajlovski Date: Tue, 23 Jul 2024 09:48:01 +0200 Subject: [PATCH 12/17] paypal diagram (#1116) --- documentation/README.md | 2 +- documentation/diagrams/paypal-express.png | Bin 0 -> 897223 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 documentation/diagrams/paypal-express.png diff --git a/documentation/README.md b/documentation/README.md index 24d1b9690..53f4916ca 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -30,7 +30,7 @@ Example payment methods, that are covered by this flow: Apple Pay Express from C ![apple-pay-express.png](diagrams/apple-pay-express.png) ## PayPal Express Example payment methods, that are covered by this flow: PayPal Express from Cart/mini-cart. - +![paypal-express.png](diagrams/paypal-express.png) ## Amazon Pay Express Example payment methods, that are covered by this flow: Amazon Pay Express from Cart/mini-cart. ![amazon-pay-express.png](diagrams/amazon-pay-express.png) diff --git a/documentation/diagrams/paypal-express.png b/documentation/diagrams/paypal-express.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b17c69ef430b046582d1b404c206fcbf9330b0 GIT binary patch literal 897223 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

e9NuW!t$21#1q!oz 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

XP#> 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

-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�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 Date: Tue, 23 Jul 2024 09:48:45 +0200 Subject: [PATCH 13/17] chore: bumping the version (#1125) --- package-lock.json | 2 +- package.json | 2 +- .../int_adyen_SFRA/cartridge/adyen/config/constants.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0082478eb..c45e34b4d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "app_adyen_SFRA", - "version": "24.2.1", + "version": "24.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 97d45f31e..b097bfe9a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "app_adyen_SFRA", - "version": "24.2.1", + "version": "24.3.0", "description": "Adyen's official cartridge for SFRA", "main": "index.js", "paths": { diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js index 495995ca3..bbb8c8750 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js @@ -99,5 +99,5 @@ module.exports = { '/.well-known/apple-developer-merchantid-domain-association', CHECKOUT_COMPONENT_VERSION: '5.65.0', - VERSION: '24.2.1', + VERSION: '24.3.0', }; From 5b1cfd4613b5de334f5f378009b3e91670c9453d Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Tue, 23 Jul 2024 09:49:24 +0200 Subject: [PATCH 14/17] PayPal Express in Cart and Mini-Cart page (#1122) * Rendering PayPal Expres button (#1076) * Paypal express payment (#1077) * Merchant reference set for PayPal Express (#1080) * Populate payment instrument fields for PayPal Express (#1081) * Adding the possibility to enable/disable paypal express from BM (#1085) * feat: adding the possibility to enable/disable paypal ecs from BM * chore: linting * fix: fixing klarna e2e test * PayPal Express update order (#1086) * feat: paypalUpdateOrder endpoint * test: unit tests and jsdoc annotations * feat: paypal update order * feat(SFI-696): show paypal express if enabled in BM * chore(SFI-696): add sonar properties file * refactor(SFI-696): function to create redirectUrl * feat(SFI-696): add stacktrace for error and fatal logs * chore(SFI-696): exclude e2e tests from sonar * fix(SFI-696): clear session.privacy data for paypal express * chore(SFI-696): undo changes to cartridges * fix(SFI-696): zero-auth flow * add spinner for paypal express flow (#1091) * Added the review page template and controller to render it (#1096) * Place order button for express payments on review page (#1112) * feat(SFI-790): new template for checkout review button * feat(SFI-789): handle payments details call from checkout review page * feat(SFI-789): create basket view data on express review page * feat(SFI-789): create basket view data on express review page * chore: merging develop into SFI-42 and adding required mocks (#1115) * Added e2e tests for paypal express (#1117) * test(SFI-798): paypal express unit tests (#1121) * fix: fixing apple pay express flow --------- Co-authored-by: Shani <31096696+shanikantsingh@users.noreply.github.com> --- .github/workflows/SFCC.yml | 2 +- .../expressPayments/shippingMethods.js | 2 +- jest/__mocks__/dw/order/BasketMgr.js | 38 +- jest/__mocks__/dw/order/OrderMgr.js | 29 +- jest/__mocks__/dw/order/ShippingLocation.js | 5 + jest/__mocks__/dw/order/ShippingMgr.js | 44 +- jest/__mocks__/dw/order/TaxMgr.js | 2 + jest/__mocks__/dw/util/UUIDUtils.js | 2 +- jest/__mocks__/dw/value/Money.js | 35 +- jest/sfccCartridgeMocks.js | 352 +++++---- jest/sfccPathSetup.js | 675 ++++++++++++------ .../meta/system-objecttype-extensions.xml | 25 + metadata/site_import/services.xml | 19 + sonar-project.properties | 5 + .../__snapshots__/paypalExpress.test.js.snap | 32 + .../js/__tests__/paypalExpress.test.js | 522 ++++++++++++++ .../default/js/amazonPayExpressPart1.js | 3 +- .../client/default/js/applePayExpress.js | 104 +-- .../default/js/checkoutReviewButtons.js | 41 ++ .../client/default/js/commons/index.js | 6 +- .../cartridge/client/default/js/constants.js | 2 + .../client/default/js/paypalExpress.js | 225 ++++++ .../default/adyen/checkoutReviewButtons.isml | 23 + .../default/cart/checkoutButtons.isml | 18 +- .../default/cart/checkoutReview.isml | 91 +++ .../templates/resources/adyen.properties | 2 + .../default/css/configurationSettings.css | 28 +- .../cartridge/static/default/icons/paypal.svg | 7 + .../static/default/js/adyenSettings.js | 32 + .../settingCards/epmSettings.isml | 3 + .../cartridge/adyen/config/constants.js | 2 + .../cartridge/adyen/logs/adyenCustomLogs.js | 14 +- .../__tests__/selectShippingMethods.test.js | 17 +- .../__tests__/shippingMethods.test.js | 38 +- .../__tests__/handleCheckoutReview.test.js | 91 +++ .../makeExpressPaymentDetailsCall.test.js | 57 ++ .../__tests__/makeExpressPaymentsCall.test.js | 46 ++ .../paypal/__tests__/saveShopperData.test.js | 46 ++ .../paypal/handleCheckoutReview.js | 90 +++ .../paypal/makeExpressPaymentDetailsCall.js | 69 ++ .../paypal/makeExpressPaymentsCall.js | 66 ++ .../expressPayments/paypal/saveShopperData.js | 17 + .../saveExpressShopperDetails.js | 6 +- .../expressPayments/selectShippingMethods.js | 68 +- .../expressPayments/shippingMethods.js | 113 +-- .../cartridge/adyen/scripts/index.js | 8 + .../payments/__tests__/adyenCheckout.test.js | 14 +- .../getCheckoutPaymentMethods.test.js | 22 +- .../__tests__/paymentsDetails.test.js | 7 +- .../payments/__tests__/paypalHelper.test.js | 50 -- .../adyen/scripts/payments/adyenCheckout.js | 20 +- .../adyen/scripts/payments/adyenZeroAuth.js | 3 +- .../payments/getCheckoutPaymentMethods.js | 25 +- .../adyen/scripts/payments/paymentsDetails.js | 29 +- .../adyen/scripts/payments/paypalHelper.js | 53 -- .../handlePaymentFromComponent.js | 39 +- .../adyen/utils/__tests__/adyenHelper.test.js | 49 ++ .../utils/__tests__/paypalHelper.test.js | 186 +++++ .../cartridge/adyen/utils/adyenConfigs.js | 8 + .../cartridge/adyen/utils/adyenHelper.js | 178 +++-- .../cartridge/adyen/utils/paypalHelper.js | 177 +++++ .../cartridge/controllers/Adyen.js | 40 +- tests/playwright/fixtures/USD.spec.mjs | 46 +- tests/playwright/pages/PaymentMethodsPage.mjs | 28 +- .../paymentFlows/redirectShopper.mjs | 4 +- 65 files changed, 3311 insertions(+), 789 deletions(-) create mode 100644 jest/__mocks__/dw/order/ShippingLocation.js create mode 100644 jest/__mocks__/dw/order/TaxMgr.js create mode 100644 sonar-project.properties create mode 100644 src/cartridges/app_adyen_SFRA/cartridge/client/default/js/__tests__/__snapshots__/paypalExpress.test.js.snap create mode 100644 src/cartridges/app_adyen_SFRA/cartridge/client/default/js/__tests__/paypalExpress.test.js create mode 100644 src/cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js create mode 100644 src/cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js create mode 100644 src/cartridges/app_adyen_SFRA/cartridge/templates/default/adyen/checkoutReviewButtons.isml create mode 100644 src/cartridges/app_adyen_SFRA/cartridge/templates/default/cart/checkoutReview.isml create mode 100644 src/cartridges/bm_adyen/cartridge/static/default/icons/paypal.svg create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/handleCheckoutReview.test.js create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/makeExpressPaymentDetailsCall.test.js create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/makeExpressPaymentsCall.test.js create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/saveShopperData.test.js create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview.js create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall.js create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall.js create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData.js delete mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/paypalHelper.test.js delete mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paypalHelper.js create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/paypalHelper.test.js create mode 100644 src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/paypalHelper.js diff --git a/.github/workflows/SFCC.yml b/.github/workflows/SFCC.yml index b0cf4046b..055bcb6d4 100644 --- a/.github/workflows/SFCC.yml +++ b/.github/workflows/SFCC.yml @@ -22,6 +22,6 @@ jobs: npm install npm run lint:fix npm run lint - npm test + npm run test:coverage env: CI: true diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js index f7d40efab..db1c55ef1 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js @@ -61,4 +61,4 @@ function callGetShippingMethods(req, res, next) { return next(); } } -module.exports = callGetShippingMethods; \ No newline at end of file +module.exports = callGetShippingMethods; diff --git a/jest/__mocks__/dw/order/BasketMgr.js b/jest/__mocks__/dw/order/BasketMgr.js index 1f4eaf346..c7164fd42 100644 --- a/jest/__mocks__/dw/order/BasketMgr.js +++ b/jest/__mocks__/dw/order/BasketMgr.js @@ -36,6 +36,11 @@ export const getTotalGrossPrice = jest.fn(() => ({ isAvailable, })); +export const getAdjustedMerchandizeTotalGrossPrice = jest.fn(() => ({ + currencyCode: 'EUR', + isAvailable, +})); + export const getCreditCardToken = jest.fn(() => 'mockedCreditCardToken'); export const getPaymentMethod = jest.fn(() => 'mockedPaymentMethod'); @@ -47,8 +52,14 @@ export const setCreditCardToken = jest.fn(); export const toArray = jest.fn(() => [ { - custom: {}, - paymentTransaction: { paymentProcessor: 'mocked_payment_processor' }, + custom: { adyenPaymentMethod: '' }, + paymentTransaction: { + paymentProcessor: 'mocked_payment_processor', + amount: { + value: 'mockedValue', + currencyCode: 'mockedValue', + }, + }, setCreditCardNumber, setCreditCardType, setCreditCardExpirationMonth, @@ -73,7 +84,6 @@ export const getDefaultShipment = jest.fn(() => ({ })); export const getBillingAddress = jest.fn(() => 'mocked_billing_address'); - function formatCustomerObject(shopperDetails) { return { addressBook: { @@ -121,7 +131,9 @@ export const getCurrentBasket = jest.fn(() => ({ setCustomerEmail: jest.fn(), getAllProductLineItems, getTotalGrossPrice, + getAdjustedMerchandizeTotalGrossPrice, getPaymentInstruments, + removeAllPaymentInstruments: jest.fn(), removePaymentInstrument: jest.fn(), custom: { amazonExpressShopperDetails: JSON.stringify({ @@ -138,15 +150,15 @@ export const getCurrentBasket = jest.fn(() => ({ }, addressBook: { preferredAddress: { - address1: 'address1', - address2: 'mocked address2', - phone: 'mocked phone', - postalCode: 'mocked postalCode', - countryCode: 'mocked CC', - city: 'mocked city', - lastName: 'mocked name', - firstName: 'mocked name', - stateCode: 'mocked state', + address1: 'address1', + address2: 'mocked address2', + phone: 'mocked phone', + postalCode: 'mocked postalCode', + countryCode: 'mocked CC', + city: 'mocked city', + lastName: 'mocked name', + firstName: 'mocked name', + stateCode: 'mocked state', }, }, profile: { @@ -158,7 +170,7 @@ export const getCurrentBasket = jest.fn(() => ({ }), }, getUUID: jest.fn(), - createBillingAddress, + createBillingAddress: jest.fn(() => createBillingAddress), createPaymentInstrument: jest.fn(() => toArray()[0]), defaultShipment: getDefaultShipment(), getDefaultShipment, diff --git a/jest/__mocks__/dw/order/OrderMgr.js b/jest/__mocks__/dw/order/OrderMgr.js index fd98c11c1..7db7cbafe 100644 --- a/jest/__mocks__/dw/order/OrderMgr.js +++ b/jest/__mocks__/dw/order/OrderMgr.js @@ -1,16 +1,16 @@ const paymentInstrument = () => [ { custom: { - adyenPaymentData: "{ \"paymentMethod\": { \"type\": \"mocked_type\" } }", + adyenPaymentData: '{ "paymentMethod": { "type": "mocked_type" } }', adyenRedirectURL: 'https://some_mocked_url/signature', adyenMD: 'mocked_adyen_MD', adyenAction: 'mocked_adyen_action', }, paymentTransaction: { - custom: { - Adyen_merchantSig: 'mocked_signature', - Adyen_authResult: "{ \"data\": \"mock\"}", - }, + custom: { + Adyen_merchantSig: 'mocked_signature', + Adyen_authResult: '{ "data": "mock"}', + }, }, }, ]; @@ -36,9 +36,7 @@ export const getPaymentInstruments = jest.fn(() => ({ 0: toArray()[0], })); - - -export const getOrder = jest.fn((statusValue="4"/* orderNo */) => ({ +export const getOrder = jest.fn((statusValue = '4' /* orderNo */) => ({ getPaymentInstruments, setPaymentStatus: jest.fn(), setExportStatus: jest.fn(), @@ -46,10 +44,23 @@ export const getOrder = jest.fn((statusValue="4"/* orderNo */) => ({ orderToken: 'mocked_orderToken', getUUID: jest.fn(), custom: { Adyen_pspReference: 'mocked_pspRef' }, - status: { value: statusValue} + status: { value: statusValue }, })); export const failOrder = jest.fn((orderNo, bool) => ({ orderNo, bool, })); + +export const createOrderNo = jest.fn(() => 'mocked_orderNo'); + +export const createOrder = jest.fn(() => ({ + getPaymentInstruments, + setPaymentStatus: jest.fn(), + setExportStatus: jest.fn(), + orderNo: 'mocked_orderNo', + orderToken: 'mocked_orderToken', + getUUID: jest.fn(), + custom: { Adyen_pspReference: 'mocked_pspRef' }, + status: { value: 'Created' }, +})); diff --git a/jest/__mocks__/dw/order/ShippingLocation.js b/jest/__mocks__/dw/order/ShippingLocation.js new file mode 100644 index 000000000..50198c874 --- /dev/null +++ b/jest/__mocks__/dw/order/ShippingLocation.js @@ -0,0 +1,5 @@ +function ShippingLocation() { + return jest.fn(); +} + +module.exports = ShippingLocation; diff --git a/jest/__mocks__/dw/order/ShippingMgr.js b/jest/__mocks__/dw/order/ShippingMgr.js index c0ceac6a0..a33339e1e 100644 --- a/jest/__mocks__/dw/order/ShippingMgr.js +++ b/jest/__mocks__/dw/order/ShippingMgr.js @@ -1,6 +1,40 @@ +const Money = require('../value/Money'); - export const getShipmentShippingModel = jest.fn((shipment) => ({ - getApplicableShippingMethods: jest.fn(() => ({ - })), - })); - \ No newline at end of file +const shippingMethods = [ + { + description: 'Order received within 7-10 business days', + displayName: 'Ground', + ID: '001', + custom: { + estimatedArrivalTime: '7-10 Business Days', + }, + getTaxClassID: jest.fn(), + }, + { + description: 'Order received in 2 business days', + displayName: '2-Day Express', + ID: '002', + shippingCost: '$0.00', + custom: { + estimatedArrivalTime: '2 Business Days', + }, + getTaxClassID: jest.fn(), + }, +]; +const shippingCost = Money(); +const shipmentShippingModel = { + getApplicableShippingMethods: jest.fn(() => ({ + toArray: jest.fn(() => shippingMethods), + })), + getShippingCost: jest.fn(() => ({ + getAmount: jest.fn(() => shippingCost), + })), +}; +const productShippingModel = { + getApplicableShippingMethods: jest.fn(() => ({})), + getShippingCost: jest.fn(() => ({ + getAmount: jest.fn(() => shippingCost), + })), +}; +export const getShipmentShippingModel = jest.fn(() => shipmentShippingModel); +export const getProductShippingModel = jest.fn(() => productShippingModel); diff --git a/jest/__mocks__/dw/order/TaxMgr.js b/jest/__mocks__/dw/order/TaxMgr.js new file mode 100644 index 000000000..9722d630d --- /dev/null +++ b/jest/__mocks__/dw/order/TaxMgr.js @@ -0,0 +1,2 @@ +export const getTaxJurisdictionID = jest.fn(); +export const getTaxRate = jest.fn(); \ No newline at end of file diff --git a/jest/__mocks__/dw/util/UUIDUtils.js b/jest/__mocks__/dw/util/UUIDUtils.js index 2d1ac18e7..17acaa93b 100644 --- a/jest/__mocks__/dw/util/UUIDUtils.js +++ b/jest/__mocks__/dw/util/UUIDUtils.js @@ -1 +1 @@ -export const createUUID = jest.fn(); +export const createUUID = jest.fn(() => 'mock_UUID'); diff --git a/jest/__mocks__/dw/value/Money.js b/jest/__mocks__/dw/value/Money.js index a6018404e..91a9cceae 100644 --- a/jest/__mocks__/dw/value/Money.js +++ b/jest/__mocks__/dw/value/Money.js @@ -1,5 +1,30 @@ -export class Money { - constructor() { - return {value: 10, currency: 'TEST'}; - } - } +function Money(isAvailable) { + return { + available: isAvailable, + value: '10.99', + currency: 'USD', + getDecimalValue() { + return '10.99'; + }, + getValue() { + return '10.99'; + }, + getCurrencyCode() { + return 'USD'; + }, + subtract() { + return new Money(isAvailable); + }, + multiply() { + return new Money(isAvailable); + }, + add() { + return new Money(isAvailable); + }, + addRate() { + return new Money(isAvailable); + }, + }; +} + +module.exports = Money; diff --git a/jest/sfccCartridgeMocks.js b/jest/sfccCartridgeMocks.js index 4c5be1f95..938195ade 100644 --- a/jest/sfccCartridgeMocks.js +++ b/jest/sfccCartridgeMocks.js @@ -1,9 +1,16 @@ +/* eslint-disable global-require */ // mocks for all cartridge paths containing asterisk (*) symbol // cartridge/models mocks jest.mock('*/cartridge/models/order', () => jest.fn(), { virtual: true }); jest.mock('*/cartridge/models/cart', () => jest.fn(), { virtual: true }); +jest.mock('*/cartridge/models/account', () => jest.fn(), { virtual: true }); + +jest.mock('*/cartridge/models/shipping/shippingMethod', () => jest.fn(), { + virtual: true, +}); + jest.mock( '*/cartridge/scripts/checkout/shippingHelpers', () => ({ @@ -13,112 +20,125 @@ jest.mock( { virtual: true }, ); -jest.mock('*/cartridge/models/cart', () => jest.fn(), { virtual: true }); - -jest.mock('*/cartridge/adyen/scripts/expressPayments/selectShippingMethods', () => { - return jest.fn(); -}, {virtual: true}); +jest.mock( + '*/cartridge/adyen/scripts/expressPayments/selectShippingMethods', + () => jest.fn(), + { virtual: true }, +); // cartridge/scripts mocks -jest.mock('*/cartridge/adyen/scripts/payments/adyenCheckout', () => { - return { +jest.mock( + '*/cartridge/adyen/scripts/payments/adyenCheckout', + () => ({ + doPaymentsCall: jest.fn(() => ({ + pspReference: 'mocked_pspReference', + })), doPaymentsDetailsCall: jest.fn((payload) => { let resultCode; if (payload.paymentData) { resultCode = payload.paymentData; } else if (payload.details?.MD) { - resultCode = payload.details.MD === 'mocked_md' ? 'Authorised' : 'Not_Authorised'; + resultCode = + payload.details.MD === 'mocked_md' ? 'Authorised' : 'Not_Authorised'; } - return {resultCode}; + return { resultCode, paymentMethod: { type: 'mocked_type' } }; }), createPaymentRequest: jest.fn(() => ({ resultCode: 'Authorised', })), - doCreatePartialPaymentOrderCall: jest.fn(() => { - return {remainingAmount: 'mocked_amount', orderData: 'mocked_data'}; - - }), - }; -}, {virtual: true}); + doCreatePartialPaymentOrderCall: jest.fn(() => ({ + remainingAmount: 'mocked_amount', + orderData: 'mocked_data', + })), + }), + { virtual: true }, +); -jest.mock('*/cartridge/adyen/scripts/payments/adyenDeleteRecurringPayment', () => { - return { deleteRecurringPayment: jest.fn(() => true) }; -}, {virtual: true}); +jest.mock( + '*/cartridge/adyen/scripts/payments/adyenDeleteRecurringPayment', + () => ({ deleteRecurringPayment: jest.fn(() => true) }), + { virtual: true }, +); -jest.mock('*/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails', () => { - return jest.fn(); -}, {virtual: true}); +jest.mock( + '*/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails', + () => jest.fn(), + { virtual: true }, +); -jest.mock('*/cartridge/adyen/scripts/payments/adyenGetPaymentMethods', () => { - return { +jest.mock( + '*/cartridge/adyen/scripts/payments/adyenGetPaymentMethods', + () => ({ getMethods: jest.fn(() => ({ - paymentMethods: [{type: 'visa'}], - })) - }; -}, {virtual: true}); + paymentMethods: [{ type: 'visa' }], + })), + }), + { virtual: true }, +); -jest.mock('*/cartridge/adyen/scripts/payments/adyenGetPaymentMethods', () => { - return { - getMethods: jest.fn(() => ({ - paymentMethods: [{type: 'visa'}], - })) - }; -}, {virtual: true}); -jest.mock('*/cartridge/adyen/scripts/payments/adyenTerminalApi', () => { - return { +jest.mock( + '*/cartridge/adyen/scripts/payments/adyenTerminalApi', + () => ({ getTerminals: jest.fn(() => ({ response: JSON.stringify({ foo: 'bar' }), })), createTerminalPayment: jest.fn(() => ({ - response: 'mockedSuccessResponse' - })) - }; -}, {virtual: true}); + response: 'mockedSuccessResponse', + })), + }), + { virtual: true }, +); -jest.mock('*/cartridge/adyen/scripts/payments/adyenZeroAuth', () => { - return { +jest.mock( + '*/cartridge/adyen/scripts/payments/adyenZeroAuth', + () => ({ zeroAuthPayment: jest.fn(() => ({ error: false, resultCode: 'Authorised', - })) - }; -}, {virtual: true}); + })), + }), + { virtual: true }, +); -jest.mock('*/cartridge/adyen/webhooks/checkNotificationAuth', () => { - return { +jest.mock( + '*/cartridge/adyen/webhooks/checkNotificationAuth', + () => ({ check: jest.fn(() => true), validateHmacSignature: jest.fn(() => true), - }; -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/webhooks/handleNotify', () => { - return { - notify: jest.fn(() => ({ success: true })) - }; -}, {virtual: true}); + }), + { virtual: true }, +); -jest.mock('*/cartridge/adyen/scripts/payments/updateSavedCards', () => { - return { - updateSavedCards: jest.fn() - }; -}, {virtual: true}); +jest.mock( + '*/cartridge/adyen/webhooks/handleNotify', + () => ({ + notify: jest.fn(() => ({ success: true })), + }), + { virtual: true }, +); -// cartridge/scripts/checkout mocks -jest.mock('*/cartridge/adyen/utils/authorizationHelper', () => { - return { - validatePayment: jest.fn(() => ({ error: false })), - handlePayments: jest.fn(() => ({ error: false, action: {type: 'mockedAction'} })), - }; - }, {virtual: true}); +jest.mock( + '*/cartridge/adyen/scripts/payments/updateSavedCards', + () => ({ + updateSavedCards: jest.fn(), + }), + { virtual: true }, +); // cartridge/scripts/checkout mocks -jest.mock('*/cartridge/adyen/utils/adyenHelpers', () => { - return { +jest.mock( + '*/cartridge/adyen/utils/authorizationHelper', + () => ({ validatePayment: jest.fn(() => ({ error: false })), - handlePayments: jest.fn(() => ({ error: false, action: {type: 'mockedAction'} })), - }; -}, {virtual: true}); + handlePayments: jest.fn(() => ({ + error: false, + action: { type: 'mockedAction' }, + })), + }), + { virtual: true }, +); +// cartridge/scripts/checkout mocks jest.mock( '*/cartridge/scripts/checkout/checkoutHelpers', () => { @@ -223,14 +243,22 @@ jest.mock( ); // cartridge/scripts/hooks mocks -jest.mock('*/cartridge/scripts/hooks/fraudDetection', () => { return {} }, {virtual: true}) -jest.mock('*/cartridge/scripts/hooks/validateOrder', () => { return {}} , {virtual: true}) -jest.mock('*/cartridge/scripts/hooks/postAuthorizationHandling', () => { return {}} , {virtual: true}) +jest.mock('*/cartridge/scripts/hooks/fraudDetection', () => ({}), { + virtual: true, +}); +jest.mock('*/cartridge/scripts/hooks/validateOrder', () => ({}), { + virtual: true, +}); +jest.mock('*/cartridge/scripts/hooks/postAuthorizationHandling', () => ({}), { + virtual: true, +}); // cartridge/adyen/util mocks jest.mock('*/cartridge/adyen/utils/validatePaymentMethod', () => ({ - validatePaymentMethod: jest.fn(() => jest.fn(() => true)), - })); -jest.mock('*/cartridge/adyen/utils/adyenHelper', () => ({ + validatePaymentMethod: jest.fn(() => jest.fn(() => true)), +})); +jest.mock( + '*/cartridge/adyen/utils/adyenHelper', + () => ({ savePaymentDetails: jest.fn(), getAdyenHash: jest.fn((str, str2) => `${str} __ ${str2}`), getLoadingContext: jest.fn(() => 'mocked_loading_context'), @@ -240,6 +268,7 @@ jest.mock('*/cartridge/adyen/utils/adyenHelper', () => ({ })), isAdyenGivingAvailable: jest.fn(() => true), isApplePay: jest.fn(() => true), + isPayPalExpress: jest.fn(() => false), getAdyenGivingConfig: jest.fn(() => true), getApplicationInfo: jest.fn(() => ({ externalPlatform: { version: 'SFRA' }, @@ -273,12 +302,19 @@ jest.mock('*/cartridge/adyen/utils/adyenHelper', () => ({ getOrderMainPaymentInstrumentType: jest.fn(() => {}), getPaymentInstrumentType: jest.fn((isCreditCard) => (isCreditCard ? 'CREDIT_CARD' : 'AdyenComponent'),), + validatePayment: jest.fn(() => ({ error: false })), + handlePayments: jest.fn(() => ({ + error: false, + action: { type: 'mockedAction' }, + })), + createRedirectUrl: jest.fn(() => 'mocked_RedirectUrl'), }), { virtual: true }, ); -jest.mock('*/cartridge/adyen/utils/adyenConfigs', () => { - return { +jest.mock( + '*/cartridge/adyen/utils/adyenConfigs', + () => ({ getAdyenEnvironment: jest.fn(() => 'TEST'), getAdyenInstallmentsEnabled: jest.fn(() => true), getCreditCardInstallments: jest.fn(() => true), @@ -290,25 +326,21 @@ jest.mock('*/cartridge/adyen/utils/adyenConfigs', () => { getAdyenMerchantAccount: jest.fn(() => 'mocked_merchant_account'), getAdyenGivingEnabled: jest.fn(() => true), getAdyenGivingCharityName: jest.fn(() => '%mocked_charity_name%'), - getAdyenGivingCharityWebsite: jest.fn( - () => 'mocked_charity_website', - ), + getAdyenGivingCharityWebsite: jest.fn(() => 'mocked_charity_website'), getAdyenGivingCharityDescription: jest.fn( - () => '%mocked_charity_description%', - ), - getAdyenGivingBackgroundUrl: jest.fn( - () => 'mocked_background_url', + () => '%mocked_charity_description%', ), + getAdyenGivingBackgroundUrl: jest.fn(() => 'mocked_background_url'), getAdyenGivingLogoUrl: jest.fn(() => 'mocked_logo_url'), getAdyenSFRA6Compatibility: jest.fn(() => false), - getAdyenHmacKey : jest.fn(() => 'mocked_hmacKey'), + getAdyenHmacKey: jest.fn(() => 'mocked_hmacKey'), getAdyenBasketFieldsEnabled: jest.fn(() => false), getAdyen3DS2Enabled: jest.fn(() => false), getAdyenLevel23DataEnabled: jest.fn(() => false), - getAdyenSalePaymentMethods:jest.fn(() => []), - - }; -}, {virtual: true}); + getAdyenSalePaymentMethods: jest.fn(() => []), + }), + { virtual: true }, +); jest.mock( '*/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent', @@ -342,53 +374,97 @@ jest.mock( { virtual: true }, ); -jest.mock('*/cartridge/controllers/middlewares/checkout_services/adyenCheckoutServices', () => { - return { - processPayment: jest.fn(), - isNotAdyen: jest.fn(() => false), - }; - }, {virtual: true}); +jest.mock( + '*/cartridge/adyen/utils/lineItemHelper', + () => ({ + getDescription: jest.fn((lineItem) => lineItem.productName), + getId: jest.fn((lineItem) => lineItem.productID), + getQuantity: jest.fn((lineItem) => lineItem.quantityValue), + getItemAmount: jest.fn((lineItem) => ({ + divide: jest.fn((quantity) => ({ + getValue: jest.fn(() => lineItem.adjustedNetPrice / quantity), + })), + })), + getVatAmount: jest.fn((lineItem) => ({ + divide: jest.fn((quantity) => ({ + getValue: jest.fn(() => lineItem.getAdjustedTax / quantity), + })), + })), + getAllLineItems: jest.fn((lineItem) => lineItem), + }), + { virtual: true }, +); jest.mock( - '*/cartridge/adyen/utils/lineItemHelper', - () => ({ - getDescription: jest.fn((lineItem) => lineItem.productName), - getId: jest.fn((lineItem) => lineItem.productID), - getQuantity: jest.fn((lineItem) => lineItem.quantityValue), - getItemAmount: jest.fn((lineItem) => ({ - divide: jest.fn((quantity) => ({ - getValue: jest.fn(() => lineItem.adjustedNetPrice / quantity), - })), - })), - getVatAmount: jest.fn((lineItem) => ({ - divide: jest.fn((quantity) => ({ - getValue: jest.fn(() => lineItem.getAdjustedTax / quantity), - })), - })), - getAllLineItems: jest.fn((lineItem) => lineItem), - }), - { virtual: true }, - ); + '*/cartridge/adyen/utils/lineItemHelper', + () => ({ + getDescription: jest.fn((lineItem) => lineItem.productName), + getId: jest.fn((lineItem) => lineItem.productID), + getQuantity: jest.fn((lineItem) => lineItem.quantityValue), + getItemAmount: jest.fn((lineItem) => ({ + divide: jest.fn((quantity) => ({ + getValue: jest.fn(() => lineItem.adjustedNetPrice / quantity), + })), + })), + getVatAmount: jest.fn((lineItem) => ({ + divide: jest.fn((quantity) => ({ + getValue: jest.fn(() => lineItem.getAdjustedTax / quantity), + })), + })), + getAllLineItems: jest.fn((lineItem) => lineItem), + }), + { virtual: true }, +); jest.mock( - '*/cartridge/adyen/utils/lineItemHelper', - () => ({ - getDescription: jest.fn((lineItem) => lineItem.productName), - getId: jest.fn((lineItem) => lineItem.productID), - getQuantity: jest.fn((lineItem) => lineItem.quantityValue), - getItemAmount: jest.fn((lineItem) => ({ - divide: jest.fn((quantity) => ({ - getValue: jest.fn(() => lineItem.adjustedNetPrice / quantity), - })), - })), - getVatAmount: jest.fn((lineItem) => ({ - divide: jest.fn((quantity) => ({ - getValue: jest.fn(() => lineItem.getAdjustedTax / quantity), - })), - })), - getAllLineItems: jest.fn((lineItem) => lineItem), - }), - { virtual: true }, - ); - -jest.mock('*/cartridge/models/shipping/shippingMethod', () => jest.fn(), { virtual: true }); + '*/cartridge/adyen/utils/paypalHelper', + () => ({ + getLineItems: jest.fn(() => [ + { + quantity: '1', + description: 'test', + itemCategory: 'PHYSICAL_GOODS', + sku: '123', + amountExcludingTax: '10000', + taxAmount: '1000', + }, + ]), + createPaypalUpdateOrderRequest: jest.fn(() => ({ + pspReference: 'test', + paymentData: 'test', + amount: { + value: '1000', + currency: 'USD', + }, + deliveryMethods: [ + { + reference: '001', + description: 'test', + type: 'Shipping', + amount: { + currency: 'USD', + value: '1000', + }, + selected: true, + }, + ], + })), + setBillingAndShippingAddress: jest.fn(), + }), + { virtual: true }, +); + +jest.mock( + '*/cartridge/client/default/js/adyen_checkout/helpers', + () => ({ + setOrderFormData: jest.fn(), + assignPaymentMethodValue: jest.fn(), + paymentFromComponent: jest.fn(), + resetPaymentMethod: jest.fn(), + displaySelectedMethod: jest.fn(), + showValidation: jest.fn(), + createShowConfirmationForm: jest.fn(), + getInstallmentValues: jest.fn(), + }), + { virtual: true }, +); \ No newline at end of file diff --git a/jest/sfccPathSetup.js b/jest/sfccPathSetup.js index f6592db7d..9ddc8e915 100644 --- a/jest/sfccPathSetup.js +++ b/jest/sfccPathSetup.js @@ -1,257 +1,466 @@ +/* eslint-disable global-require */ // List of mocks to let node resolve SFCC cartridge paths - // int_adyen_SFRA mocks -jest.mock('*/cartridge/adyen/scripts/index', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/index'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/payments/redirect3ds1Response', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/redirect3ds1Response'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/adyen3d', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/adyen3d'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/adyen3ds2', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/adyen3ds2'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/payments/paymentsDetails', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentsDetails'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/webhooks/notify', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/webhooks/notify'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/payments/paymentFromComponent', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentFromComponent'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/partialPayments/checkBalance', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/partialPayments/checkBalance'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/partialPayments/cancelPartialPaymentOrder', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/partialPayments/cancelPartialPaymentOrder'); -}, {virtual: true}); - -jest.mock('*/cartridge/models/cart', () => { - return require('../cartridge/models/cart'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/partialPayments/partialPaymentsOrder', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/partialPayments/partialPaymentsOrder'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/partialPayments/partialPayment', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/partialPayments/partialPayment'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/expressPayments/shippingMethods', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/partialPayments/fetchGiftCards', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/partialPayments/fetchGiftCards'); - }, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails'); - }, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods'); - }, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/showConfirmation/showConfirmationPaymentFromComponent', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/showConfirmationPaymentFromComponent'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent'); -}, {virtual: true}); +jest.mock( + '*/cartridge/adyen/scripts/index', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/index'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/payments/redirect3ds1Response', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/redirect3ds1Response'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/adyen3d', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/adyen3d'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/adyen3ds2', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/adyen3ds2'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/payments/paymentsDetails', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentsDetails'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/webhooks/notify', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/webhooks/notify'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/payments/paymentFromComponent', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentFromComponent'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/partialPayments/checkBalance', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/partialPayments/checkBalance'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/partialPayments/cancelPartialPaymentOrder', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/partialPayments/cancelPartialPaymentOrder'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/models/cart', + () => require('../cartridge/models/cart'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/models/shipping/shippingMethod', + () => require('../cartridge/models/shipping/shippingMethod'), + { virtual: true }, + ); + +jest.mock( + '*/cartridge/adyen/scripts/partialPayments/partialPaymentsOrder', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/partialPayments/partialPaymentsOrder'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/partialPayments/partialPayment', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/partialPayments/partialPayment'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/expressPayments/shippingMethods', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/partialPayments/fetchGiftCards', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/partialPayments/fetchGiftCards'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/showConfirmation/showConfirmationPaymentFromComponent', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/showConfirmationPaymentFromComponent'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent'), + { virtual: true }, +); // middlewares/adyen/authorizeWithForm subclasses -jest.mock('*/cartridge/controllers/middlewares/adyen/authorizeWithForm', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorizeWithForm'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/authorizeWithForm/authorize', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorizeWithForm/authorize'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/authorizeWithForm/error', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorizeWithForm/error'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/authorizeWithForm/payment', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorizeWithForm/payment'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/authorizeWithForm/order', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorizeWithForm/order'); -}, {virtual: true}); +jest.mock( + '*/cartridge/controllers/middlewares/adyen/authorizeWithForm', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorizeWithForm'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/authorizeWithForm/authorize', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorizeWithForm/authorize'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/authorizeWithForm/error', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorizeWithForm/error'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/authorizeWithForm/payment', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorizeWithForm/payment'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/authorizeWithForm/order', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorizeWithForm/order'), + { virtual: true }, +); // middlewares/adyen/authorize3ds2 subclasses -jest.mock('*/cartridge/controllers/middlewares/adyen/authorize3ds2', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorize3ds2'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/authorize3ds2/payment', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorize3ds2/payment'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/authorize3ds2/auth', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorize3ds2/auth'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/authorize3ds2/errorHandler', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorize3ds2/errorHandler'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/authorize3ds2/order', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorize3ds2/order'); -}, {virtual: true}); +jest.mock( + '*/cartridge/controllers/middlewares/adyen/authorize3ds2', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorize3ds2'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/authorize3ds2/payment', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorize3ds2/payment'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/authorize3ds2/auth', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorize3ds2/auth'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/authorize3ds2/errorHandler', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorize3ds2/errorHandler'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/authorize3ds2/order', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/authorize3ds2/order'), + { virtual: true }, +); // middlewares/adyen/redirect subclasses -jest.mock('*/cartridge/controllers/middlewares/adyen/redirect', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/redirect'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/adyen/redirect/signature', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/redirect/signature'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/showConfirmation/showConfirmation', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/showConfirmation'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/showConfirmation/order', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/order'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/showConfirmation/handlePayment', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePayment'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/showConfirmation/authorise', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/authorise'); -}, {virtual: true}); +jest.mock( + '*/cartridge/controllers/middlewares/adyen/redirect', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/redirect'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/adyen/redirect/signature', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/adyen/redirect/signature'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/showConfirmation/showConfirmation', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/showConfirmation'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/showConfirmation/order', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/order'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/showConfirmation/handlePayment', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePayment'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/showConfirmation/authorise', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/authorise'), + { virtual: true }, +); // controllers/utils subclasses -jest.mock('*/cartridge/controllers/utils/index', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/utils/index'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/utils/clearForms', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/clearForms'); -}, {virtual: true}); +jest.mock( + '*/cartridge/controllers/utils/index', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/utils/index'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/utils/clearForms', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/clearForms'), + { virtual: true }, +); // controllers/middlewares/checkout_services subclasses -jest.mock('*/cartridge/controllers/middlewares/checkout_services/placeOrder', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/checkout_services/placeOrder'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/checkout_services/placeOrder', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/checkout_services/placeOrder'); -}, {virtual: true}); +jest.mock( + '*/cartridge/controllers/middlewares/checkout_services/placeOrder', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/checkout_services/placeOrder'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/checkout_services/placeOrder', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/checkout_services/placeOrder'), + { virtual: true }, +); // controllers/middlewares/checkout subclasses -jest.mock('*/cartridge/controllers/middlewares/checkout/index', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/checkout/index'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/checkout/begin', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/checkout/begin'); -}, {virtual: true}); +jest.mock( + '*/cartridge/controllers/middlewares/checkout/index', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/checkout/index'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/checkout/begin', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/checkout/begin'), + { virtual: true }, +); // controllers/middlewares/order subclasses -jest.mock('*/cartridge/controllers/middlewares/order/index', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/order/index'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/order/confirm', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/order/confirm'); -}, {virtual: true}); +jest.mock( + '*/cartridge/controllers/middlewares/order/index', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/order/index'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/order/confirm', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/order/confirm'), + { virtual: true }, +); // controllers/middlewares/payment_instruments subclasses -jest.mock('*/cartridge/controllers/middlewares/payment_instruments/index', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/payment_instruments/index'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/payment_instruments/deletePayment', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/payment_instruments/deletePayment'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/payment_instruments/paymentProcessorIDs', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/payment_instruments/paymentProcessorIDs'); -}, {virtual: true}); - -jest.mock('*/cartridge/controllers/middlewares/payment_instruments/savePayment', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/payment_instruments/savePayment'); -}, {virtual: true}); +jest.mock( + '*/cartridge/controllers/middlewares/payment_instruments/index', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/payment_instruments/index'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/payment_instruments/deletePayment', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/payment_instruments/deletePayment'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/payment_instruments/paymentProcessorIDs', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/payment_instruments/paymentProcessorIDs'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/controllers/middlewares/payment_instruments/savePayment', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/controllers/middlewares/payment_instruments/savePayment'), + { virtual: true }, +); // scripts/checkout subclasses -jest.mock('*/cartridge/scripts/checkout/utils/index', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/checkout/utils/index'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/utils/getPayments', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/getPayments'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/utils/validatePaymentMethod', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/validatePaymentMethod'); -}, {virtual: true}); - -jest.mock('*/cartridge/scripts/checkout/shippingHelpers', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/checkout/shippingHelpers'); -}, {virtual: true}); - -jest.mock('*/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent', () => { - return require('../src/cartridges/int_adyen_SFRA/client/default/js/adyen_checkout/renderGiftcardComponent'); -}, {virtual: true}); +jest.mock( + '*/cartridge/scripts/checkout/utils/index', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/checkout/utils/index'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/utils/getPayments', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/getPayments'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/utils/validatePaymentMethod', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/validatePaymentMethod'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/scripts/checkout/shippingHelpers', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/checkout/shippingHelpers'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent', + () => + require('../src/cartridges/int_adyen_SFRA/client/default/js/adyen_checkout/renderGiftcardComponent'), + { virtual: true }, +); // scripts/hooks/payment/processor/middlewares/authorize subclasses -jest.mock('*/cartridge/adyen/scripts/hooks/payment/processor/middlewares/authorize/paymentResponse', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/hooks/payment/processor/middlewares/authorize/paymentResponse'); -}, {virtual: true}); +jest.mock( + '*/cartridge/adyen/scripts/hooks/payment/processor/middlewares/authorize/paymentResponse', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/hooks/payment/processor/middlewares/authorize/paymentResponse'), + { virtual: true }, +); // int_adyen_overlay mocks -jest.mock('*/cartridge/adyen/config/constants', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/config/paymentMethodDescriptions', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/config/paymentMethodDescriptions'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/utils/riskDataHelper', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/utils/lineItemHelper', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/lineItemHelper'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/payments/adyenGetOpenInvoiceData', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenGetOpenInvoiceData'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/payments/adyenLevelTwoThreeData', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenLevelTwoThreeData'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/logs/adyenCustomLogs', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/logs/adyenCustomLogs'); - }, {virtual: true}); - -jest.mock('*/cartridge/adyen/utils/giftCardsHelper', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/giftCardsHelper'); -}, {virtual: true}); - -jest.mock('*/cartridge/adyen/scripts/payments/paypalHelper', () => { - return require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paypalHelper'); -}, {virtual: true}); \ No newline at end of file +jest.mock( + '*/cartridge/adyen/config/constants', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/config/paymentMethodDescriptions', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/config/paymentMethodDescriptions'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/utils/riskDataHelper', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/utils/lineItemHelper', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/lineItemHelper'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/payments/adyenGetOpenInvoiceData', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenGetOpenInvoiceData'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/scripts/payments/adyenLevelTwoThreeData', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenLevelTwoThreeData'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/logs/adyenCustomLogs', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/logs/adyenCustomLogs'), + { virtual: true }, +); + +jest.mock( + '*/cartridge/adyen/utils/giftCardsHelper', + () => + require('../src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/giftCardsHelper'), + { virtual: true }, +); diff --git a/metadata/site_import/meta/system-objecttype-extensions.xml b/metadata/site_import/meta/system-objecttype-extensions.xml index 1705975a4..3d08ae711 100644 --- a/metadata/site_import/meta/system-objecttype-extensions.xml +++ b/metadata/site_import/meta/system-objecttype-extensions.xml @@ -44,6 +44,14 @@ false 0 + + Adyen PayPal Express Response + PayPal Express response used to render the confirmation form + text + false + false + 0 + @@ -53,6 +61,7 @@ + @@ -544,6 +553,20 @@ false true + + Enable PayPal express checkout + boolean + false + false + true + + + Enable PayPal express review page + boolean + false + false + false + Enable Adyen Installments boolean @@ -697,6 +720,8 @@ + + diff --git a/metadata/site_import/services.xml b/metadata/site_import/services.xml index 013f37276..97edaca9e 100644 --- a/metadata/site_import/services.xml +++ b/metadata/site_import/services.xml @@ -100,6 +100,16 @@ + + https://checkout-test.adyen.com/v71/paypal/updateOrder + + + + + https://[YOUR_LIVE_PREFIX]-checkout-live.adyenpayments.com/checkout/v71/paypal/updateOrder + + + 30000 @@ -209,4 +219,13 @@ Adyen AdyenCheckBalance + + HTTP + true + adyen + true + false + Adyen + AdyenPaypalUpdateOrder + diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 000000000..3882f9338 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,5 @@ +sonar.organization=adyen +sonar.projectKey=Adyen_adyen-salesforce-commerce-cloud +sonar.sources=. +sonar.exclusions=cartridges/**/*, jest/**/*, tests/**/* +sonar.javascript.lcov.reportPaths=./coverage/lcov.info diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/__tests__/__snapshots__/paypalExpress.test.js.snap b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/__tests__/__snapshots__/paypalExpress.test.js.snap new file mode 100644 index 000000000..4f1f42c1e --- /dev/null +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/__tests__/__snapshots__/paypalExpress.test.js.snap @@ -0,0 +1,32 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`paypal express getPaypalButtonConfig should return config when review page is enabled 1`] = ` +{ + "configuration": {}, + "isExpress": true, + "onAdditionalDetails": [Function], + "onError": [Function], + "onShippingAddressChange": [Function], + "onShippingOptionsChange": [Function], + "onShopperDetails": [Function], + "onSubmit": [Function], + "returnUrl": "test_returnUrl", + "showPayButton": true, + "userAction": "continue", +} +`; + +exports[`paypal express getPaypalButtonConfig should return config when review page is not enabled 1`] = ` +{ + "configuration": {}, + "isExpress": true, + "onAdditionalDetails": [Function], + "onError": [Function], + "onShippingAddressChange": [Function], + "onShippingOptionsChange": [Function], + "onShopperDetails": [Function], + "onSubmit": [Function], + "returnUrl": "test_returnUrl", + "showPayButton": true, +} +`; diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/__tests__/paypalExpress.test.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/__tests__/paypalExpress.test.js new file mode 100644 index 000000000..2a42b5e4c --- /dev/null +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/__tests__/paypalExpress.test.js @@ -0,0 +1,522 @@ +/** + * @jest-environment jsdom + */ + +const { + callPaymentFromComponent, + saveShopperDetails, + redirectToReviewPage, + makeExpressPaymentDetailsCall, + updateComponent, + handleShippingAddressChange, + handleShippingOptionChange, + getPaypalButtonConfig, + mountPaypalComponent, +} = require('../paypalExpress.js') +const helpers = require('../adyen_checkout/helpers'); + +describe('paypal express', () => { + describe('callPaymentFromComponent', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + afterEach(() => { + jest.resetModules(); + }); + it('should make successful payments call for express', async () => { + const start = jest.fn(); + global.$.spinner = jest.fn(() => {return { + start: start + }}) + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: true, + json: jest.fn(() => {return {action: {}}}) + }) + const component = { + handleError: jest.fn(), + handleAction: jest.fn() + } + await callPaymentFromComponent({}, component); + expect(start).toHaveBeenCalledTimes(1); + expect(component.handleAction).toHaveBeenCalledTimes(1); + expect(component.handleError).not.toHaveBeenCalled(); + }) + it('should handle failed payments call for express when response is not ok', async () => { + const start = jest.fn(); + global.$.spinner = jest.fn(() => {return { + start: start + }}) + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: true, + json: jest.fn(() => {return {}}) + }) + const component = { + handleError: jest.fn(), + handleAction: jest.fn() + } + await callPaymentFromComponent({}, component); + expect(start).toHaveBeenCalledTimes(1); + expect(component.handleError).toHaveBeenCalledTimes(1); + expect(component.handleAction).not.toHaveBeenCalled(); + }) + it('should handle failed payments call for express when response is ok but there is no "action" in response', async () => { + const start = jest.fn(); + global.$.spinner = jest.fn(() => {return { + start: start + }}) + global.fetch = jest.fn().mockRejectedValueOnce({}) + const component = { + handleError: jest.fn(), + handleAction: jest.fn() + } + await callPaymentFromComponent({}, component); + expect(start).toHaveBeenCalledTimes(1); + expect(component.handleError).toHaveBeenCalledTimes(1); + expect(component.handleAction).not.toHaveBeenCalled(); + }) +}) + describe('saveShopperDetails', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + afterEach(() => { + jest.resetModules(); + }); + it('should make successful save shopper data call', async () => { + const stop = jest.fn(); + global.$.spinner = jest.fn(() => {return { + stop: stop + }}) + $.ajax = jest.fn().mockImplementation(({success}) => Promise.resolve(success())); + const actions = { + resolve: jest.fn() + } + await saveShopperDetails({}, actions); + expect(actions.resolve).toHaveBeenCalledTimes(1); + expect(stop).not.toHaveBeenCalled(); + }) + it('should stop spinner if save shopper data call fails', async () => { + const stop = jest.fn(); + global.$.spinner = jest.fn(() => {return { + stop: stop + }}) + $.ajax = jest.fn().mockImplementation(({error}) => Promise.resolve(error())); + const actions = { + resolve: jest.fn() + } + await saveShopperDetails({}, actions); + expect(stop).toHaveBeenCalledTimes(1); + expect(actions.resolve).not.toHaveBeenCalled(); + }) + }) + describe('makeExpressPaymentDetailsCall', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + afterEach(() => { + jest.resetModules(); + }); + it('should make successful express payment details call', async () => { + const stop = jest.fn(); + const createShowConfirmationForm = jest.fn(); + const setOrderFormData = jest.fn(); + global.$.spinner = jest.fn(() => {return { + stop: stop + }}) + helpers.setOrderFormData = setOrderFormData; + helpers.createShowConfirmationForm = createShowConfirmationForm; + $.ajax = jest.fn().mockImplementation(({success}) => Promise.resolve(success())); + + await makeExpressPaymentDetailsCall({}); + expect(createShowConfirmationForm).toHaveBeenCalledTimes(1); + expect(setOrderFormData).toHaveBeenCalledTimes(1); + expect(stop).not.toHaveBeenCalled(); + }) + it('should stop spinner if express payment details call fails', async () => { + const stop = jest.fn(); + const createShowConfirmationForm = jest.fn(); + const setOrderFormData = jest.fn(); + global.$.spinner = jest.fn(() => {return { + stop: stop + }}) + helpers.setOrderFormData = setOrderFormData; + helpers.createShowConfirmationForm = createShowConfirmationForm; + $.ajax = jest.fn().mockImplementation(({error}) => Promise.resolve(error())); + + await makeExpressPaymentDetailsCall({}); + expect(stop).toHaveBeenCalledTimes(1); + expect(createShowConfirmationForm).not.toHaveBeenCalled(); + expect(setOrderFormData).not.toHaveBeenCalled(); + }) + }) + describe('handleShippingAddressChange', () => { + window.shippingMethodsUrl= 'test_url'; + beforeEach(() => { + jest.clearAllMocks(); + }); + afterEach(() => { + jest.resetModules(); + }); + it('should make successful shipping address change call', async () => { + const data = { + shippingAddress: { + city: 'Amsterdam', + country: 'Netherlands', + countryCode: 'NL', + state: 'AMS', + postalCode: '1001', + }, + errors: { + ADDRESS_ERROR: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: true, + json: jest.fn(() => ({paymentData: 'test_paymentData', status: 'success'})) + }) + + const request = { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + }, + body: JSON.stringify({ paymentMethodType: 'paypal', currentPaymentData: 'test_paymentData', address: { + city: 'Amsterdam', + country: 'Netherlands', + countryCode: 'NL', + stateCode: 'AMS', + postalCode: '1001', + } }), + } + + await handleShippingAddressChange(data, actions, component); + expect(global.fetch).toHaveBeenCalledWith('test_url', request); + expect(component.updatePaymentData).toHaveBeenCalledTimes(1); + expect(actions.reject).not.toHaveBeenCalled(); + }) + it('should not make shipping address change call if no shipping address is present', async () => { + const data = { + errors: { + ADDRESS_ERROR: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: true, + json: jest.fn(() => ({paymentData: 'test_paymentData', status: 'success'})) + }) + + await handleShippingAddressChange(data, actions, component); + expect(actions.reject).toHaveBeenCalledTimes(1); + expect(global.fetch).not.toHaveBeenCalled(); + expect(component.updatePaymentData).not.toHaveBeenCalled(); + }) + it('should handle failed shipping address change call', async () => { + const data = { + shippingAddress: { + city: 'Amsterdam', + country: 'Netherlands', + countryCode: 'NL', + state: 'AMS', + postalCode: '1001', + }, + errors: { + ADDRESS_ERROR: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockRejectedValueOnce({}) + + await handleShippingAddressChange(data, actions, component); + expect(actions.reject).toHaveBeenCalledTimes(1); + expect(component.updatePaymentData).not.toHaveBeenCalled(); + }) + it('should handle shipping address change call when response is not ok', async () => { + const data = { + shippingAddress: { + city: 'Amsterdam', + country: 'Netherlands', + countryCode: 'NL', + state: 'AMS', + postalCode: '1001', + }, + errors: { + ADDRESS_ERROR: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: false, + json: jest.fn(() => ({paymentData: 'test_paymentData', status: 'success'})) + }) + + await handleShippingAddressChange(data, actions, component); + expect(actions.reject).toHaveBeenCalledTimes(1); + expect(component.updatePaymentData).not.toHaveBeenCalled(); + }) + it('should handle shipping address change call when status is failed', async () => { + const data = { + shippingAddress: { + city: 'Amsterdam', + country: 'Netherlands', + countryCode: 'NL', + state: 'AMS', + postalCode: '1001', + }, + errors: { + ADDRESS_ERROR: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: false, + json: jest.fn(() => ({paymentData: 'test_paymentData', status: 'failed'})) + }) + + await handleShippingAddressChange(data, actions, component); + expect(actions.reject).toHaveBeenCalledTimes(1); + expect(component.updatePaymentData).not.toHaveBeenCalled(); + }) + it('should handle shipping address change call when paymentData is not returned', async () => { + const data = { + shippingAddress: { + city: 'Amsterdam', + country: 'Netherlands', + countryCode: 'NL', + state: 'AMS', + postalCode: '1001', + }, + errors: { + ADDRESS_ERROR: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: false, + json: jest.fn(() => ({ status: 'success'})) + }) + + await handleShippingAddressChange(data, actions, component); + expect(actions.reject).toHaveBeenCalledTimes(1); + expect(component.updatePaymentData).not.toHaveBeenCalled(); + }) + }) + describe('handleShippingOptionChange', () => { + window.selectShippingMethodUrl= 'test_url'; + beforeEach(() => { + jest.clearAllMocks(); + }); + afterEach(() => { + jest.resetModules(); + }); + it('should make successful shipping option change call', async () => { + const data = { + selectedShippingOption: { + id: 'test', + }, + errors: { + METHOD_UNAVAILABLE: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: true, + json: jest.fn(() => ({paymentData: 'test_paymentData', status: 'success'})) + }) + + const request = { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + }, + body: JSON.stringify({ paymentMethodType: 'paypal', currentPaymentData: 'test_paymentData', methodID: 'test' }), + } + + await handleShippingOptionChange(data, actions, component); + expect(global.fetch).toHaveBeenCalledWith('test_url', request); + expect(component.updatePaymentData).toHaveBeenCalledTimes(1); + expect(actions.reject).not.toHaveBeenCalled(); + }) + it('should not make shipping option change call if no shipping option is present', async () => { + const data = { + errors: { + METHOD_UNAVAILABLE: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: true, + json: jest.fn(() => ({paymentData: 'test_paymentData', status: 'success'})) + }) + + await handleShippingOptionChange(data, actions, component); + expect(actions.reject).toHaveBeenCalledTimes(1); + expect(global.fetch).not.toHaveBeenCalled(); + expect(component.updatePaymentData).not.toHaveBeenCalled(); + }) + it('should handle failed shipping options change call', async () => { + const data = { + selectedShippingOption: { + id: 'test', + }, + errors: { + METHOD_UNAVAILABLE: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockRejectedValueOnce({}) + + await handleShippingOptionChange(data, actions, component); + expect(actions.reject).toHaveBeenCalledTimes(1); + expect(component.updatePaymentData).not.toHaveBeenCalled(); + }) + it('should handle shipping option change call when response is not ok', async () => { + const data = { + selectedShippingOption: { + id: 'test', + }, + errors: { + METHOD_UNAVAILABLE: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: false, + json: jest.fn(() => ({paymentData: 'test_paymentData', status: 'success'})) + }) + + await handleShippingOptionChange(data, actions, component); + expect(actions.reject).toHaveBeenCalledTimes(1); + expect(component.updatePaymentData).not.toHaveBeenCalled(); + }) + it('should handle shipping option change call when status is failed', async () => { + const data = { + selectedShippingOption: { + id: 'test', + }, + errors: { + METHOD_UNAVAILABLE: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: false, + json: jest.fn(() => ({paymentData: 'test_paymentData', status: 'failed'})) + }) + + await handleShippingOptionChange(data, actions, component); + expect(actions.reject).toHaveBeenCalledTimes(1); + expect(component.updatePaymentData).not.toHaveBeenCalled(); + }) + it('should handle shipping option change call when paymentData is not returned', async () => { + const data = { + selectedShippingOption: { + id: 'test', + }, + errors: { + METHOD_UNAVAILABLE: 'test_error' + } + } + const actions = { + reject: jest.fn() + } + const component = { + updatePaymentData: jest.fn(), + paymentData: 'test_paymentData' + } + global.fetch = jest.fn().mockResolvedValueOnce({ + ok: false, + json: jest.fn(() => ({ status: 'success'})) + }) + + await handleShippingOptionChange(data, actions, component); + expect(actions.reject).toHaveBeenCalledTimes(1); + expect(component.updatePaymentData).not.toHaveBeenCalled(); + }) + }) + describe('getPaypalButtonConfig',() => { + window.returnUrl = 'test_returnUrl'; + beforeEach(() => { + jest.clearAllMocks(); + }); + afterEach(() => { + jest.resetModules(); + }); + it('should return config when review page is not enabled',() => { + const paypalButtonConfig = getPaypalButtonConfig({}); + expect(paypalButtonConfig).toMatchSnapshot(); + }) + it('should return config when review page is enabled',() => { + window.paypalReviewPageEnabled = true; + const paypalButtonConfig = getPaypalButtonConfig({}); + expect(paypalButtonConfig).toMatchSnapshot(); + }) + }) +}) diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/amazonPayExpressPart1.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/amazonPayExpressPart1.js index 3cb422045..5301e79c4 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/amazonPayExpressPart1.js +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/amazonPayExpressPart1.js @@ -3,8 +3,7 @@ const { updateLoadedExpressMethods, getPaymentMethods, } = require('./commons'); - -const AMAZON_PAY = 'amazonpay'; +const { AMAZON_PAY } = require('./constants'); async function mountAmazonPayComponent() { try { diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/applePayExpress.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/applePayExpress.js index 696599ddd..ebd0c3027 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/applePayExpress.js +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/applePayExpress.js @@ -7,25 +7,6 @@ let checkout; let shippingMethodsData; let paymentMethodsResponse; -async function initializeCheckout() { - paymentMethodsResponse = await getPaymentMethods(); - const shippingMethods = await fetch(window.shippingMethodsUrl); - shippingMethodsData = await shippingMethods.json(); - const applicationInfo = paymentMethodsResponse?.applicationInfo; - checkout = await AdyenCheckout({ - environment: window.environment, - clientKey: window.clientKey, - locale: window.locale, - analytics: { - analyticsData: { applicationInfo }, - }, - }); -} - -async function createApplePayButton(applePayButtonConfig) { - return checkout.create(APPLE_PAY, applePayButtonConfig); -} - function formatCustomerObject(customerData, billingData) { return { addressBook: { @@ -124,6 +105,61 @@ function callPaymentFromComponent(data, resolveApplePay, rejectApplePay) { }); } +function selectShippingMethod({ shipmentUUID, ID }) { + const request = { + paymentMethodType: APPLE_PAY, + shipmentUUID, + methodID: ID, + }; + return fetch(window.selectShippingMethodUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + }, + body: JSON.stringify(request), + }); +} + +function getShippingMethod(shippingContact) { + const request = { + paymentMethodType: APPLE_PAY, + }; + if (shippingContact) { + request.address = { + city: shippingContact.locality, + country: shippingContact.country, + countryCode: shippingContact.countryCode, + stateCode: shippingContact.administrativeArea, + postalCode: shippingContact.postalCode, + }; + } + return fetch(window.shippingMethodsUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + }, + body: JSON.stringify(request), + }); +} + +async function initializeCheckout() { + paymentMethodsResponse = await getPaymentMethods(); + const shippingMethods = await getShippingMethod(); + shippingMethodsData = await shippingMethods.json(); + const applicationInfo = paymentMethodsResponse?.applicationInfo; + checkout = await AdyenCheckout({ + environment: window.environment, + clientKey: window.clientKey, + locale: window.locale, + analytics: { + analyticsData: { applicationInfo }, + }, + }); +} + +async function createApplePayButton(applePayButtonConfig) { + return checkout.create(APPLE_PAY, applePayButtonConfig); +} initializeCheckout() .then(async () => { const applePayPaymentMethod = @@ -198,14 +234,8 @@ initializeCheckout() const matchingShippingMethod = shippingMethodsData.shippingMethods.find( (sm) => sm.ID === shippingMethod.identifier, ); - const calculationResponse = await fetch( - `${window.calculateAmountUrl}?${new URLSearchParams({ - shipmentUUID: matchingShippingMethod.shipmentUUID, - methodID: matchingShippingMethod.ID, - })}`, - { - method: 'POST', - }, + const calculationResponse = await selectShippingMethod( + matchingShippingMethod, ); if (calculationResponse.ok) { const newCalculation = await calculationResponse.json(); @@ -227,28 +257,14 @@ initializeCheckout() }, onShippingContactSelected: async (resolve, reject, event) => { const { shippingContact } = event; - const shippingMethods = await fetch( - `${window.shippingMethodsUrl}?${new URLSearchParams({ - city: shippingContact.locality, - country: shippingContact.country, - countryCode: shippingContact.countryCode, - stateCode: shippingContact.administrativeArea, - postalCode: shippingContact.postalCode, - })}`, - ); + const shippingMethods = await getShippingMethod(shippingContact); if (shippingMethods.ok) { shippingMethodsData = await shippingMethods.json(); if (shippingMethodsData.shippingMethods?.length) { const selectedShippingMethod = shippingMethodsData.shippingMethods[0]; - const calculationResponse = await fetch( - `${window.calculateAmountUrl}?${new URLSearchParams({ - shipmentUUID: selectedShippingMethod.shipmentUUID, - methodID: selectedShippingMethod.ID, - })}`, - { - method: 'POST', - }, + const calculationResponse = await selectShippingMethod( + selectedShippingMethod, ); if (calculationResponse.ok) { const shippingMethodsStructured = diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js new file mode 100644 index 000000000..6a33eb2da --- /dev/null +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js @@ -0,0 +1,41 @@ +const helpers = require('./adyen_checkout/helpers'); + +/** + * make payment details call for express payment methods from review page . + * @param data - state data from adyen checkout component + * @return {undefined} + */ +function makeExpressPaymentDetailsCall(data) { + $.ajax({ + type: 'POST', + url: window.makeExpressPaymentDetailsCall, + data: JSON.stringify({ data }), + contentType: 'application/json; charset=utf-8', + async: false, + success(response) { + helpers.setOrderFormData(response); + }, + error() { + $.spinner().stop(); + }, + }); +} + +/** + * initializes place order button on checkout review page. + * @return {undefined} + */ +function initCheckoutReviewButtons() { + $(document).ready(() => { + $("button[name='place-order']").click(() => { + $.spinner().start(); + const stateData = document.querySelector( + '#additionalDetailsHidden', + ).value; + makeExpressPaymentDetailsCall(JSON.parse(stateData)); + document.querySelector('#showConfirmationForm').submit(); + }); + }); +} + +initCheckoutReviewButtons(); diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js index 5b89aef32..8314e7d2d 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js @@ -1,4 +1,5 @@ const store = require('../../../../store'); +const { PAYPAL, APPLE_PAY, AMAZON_PAY } = require('../constants'); module.exports.onFieldValid = function onFieldValid(data) { if (data.endDigits) { @@ -34,8 +35,9 @@ module.exports.getPaymentMethods = async function getPaymentMethods() { module.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() { const expressMethodsConfig = { - applepay: window.isApplePayExpressEnabled === 'true', - amazonpay: window.isAmazonPayExpressEnabled === 'true', + [APPLE_PAY]: window.isApplePayExpressEnabled === 'true', + [AMAZON_PAY]: window.isAmazonPayExpressEnabled === 'true', + [PAYPAL]: window.isPayPalExpressEnabled === 'true', }; let enabledExpressMethods = []; Object.keys(expressMethodsConfig).forEach((key) => { diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js index ccc163818..4de7972c9 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js @@ -11,6 +11,8 @@ module.exports = { SCHEME: 'scheme', GIROPAY: 'giropay', APPLE_PAY: 'applepay', + PAYPAL: 'paypal', + AMAZON_PAY: 'amazonpay', ACTIONTYPE: { QRCODE: 'qrCode', }, diff --git a/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js new file mode 100644 index 000000000..fe25b39da --- /dev/null +++ b/src/cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js @@ -0,0 +1,225 @@ +const { + getPaymentMethods, + updateLoadedExpressMethods, + checkIfExpressMethodsAreReady, +} = require('./commons'); +const helpers = require('./adyen_checkout/helpers'); +const { PAYPAL } = require('./constants'); + +async function callPaymentFromComponent(data, component) { + try { + $.spinner().start(); + const response = await fetch(window.makeExpressPaymentsCall, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(data), + }); + const { action, errorMessage = '' } = await response.json(); + if (response.ok && action) { + component.handleAction(action); + } else { + throw new Error(errorMessage); + } + } catch (e) { + component.handleError(); + } +} + +async function saveShopperDetails(details, actions) { + return $.ajax({ + url: window.saveShopperData, + type: 'post', + data: { + shopperDetails: JSON.stringify(details), + }, + success() { + actions.resolve(); + }, + error() { + $.spinner().stop(); + }, + }); +} + +function redirectToReviewPage(data) { + const redirect = $('

').appendTo(document.body).attr({ + method: 'POST', + action: window.checkoutReview, + }); + $('') + .appendTo(redirect) + .attr({ + name: 'data', + value: JSON.stringify(data), + }); + + redirect.submit(); +} + +function makeExpressPaymentDetailsCall(data) { + return $.ajax({ + type: 'POST', + url: window.makeExpressPaymentDetailsCall, + data: JSON.stringify({ data }), + contentType: 'application/json; charset=utf-8', + async: false, + success(response) { + helpers.createShowConfirmationForm(window.showConfirmationAction); + helpers.setOrderFormData(response); + }, + error() { + $.spinner().stop(); + }, + }); +} + +async function updateComponent(response, component) { + if (response.ok) { + const { paymentData, status, errorMessage = '' } = await response.json(); + if (!paymentData || status !== 'success') { + throw new Error(errorMessage); + } + // Update the Component paymentData value with the new one. + component.updatePaymentData(paymentData); + } else { + const { errorMessage = '' } = await response.json(); + throw new Error(errorMessage); + } + return false; +} +async function handleShippingAddressChange(data, actions, component) { + try { + const { shippingAddress, errors } = data; + const currentPaymentData = component.paymentData; + if (!shippingAddress) { + throw new Error(errors?.ADDRESS_ERROR); + } + const request = { + paymentMethodType: PAYPAL, + currentPaymentData, + address: { + city: shippingAddress.city, + country: shippingAddress.country, + countryCode: shippingAddress.countryCode, + stateCode: shippingAddress.state, + postalCode: shippingAddress.postalCode, + }, + }; + const response = await fetch(window.shippingMethodsUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + }, + body: JSON.stringify(request), + }); + await updateComponent(response, component); + } catch (e) { + actions.reject(); + } + return false; +} + +async function handleShippingOptionChange(data, actions, component) { + try { + const { selectedShippingOption, errors } = data; + const currentPaymentData = component.paymentData; + if (!selectedShippingOption) { + throw new Error(errors?.METHOD_UNAVAILABLE); + } + const request = { + paymentMethodType: PAYPAL, + currentPaymentData, + methodID: selectedShippingOption?.id, + }; + const response = await fetch(window.selectShippingMethodUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + }, + body: JSON.stringify(request), + }); + await updateComponent(response, component); + } catch (e) { + actions.reject(); + } + return false; +} + +function getPaypalButtonConfig(paypalConfig) { + const { paypalReviewPageEnabled } = window; + return { + showPayButton: true, + configuration: paypalConfig, + returnUrl: window.returnUrl, + isExpress: true, + ...(paypalReviewPageEnabled ? { userAction: 'continue' } : {}), + onSubmit: async (state, component) => { + await callPaymentFromComponent(state.data, component); + }, + onError: async () => { + $.spinner().stop(); + }, + onShopperDetails: async (shopperDetails, rawData, actions) => { + await saveShopperDetails(shopperDetails, actions); + }, + onAdditionalDetails: (state) => { + if (paypalReviewPageEnabled) { + redirectToReviewPage(state.data); + } else { + makeExpressPaymentDetailsCall(state.data); + document.querySelector('#additionalDetailsHidden').value = + JSON.stringify(state.data); + document.querySelector('#showConfirmationForm').submit(); + } + }, + onShippingAddressChange: async (data, actions, component) => { + await handleShippingAddressChange(data, actions, component); + }, + onShippingOptionsChange: async (data, actions, component) => { + await handleShippingOptionChange(data, actions, component); + }, + }; +} + +async function mountPaypalComponent() { + try { + const paymentMethod = await getPaymentMethods(); + const paymentMethodsResponse = paymentMethod?.AdyenPaymentMethods; + const applicationInfo = paymentMethod?.applicationInfo; + const paypalConfig = paymentMethodsResponse?.paymentMethods.find( + (pm) => pm.type === PAYPAL, + )?.configuration; + if (!paypalConfig) return; + const checkout = await AdyenCheckout({ + environment: window.environment, + clientKey: window.clientKey, + locale: window.locale, + analytics: { + analyticsData: { applicationInfo }, + }, + }); + const paypalButtonConfig = getPaypalButtonConfig(paypalConfig); + const paypalExpressButton = checkout.create(PAYPAL, paypalButtonConfig); + paypalExpressButton.mount('#paypal-container'); + updateLoadedExpressMethods(PAYPAL); + checkIfExpressMethodsAreReady(); + } catch (e) { + // + } +} + +mountPaypalComponent(); + +module.exports = { + callPaymentFromComponent, + saveShopperDetails, + redirectToReviewPage, + makeExpressPaymentDetailsCall, + updateComponent, + handleShippingAddressChange, + handleShippingOptionChange, + getPaypalButtonConfig, + mountPaypalComponent, +}; diff --git a/src/cartridges/app_adyen_SFRA/cartridge/templates/default/adyen/checkoutReviewButtons.isml b/src/cartridges/app_adyen_SFRA/cartridge/templates/default/adyen/checkoutReviewButtons.isml new file mode 100644 index 000000000..cf4924988 --- /dev/null +++ b/src/cartridges/app_adyen_SFRA/cartridge/templates/default/adyen/checkoutReviewButtons.isml @@ -0,0 +1,23 @@ + + var assets = require('*/cartridge/scripts/assets.js'); + assets.addJs('/js/checkoutReviewButtons.js'); + assets.addCss('/css/checkout/checkout.css'); + + +
+
+
+ + + + + + + +
+
+
diff --git a/src/cartridges/app_adyen_SFRA/cartridge/templates/default/cart/checkoutButtons.isml b/src/cartridges/app_adyen_SFRA/cartridge/templates/default/cart/checkoutButtons.isml index b187a14c8..630c5db42 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/templates/default/cart/checkoutButtons.isml +++ b/src/cartridges/app_adyen_SFRA/cartridge/templates/default/cart/checkoutButtons.isml @@ -43,9 +43,9 @@
+ +
+
+ ${Resource.msgf('label.number.items.in.cart','cart', null, pdict.order.items.totalQuantity)} + ${pdict.order.totals.subTotal} +
+
+
+
+ + + +
+
+

${Resource.msg('heading.checkout.customer', 'checkout', null)}

+
+
+ +
+
+
+ + +
+
+

${Resource.msg('heading.checkout.shipping', 'checkout', null)}

+
+
+ +
+
+ + +
+
+

${Resource.msg('heading.payment', 'checkout', null)}

+
+ +
+ +
+
+ +
+ + + + +
+ +
+
+

${Resource.msg('heading.order.summary', 'checkout', null)}

+
+
+ +
+
+ + +
+
+
+ + diff --git a/src/cartridges/app_adyen_SFRA/cartridge/templates/resources/adyen.properties b/src/cartridges/app_adyen_SFRA/cartridge/templates/resources/adyen.properties index ef57083a9..4af6b7d5c 100644 --- a/src/cartridges/app_adyen_SFRA/cartridge/templates/resources/adyen.properties +++ b/src/cartridges/app_adyen_SFRA/cartridge/templates/resources/adyen.properties @@ -16,3 +16,5 @@ myAccount.SaveCard=Please add a new payment instrument through the checkout terminal.selectTerminal=Please select your terminal terminal.noTerminals=There are no terminals connected adyen.paymentFailed=Payment failed, please try again. +button.submit.checkout.review=Place Order +title.checkout.review=Checkout Review diff --git a/src/cartridges/bm_adyen/cartridge/static/default/css/configurationSettings.css b/src/cartridges/bm_adyen/cartridge/static/default/css/configurationSettings.css index bad57ac55..6cf3d0a85 100644 --- a/src/cartridges/bm_adyen/cartridge/static/default/css/configurationSettings.css +++ b/src/cartridges/bm_adyen/cartridge/static/default/css/configurationSettings.css @@ -65,7 +65,6 @@ padding-right: 51px; } - .form-check-input, .form-check-label{ width: 26px; height: 20px; @@ -240,7 +239,7 @@ html { #saveChangesAlert{ width: 420px; left: 0; - margin: auto; // Centers alert component + margin: auto; /* Centers alert component */ right: 0; text-align: center; top: 1em; @@ -276,8 +275,8 @@ html { #notSavedChangesAlert{ left: 0; - margin: auto; // Centers alert component - position: absolute; // So that it will display relative to the entire page + margin: auto; /* Centers alert component */ + position: absolute; /* So that it will display relative to the entire page */ right: 0; text-align: center; top: 1em; @@ -460,7 +459,8 @@ ul{ .draggable { cursor: move; display: flex; - align-items: center; + flex-direction: column; + align-items: flex-start; /* Align items to the start */ justify-content: space-between; padding: 15px; flex: 1; @@ -468,8 +468,7 @@ ul{ } .draggable .switch-button { - position: initial; - left: 95.5%; + left: 89%; } .draggable .title { @@ -513,3 +512,18 @@ ul{ font-style: normal; font-size: 14px; } + +.additional-item-container { + display: flex; + align-items: center; + margin-top: 10px; +} + +.additional-item-container .additional-switch-button{ + position: absolute; + left: 89%; +} + +.additional-item{ + margin-left: 48px; +} diff --git a/src/cartridges/bm_adyen/cartridge/static/default/icons/paypal.svg b/src/cartridges/bm_adyen/cartridge/static/default/icons/paypal.svg new file mode 100644 index 000000000..1b9444423 --- /dev/null +++ b/src/cartridges/bm_adyen/cartridge/static/default/icons/paypal.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/cartridges/bm_adyen/cartridge/static/default/js/adyenSettings.js b/src/cartridges/bm_adyen/cartridge/static/default/js/adyenSettings.js index 7cc758c4f..33d2c244f 100644 --- a/src/cartridges/bm_adyen/cartridge/static/default/js/adyenSettings.js +++ b/src/cartridges/bm_adyen/cartridge/static/default/js/adyenSettings.js @@ -13,6 +13,18 @@ const expressPaymentMethods = [ icon: window.amazonPayIcon, checked: window.isAmazonPayEnabled, }, + { + id: 'paypal', + name: 'PayPalExpress_Enabled', + text: 'PayPal', + icon: window.paypalIcon, + checked: window.isPayPalExpressEnabled, + reviewPage: window.isPayPalExpressReviewPageEnabled, + additionalField: { + name: 'PayPalExpress_ReviewPage_Enabled', + text: 'Show shopper order review page', + }, + }, ]; document.addEventListener('DOMContentLoaded', () => { @@ -152,6 +164,25 @@ document.addEventListener('DOMContentLoaded', () => { const listItem = document.createElement('li'); listItem.setAttribute('data-index', index.toString()); + let additionalFieldHtml = ''; + if (item.additionalField) { + additionalFieldHtml = ` +
+

${item.additionalField.text}

+
+
+ +
+
+
+ `; + } + listItem.innerHTML = `
@@ -174,6 +205,7 @@ document.addEventListener('DOMContentLoaded', () => { >
+ ${additionalFieldHtml}
`; diff --git a/src/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/epmSettings.isml b/src/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/epmSettings.isml index b6d28d69e..5e0a81c31 100644 --- a/src/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/epmSettings.isml +++ b/src/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/epmSettings.isml @@ -4,9 +4,12 @@ window.dragIcon = "${URLUtils.staticURL('icons/drag.svg')}"; window.applePayIcon = "${URLUtils.staticURL('icons/applepay.svg')}"; window.amazonPayIcon = "${URLUtils.staticURL('icons/amazonpay.svg')}"; + window.paypalIcon = "${URLUtils.staticURL('icons/paypal.svg')}"; window.isApplePayEnabled = ${AdyenConfigs.isApplePayExpressEnabled() || false}; window.isAmazonPayEnabled = ${AdyenConfigs.isAmazonPayExpressEnabled() || false}; + window.isPayPalExpressEnabled = ${AdyenConfigs.isPayPalExpressEnabled() || false}; + window.isPayPalExpressReviewPageEnabled = ${AdyenConfigs.isPayPalExpressReviewPageEnabled() || false}; window.expressMethodsOrder = "${AdyenConfigs.getExpressPaymentsOrder()}";
diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js index bbb8c8750..c0f418e29 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js @@ -32,6 +32,7 @@ module.exports = { PAYMENTMETHODS: { APPLEPAY: 'applepay', AMAZONPAY: 'amazonpay', + PAYPAL: 'paypal', }, CAN_SKIP_SUMMARY_PAGE: ['applepay', 'cashapp'], @@ -47,6 +48,7 @@ module.exports = { CHECKBALANCE: 'AdyenCheckBalance', CANCELPARTIALPAYMENTORDER: 'AdyenCancelPartialPaymentOrder', PARTIALPAYMENTSORDER: 'AdyenPartialPaymentsOrder', + PAYPALUPDATEORDER: 'AdyenPaypalUpdateOrder', }, CONTRACT: { ONECLICK: 'ONECLICK', diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/logs/adyenCustomLogs.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/logs/adyenCustomLogs.js index cbae1a2d4..96dc8de43 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/logs/adyenCustomLogs.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/logs/adyenCustomLogs.js @@ -1,19 +1,21 @@ const Logger = require('dw/system/Logger'); -function fatal_log(msg) { - return Logger.getLogger('Adyen_fatal', 'Adyen').fatal(msg); +function fatal_log(msg, error) { + const logMsg = [msg, error?.toString(), error?.stack].join('\n').trim(); + Logger.getLogger('Adyen_fatal', 'Adyen').fatal(logMsg); } -function error_log(msg) { - return Logger.getLogger('Adyen_error', 'Adyen').error(msg); +function error_log(msg, error) { + const logMsg = [msg, error?.toString(), error?.stack].join('\n').trim(); + Logger.getLogger('Adyen_error', 'Adyen').error(logMsg); } function debug_log(msg) { - return Logger.getLogger('Adyen_debug', 'Adyen').debug(msg); + Logger.getLogger('Adyen_debug', 'Adyen').debug(msg); } function info_log(msg) { - return Logger.getLogger('Adyen_info', 'Adyen').info(msg); + Logger.getLogger('Adyen_info', 'Adyen').info(msg); } module.exports = { diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/__tests__/selectShippingMethods.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/__tests__/selectShippingMethods.test.js index 9feb161ac..885126b55 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/__tests__/selectShippingMethods.test.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/__tests__/selectShippingMethods.test.js @@ -13,10 +13,7 @@ describe('callSelectShippingMethod', () => { jest.clearAllMocks(); req = { - querystring: { - }, - form: { - }, + body: JSON.stringify({}) }; res = { @@ -26,6 +23,10 @@ describe('callSelectShippingMethod', () => { next = jest.fn(); }); + afterEach(() => { + jest.clearAllMocks(); + }) + it('should handle the case when there is no current basket', () => { currentBasket = BasketMgr.getCurrentBasket.mockReturnValueOnce(null); callSelectShippingMethod(req, res, next); @@ -37,13 +38,13 @@ describe('callSelectShippingMethod', () => { }); it('should handle the case when there is an error selecting the shipping method', () => { - req.querystring.shipmentUUID = 'mocked_uuid'; + req.body = JSON.stringify({shipmentUUID: 'mocked_uuid'}); currentBasket = { defaultShipment: {}, }; BasketMgr.getCurrentBasket.mockReturnValueOnce(currentBasket.defaultShipment); shippingHelper.getShipmentByUUID.mockReturnValueOnce(currentBasket.defaultShipment); - + callSelectShippingMethod(req, res, next); expect(res.setStatusCode).toHaveBeenCalledWith(500); @@ -75,8 +76,8 @@ describe('callSelectShippingMethod', () => { someMethod: jest.fn(), }; CartModel.mockReturnValueOnce(basketModelInstance); - - callSelectShippingMethod(req, res, next); + + callSelectShippingMethod(req, res, next); expect(res.json).toHaveBeenCalledWith({ ...basketModelInstance, diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/__tests__/shippingMethods.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/__tests__/shippingMethods.test.js index 44fbf2982..dc170df23 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/__tests__/shippingMethods.test.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/__tests__/shippingMethods.test.js @@ -13,22 +13,19 @@ beforeEach(() => { jest.clearAllMocks(); req = { - querystring: { + body: JSON.stringify({address:{ city: 'Amsterdam', countryCode: 'NL', stateCode: 'AMS', postalCode: '1001', shipmentUUID: 'mocked_uuid', - }, - locale: { id: 'nl_NL' }, - form: { - methodID: 'mocked_methodID', - }, + }}), }; res = { redirect: jest.fn(), json: jest.fn(), + setStatusCode: jest.fn(), }; }); @@ -39,6 +36,25 @@ afterEach(() => { describe('Shipping methods', () => { it('Should return available shipping methods', () => { const Logger = require('../../../../../../../../jest/__mocks__/dw/system/Logger'); + currentBasket = { + getDefaultShipment: jest.fn(() => { + return { + shippingAddress: { + setCity: jest.fn(), + setPostalCode: jest.fn(), + setStateCode: jest.fn(), + setCountryCode: jest.fn(), + }} + }), + getTotalGrossPrice: jest.fn(() => { + return { + currencyCode: 'EUR', + value: '1000' + } + }), + updateTotals: jest.fn(), + }; + BasketMgr.getCurrentBasket.mockReturnValueOnce(currentBasket); callGetShippingMethods(req, res, next); expect(AdyenHelper.getApplicableShippingMethods).toHaveBeenCalledTimes(1); expect(res.json).toHaveBeenCalledWith({ @@ -53,8 +69,14 @@ describe('Shipping methods', () => { new Logger.error('error'), ); callGetShippingMethods(req, res, next); - expect(res.json).not.toHaveBeenCalled(); + expect(res.setStatusCode).toHaveBeenCalledWith(500); + expect(res.json).toHaveBeenCalledWith({ + errorMessage: 'mocked_error.cannot.find.shipping.methods', + }); + expect(next).toHaveBeenCalled(); }); +}); + it('Should update shipping address for the basket', () => { const Logger = require('../../../../../../../../jest/__mocks__/dw/system/Logger'); const setCityMock = jest.fn() @@ -79,4 +101,4 @@ describe('Shipping methods', () => { expect(setCountryCodeMock).toHaveBeenCalledWith('NL'); expect(Logger.error.mock.calls.length).toBe(0); }); -}); \ No newline at end of file + diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/handleCheckoutReview.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/handleCheckoutReview.test.js new file mode 100644 index 000000000..e5e39982a --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/handleCheckoutReview.test.js @@ -0,0 +1,91 @@ +/* eslint-disable global-require */ +const BasketMgr = require('dw/order/BasketMgr'); +const URLUtils = require('dw/web/URLUtils'); +const validationHelpers = require('*/cartridge/scripts/helpers/basketValidationHelpers'); +const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); + +let res; +let req; +const next = jest.fn(); + +const handleCheckoutReview = require('../handleCheckoutReview'); + +beforeEach(() => { + jest.clearAllMocks(); + currentBasket = { + getPaymentInstruments: jest.fn(() => ([{ + custom: { adyenPaymentMethod: '' } + }])), + }; + + req = { + form: { + data: JSON.stringify({details: 'test_paymentsDetails'}), + }, + currentCustomer: { + raw: '' + }, + locale: { + id: 'NL' + }, + session: { + privacyCache: { + get: jest.fn() + } + } + }; + + res = { + redirect: jest.fn(), + render: jest.fn(), + setStatusCode: jest.fn(), + }; + AdyenLogs.error_log = jest.fn(); + URLUtils.url =jest.fn(); + BasketMgr.getCurrentBasket.mockReturnValueOnce(currentBasket); +}); + +afterEach(() => { + jest.resetModules(); +}); + +describe('Checkout Review controller', () => { + it('Should return Checkout Review page', () => { + handleCheckoutReview(req, res, next); + expect(res.render.mock.calls[0][0]).toBe('cart/checkoutReview'); + expect(res.render.mock.calls[0][1]).toMatchObject( { + data: '{"details":"test_paymentsDetails"}', + showConfirmationUrl: expect.anything(), + order: expect.anything(), + customer: expect.anything(), + } + ) + expect(AdyenLogs.error_log).not.toHaveBeenCalled(); + expect(next).toHaveBeenCalled(); + }); + + it('Should fail returning Checkout Review page when no state data is submitted', () => { + req.form = ''; + handleCheckoutReview(req, res, next); + expect(AdyenLogs.error_log).toHaveBeenCalledTimes(1); + expect(res.redirect).toHaveBeenCalledTimes(1) + expect(URLUtils.url).toHaveBeenCalledWith("Error-ErrorCode", "err", "general"); + expect(next).toHaveBeenCalled(); + }); + it('Should redirect to Cart if there is no current Basket', () => { + BasketMgr.getCurrentBasket = jest.fn().mockImplementationOnce(() => ('')) + handleCheckoutReview(req, res, next); + expect(res.redirect).toHaveBeenCalledTimes(1) + expect(URLUtils.url).toHaveBeenCalledWith("Cart-Show"); + expect(AdyenLogs.error_log).not.toHaveBeenCalled(); + expect(next).toHaveBeenCalled(); + }); + it('Should redirect to Cart if product validation fails', () => { + validationHelpers.validateProducts = jest.fn(() => ({error: true})) + handleCheckoutReview(req, res, next); + expect(res.redirect).toHaveBeenCalledTimes(1) + expect(URLUtils.url).toHaveBeenCalledWith("Cart-Show"); + expect(AdyenLogs.error_log).not.toHaveBeenCalled(); + expect(next).toHaveBeenCalled(); + }); +}); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/makeExpressPaymentDetailsCall.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/makeExpressPaymentDetailsCall.test.js new file mode 100644 index 000000000..75dd0cf47 --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/makeExpressPaymentDetailsCall.test.js @@ -0,0 +1,57 @@ +/* eslint-disable global-require */ +const URLUtils = require('dw/web/URLUtils'); +const COHelpers = require('*/cartridge/scripts/checkout/checkoutHelpers'); +const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +const adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); + +let res; +let req; +const next = jest.fn(); + +const makeExpressPaymentDetailsCall = require('../makeExpressPaymentDetailsCall'); + +beforeEach(() => { + jest.clearAllMocks(); + req = { + body: JSON.stringify({data: {}}) + }; + + res = { + redirect: jest.fn(), + json: jest.fn(), + setStatusCode: jest.fn(), + }; + AdyenLogs.error_log = jest.fn(); + AdyenLogs.fatal_log = jest.fn(); + URLUtils.url = jest.fn(); +}); + +afterEach(() => { + jest.resetModules(); +}); + +describe('Express Payment Details controller', () => { + it('Should return response when payment details call is successful', () => { + makeExpressPaymentDetailsCall(req, res, next); + expect(res.json).toHaveBeenCalledWith({"orderNo": "mocked_orderNo", "orderToken": "mocked_orderToken"}); + expect(AdyenLogs.error_log).not.toHaveBeenCalled(); + expect(next).toHaveBeenCalled(); + }); + + it('Should return error response when payment details call is not successful', () => { + adyenCheckout.doPaymentsDetailsCall = jest.fn().mockImplementationOnce(() => {throw new Error('unexpected mock error')}); + makeExpressPaymentDetailsCall(req, res, next); + expect(AdyenLogs.error_log).toHaveBeenCalledTimes(1); + expect(res.redirect).toHaveBeenCalledTimes(1); + expect(URLUtils.url).toHaveBeenCalledWith('Error-ErrorCode', 'err', 'general'); + expect(next).toHaveBeenCalled(); + }); + it('Should return error response when place Order is not successful', () => { + COHelpers.placeOrder = jest.fn(() => ({error: true})) + makeExpressPaymentDetailsCall(req, res, next); + expect(AdyenLogs.error_log).toHaveBeenCalledTimes(1); + expect(res.redirect).toHaveBeenCalledTimes(1); + expect(URLUtils.url).toHaveBeenCalledWith('Error-ErrorCode', 'err', 'general'); + expect(next).toHaveBeenCalled(); + }); +}); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/makeExpressPaymentsCall.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/makeExpressPaymentsCall.test.js new file mode 100644 index 000000000..d202459e8 --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/makeExpressPaymentsCall.test.js @@ -0,0 +1,46 @@ +/* eslint-disable global-require */ +const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +const adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); + +let res; +let req; +const next = jest.fn(); + +const makeExpressPaymentsCall = require('../makeExpressPaymentsCall'); + +beforeEach(() => { + jest.clearAllMocks(); + req = { + body: JSON.stringify({}) + }; + + res = { + redirect: jest.fn(), + json: jest.fn(), + setStatusCode: jest.fn(), + }; + AdyenLogs.error_log = jest.fn(); + AdyenLogs.fatal_log = jest.fn(); +}); + +afterEach(() => { + jest.resetModules(); +}); + +describe('Express Payments controller', () => { + it('Should return response when payments call is successful', () => { + makeExpressPaymentsCall(req, res, next); + expect(res.json).toHaveBeenCalledWith({"pspReference": "mocked_pspReference"}); + expect(AdyenLogs.error_log).not.toHaveBeenCalled(); + expect(next).toHaveBeenCalled(); + }); + + it('Should return error response when payments call is not successful', () => { + adyenCheckout.doPaymentsCall = jest.fn(() => {throw new Error('unexpected mock error')}); + makeExpressPaymentsCall(req, res, next); + expect(AdyenLogs.fatal_log).toHaveBeenCalledTimes(1); + expect(res.json).toHaveBeenCalledWith({"errorMessage": "mocked_error.express.paypal.payments"}) + expect(res.setStatusCode).toHaveBeenCalledWith(500); + expect(next).toHaveBeenCalled(); + }); +}); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/saveShopperData.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/saveShopperData.test.js new file mode 100644 index 000000000..1d9588311 --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/__tests__/saveShopperData.test.js @@ -0,0 +1,46 @@ +/* eslint-disable global-require */ +const URLUtils = require('dw/web/URLUtils'); +const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); + +let res; +let req; +const next = jest.fn(); + +const saveShopperData = require('../saveShopperData'); + +beforeEach(() => { + jest.clearAllMocks(); + req = { + form: {shopperDetails: JSON.stringify({})} + }; + + res = { + redirect: jest.fn(), + json: jest.fn(), + setStatusCode: jest.fn(), + }; + AdyenLogs.error_log = jest.fn(); + URLUtils.url = jest.fn(); +}); + +afterEach(() => { + jest.resetModules(); +}); + +describe('Save Shopper controller', () => { + it('Should return response when Save Shopper call is successful', () => { + saveShopperData(req, res, next); + expect(res.json).toHaveBeenCalledWith({"success": true}); + expect(AdyenLogs.error_log).not.toHaveBeenCalled(); + expect(next).toHaveBeenCalled(); + }); + + it('Should return response when Save Shopper call is not successful', () => { + res.json = jest.fn(() => {throw new Error('unexpected mock error')}); + saveShopperData(req, res, next); + expect(AdyenLogs.error_log).toHaveBeenCalledTimes(1); + expect(res.redirect).toHaveBeenCalledTimes(1); + expect(URLUtils.url).toHaveBeenCalledWith('Error-ErrorCode', 'err', 'general'); + expect(next).toHaveBeenCalled(); + }); +}); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview.js new file mode 100644 index 000000000..12b55162b --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview.js @@ -0,0 +1,90 @@ +const URLUtils = require('dw/web/URLUtils'); +const BasketMgr = require('dw/order/BasketMgr'); +const Locale = require('dw/util/Locale'); +const Transaction = require('dw/system/Transaction'); +const AccountModel = require('*/cartridge/models/account'); +const OrderModel = require('*/cartridge/models/order'); +const validationHelpers = require('*/cartridge/scripts/helpers/basketValidationHelpers'); +const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); +const paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); + +/** + * Sets Shipping and Billing address for the basket, + * also updated payment method on the paymentInstrument of Basket. + * @param {dw.order.Basket} currentBasket - the current basket + * @param {sfra.Request} req - request object + * @returns {undefined} + */ +function updateCurrentBasket(currentBasket, req) { + const { details } = JSON.parse(req.form.data); + if (currentBasket.shipments?.length <= 1) { + req.session.privacyCache.set('usingMultiShipping', false); + } + + paypalHelper.setBillingAndShippingAddress(currentBasket); + + const paymentInstrument = currentBasket.getPaymentInstruments()[0]; + Transaction.wrap(() => { + paymentInstrument.custom.adyenPaymentMethod = + AdyenHelper.getAdyenComponentType(details?.paymentSource); + }); +} + +/** + * Controller for the checkout review page for express payment methods + * @param {sfra.Request} req - request + * @param {sfra.Response} res - response + * @param {sfra.Next} next - next + * @returns {sfra.Next} next - next + */ +function handleCheckoutReview(req, res, next) { + try { + if (!req.form.data) { + throw new Error('State data not present in the request'); + } + const currentBasket = BasketMgr.getCurrentBasket(); + if (!currentBasket) { + res.redirect(URLUtils.url('Cart-Show')); + return next(); + } + + const validatedProducts = validationHelpers.validateProducts(currentBasket); + if (validatedProducts.error) { + res.redirect(URLUtils.url('Cart-Show')); + return next(); + } + + updateCurrentBasket(currentBasket, req); + + const currentCustomer = req.currentCustomer.raw; + const currentLocale = Locale.getLocale(req.locale.id); + const usingMultiShipping = + req.session.privacyCache.get('usingMultiShipping'); + + const orderModel = new OrderModel(currentBasket, { + customer: currentCustomer, + usingMultiShipping, + shippable: true, + countryCode: currentLocale.country, + containerView: 'basket', + }); + + const accountModel = new AccountModel(req.currentCustomer); + + res.render('cart/checkoutReview', { + data: req.form.data, + showConfirmationUrl: URLUtils.https( + 'Adyen-ShowConfirmationPaymentFromComponent', + ), + order: orderModel, + customer: accountModel, + }); + } catch (error) { + AdyenLogs.error_log('Could not render checkout review page', error); + res.redirect(URLUtils.url('Error-ErrorCode', 'err', 'general')); + } + return next(); +} + +module.exports = handleCheckoutReview; diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall.js new file mode 100644 index 000000000..1c77030eb --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall.js @@ -0,0 +1,69 @@ +const URLUtils = require('dw/web/URLUtils'); +const OrderMgr = require('dw/order/OrderMgr'); +const Transaction = require('dw/system/Transaction'); +const BasketMgr = require('dw/order/BasketMgr'); +const adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); +const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +const COHelpers = require('*/cartridge/scripts/checkout/checkoutHelpers'); +const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); +const paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); +const constants = require('*/cartridge/adyen/config/constants'); + +function setPaymentInstrumentFields(paymentInstrument, response) { + paymentInstrument.custom.adyenPaymentMethod = + AdyenHelper.getAdyenComponentType(response.paymentMethod.type); + paymentInstrument.custom[`${constants.OMS_NAMESPACE}__Adyen_Payment_Method`] = + AdyenHelper.getAdyenComponentType(response.paymentMethod.type); + paymentInstrument.custom.Adyen_Payment_Method_Variant = + response.paymentMethod.type.toLowerCase(); + paymentInstrument.custom[ + `${constants.OMS_NAMESPACE}__Adyen_Payment_Method_Variant` + ] = response.paymentMethod.type.toLowerCase(); +} + +/* + * Makes a payment details call to Adyen to confirm the current status of a payment. + It is currently used only for PayPal Express Flow + */ +function makeExpressPaymentDetailsCall(req, res, next) { + try { + const request = JSON.parse(req.body); + const currentBasket = BasketMgr.getCurrentBasket(); + + const response = adyenCheckout.doPaymentsDetailsCall(request.data); + + paypalHelper.setBillingAndShippingAddress(currentBasket); + + // Setting the session variable to null after assigning the shopper data to basket level + session.privacy.shopperDetails = null; + + const order = OrderMgr.createOrder( + currentBasket, + session.privacy.paypalExpressOrderNo, + ); + const fraudDetectionStatus = { status: 'success' }; + const placeOrderResult = COHelpers.placeOrder(order, fraudDetectionStatus); + if (placeOrderResult.error) { + throw new Error('Failed to place the PayPal express order'); + } + + response.orderNo = order.orderNo; + response.orderToken = order.orderToken; + const paymentInstrument = order.getPaymentInstruments( + AdyenHelper.getOrderMainPaymentInstrumentType(order), + )[0]; + // Storing the paypal express response to make use of show confirmation logic + Transaction.wrap(() => { + order.custom.Adyen_paypalExpressResponse = JSON.stringify(response); + setPaymentInstrumentFields(paymentInstrument, response); + }); + res.json({ orderNo: response.orderNo, orderToken: response.orderToken }); + return next(); + } catch (error) { + AdyenLogs.error_log('Could not verify express /payment/details:', error); + res.redirect(URLUtils.url('Error-ErrorCode', 'err', 'general')); + return next(); + } +} + +module.exports = makeExpressPaymentDetailsCall; diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall.js new file mode 100644 index 000000000..8065c7996 --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall.js @@ -0,0 +1,66 @@ +const BasketMgr = require('dw/order/BasketMgr'); +const PaymentMgr = require('dw/order/PaymentMgr'); +const OrderMgr = require('dw/order/OrderMgr'); +const Transaction = require('dw/system/Transaction'); +const Resource = require('dw/web/Resource'); +const adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); +const constants = require('*/cartridge/adyen/config/constants'); +const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); +const paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); + +function makeExpressPaymentsCall(req, res, next) { + try { + const currentBasket = BasketMgr.getCurrentBasket(); + let paymentInstrument; + Transaction.wrap(() => { + currentBasket.removeAllPaymentInstruments(); + paymentInstrument = currentBasket.createPaymentInstrument( + constants.METHOD_ADYEN_COMPONENT, + currentBasket.getAdjustedMerchandizeTotalGrossPrice(), + ); + const { paymentProcessor } = PaymentMgr.getPaymentMethod( + paymentInstrument.paymentMethod, + ); + paymentInstrument.paymentTransaction.paymentProcessor = paymentProcessor; + paymentInstrument.custom.adyenPaymentData = req.body; + }); + // creates order number to be utilized for PayPal express + const paypalExpressOrderNo = OrderMgr.createOrderNo(); + // Create request object with payment details + const paymentRequest = AdyenHelper.createAdyenRequestObject( + paypalExpressOrderNo, + null, + paymentInstrument, + ); + paymentRequest.amount = { + currency: paymentInstrument.paymentTransaction.amount.currencyCode, + value: AdyenHelper.getCurrencyValueForApi( + paymentInstrument.paymentTransaction.amount, + ).getValueOrNull(), + }; + paymentRequest.lineItems = paypalHelper.getLineItems({ + Basket: currentBasket, + }); + let result; + Transaction.wrap(() => { + result = adyenCheckout.doPaymentsCall( + null, + paymentInstrument, + paymentRequest, + ); + }); + session.privacy.paypalExpressOrderNo = paypalExpressOrderNo; + session.privacy.pspReference = result.pspReference; + res.json(result); + } catch (error) { + AdyenLogs.fatal_log('Paypal express payments request failed', error); + res.setStatusCode(500); + res.json({ + errorMessage: Resource.msg('error.express.paypal.payments', 'cart', null), + }); + } + return next(); +} + +module.exports = makeExpressPaymentsCall; diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData.js new file mode 100644 index 000000000..f2d3571d4 --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData.js @@ -0,0 +1,17 @@ +const URLUtils = require('dw/web/URLUtils'); +const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); + +function saveShopperData(req, res, next) { + try { + const shopperDetails = JSON.parse(req.form.shopperDetails); + session.privacy.shopperDetails = JSON.stringify(shopperDetails); + res.json({ success: true }); + return next(); + } catch (error) { + AdyenLogs.error_log('Failed to save the shopper details:', error); + res.redirect(URLUtils.url('Error-ErrorCode', 'err', 'general')); + return next(); + } +} + +module.exports = saveShopperData; diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails.js index c53b0a9c2..123e99957 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails.js @@ -64,8 +64,10 @@ function saveExpressShopperDetails(req, res, next) { JSON.stringify(shopperDetails); }); setBillingAndShippingAddress(currentBasket); - const shippingMethods = AdyenHelper.callGetShippingMethods( - shopperDetails.shippingAddress, + const { shippingAddress } = currentBasket.getDefaultShipment(); + const shippingMethods = AdyenHelper.getApplicableShippingMethods( + currentBasket.getDefaultShipment(), + shippingAddress, ); res.json({ shippingMethods }); return next(); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/selectShippingMethods.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/selectShippingMethods.js index ba5d3cfe9..2c197c57a 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/selectShippingMethods.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/selectShippingMethods.js @@ -5,6 +5,11 @@ const URLUtils = require('dw/web/URLUtils'); const CartModel = require('*/cartridge/models/cart'); const shippingHelper = require('*/cartridge/scripts/checkout/shippingHelpers'); const basketCalculationHelpers = require('*/cartridge/scripts/helpers/basketCalculationHelpers'); +const { PAYMENTMETHODS } = require('*/cartridge/adyen/config/constants'); +const adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); +const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); +const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +const paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); /** * Make a request to Adyen to select shipping methods @@ -21,37 +26,56 @@ function callSelectShippingMethod(req, res, next) { return next(); } + try { + const { shipmentUUID, methodID, currentPaymentData, paymentMethodType } = + JSON.parse(req.body); + let shipment; + if (shipmentUUID) { + shipment = shippingHelper.getShipmentByUUID(currentBasket, shipmentUUID); + } else { + shipment = currentBasket.defaultShipment; + } - let error = false; - - const shipUUID = req.querystring.shipmentUUID || req.form.shipmentUUID; - const methodID = req.querystring.methodID || req.form.methodID; - let shipment; - if (shipUUID) { - shipment = shippingHelper.getShipmentByUUID(currentBasket, shipUUID); - } else { - shipment = currentBasket.defaultShipment; - } + Transaction.wrap(() => { + shippingHelper.selectShippingMethod(shipment, methodID); - Transaction.wrap(() => { - shippingHelper.selectShippingMethod(shipment, methodID); + if (currentBasket && !shipment.shippingMethod) { + throw new Error( + `cannot set shippingMethod: ${methodID} for shipment:${shipment?.UUID}`, + ); + } - if (currentBasket && !shipment.shippingMethod) { - error = true; - return; + basketCalculationHelpers.calculateTotals(currentBasket); + }); + let response = {}; + if (paymentMethodType === PAYMENTMETHODS.PAYPAL) { + const currentShippingMethodsModels = + AdyenHelper.getApplicableShippingMethods(shipment); + if (!currentShippingMethodsModels?.length) { + throw new Error('No applicable shipping methods found'); + } + const paypalUpdateOrderResponse = adyenCheckout.doPaypalUpdateOrderCall( + paypalHelper.createPaypalUpdateOrderRequest( + session.privacy.pspReference, + currentBasket, + currentShippingMethodsModels, + currentPaymentData, + ), + ); + AdyenLogs.info_log( + `Paypal Order Update Call: ${paypalUpdateOrderResponse.status}`, + ); + response = { ...response, ...paypalUpdateOrderResponse }; } - - basketCalculationHelpers.calculateTotals(currentBasket); - }); - - if (!error) { const basketModel = new CartModel(currentBasket); const grandTotalAmount = { value: currentBasket.getTotalGrossPrice().value, currency: currentBasket.getTotalGrossPrice().currencyCode, }; - res.json({ ...basketModel, grandTotalAmount }); - } else { + response = { ...response, ...basketModel, grandTotalAmount }; + res.json(response); + } catch (error) { + AdyenLogs.error_log('Failed to set shipping method', error); res.setStatusCode(500); res.json({ errorMessage: Resource.msg( diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js index b9e95ad76..186928bbf 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js @@ -1,65 +1,84 @@ const BasketMgr = require('dw/order/BasketMgr'); const Transaction = require('dw/system/Transaction'); +const Resource = require('dw/web/Resource'); +const URLUtils = require('dw/web/URLUtils'); const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); +const { PAYMENTMETHODS } = require('*/cartridge/adyen/config/constants'); +const adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); +const paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); -const addressMapping = { - city: 'setCity', - countryCode: 'setCountryCode', - stateCode: 'setStateCode', - postalCode: 'setPostalCode', -}; - -/** - * Sets address properties for express PM - * @param {dw.order.shippingAddress} shippingAddress - shippingAddress for the default shipment - * @param {object} inputAddress - address coming from the input field based on shopper selection - * @param {object} mapping - address mapping between property and setter for that property - */ -function setAddressProperties(shippingAddress, inputAddress, mapping) { - Object.keys(inputAddress).forEach((key) => { - if (inputAddress[key] && mapping[key]) { - shippingAddress[mapping[key]](inputAddress[key]); - } - }); -} - -/** - * Make a request to Adyen to get shipping methods - */ -function callGetShippingMethods(req, res, next) { - try { - let address = null; - if (req.querystring) { - address = { - city: req.querystring.city, - countryCode: req.querystring.countryCode, - stateCode: req.querystring.stateCode, - postalCode: req.querystring.postalCode, - }; - } - const currentBasket = BasketMgr.getCurrentBasket(); - const shipment = currentBasket.getDefaultShipment(); +function updateShippingAddress(currentBasket, address) { + if (address) { + let { shippingAddress } = currentBasket.getDefaultShipment(); Transaction.wrap(() => { - let { shippingAddress } = shipment; if (!shippingAddress) { shippingAddress = currentBasket .getDefaultShipment() .createShippingAddress(); } - if (address) { - setAddressProperties(shippingAddress, address, addressMapping); - } + shippingAddress.setCity(address?.city); + shippingAddress.setPostalCode(address?.postalCode); + shippingAddress.setStateCode(address?.stateCode); + shippingAddress.setCountryCode(address?.countryCode); }); + } +} +/** + * Make a request to Adyen to get shipping methods + */ +function callGetShippingMethods(req, res, next) { + try { + const { address, currentPaymentData, paymentMethodType } = JSON.parse( + req.body, + ); + const currentBasket = BasketMgr.getCurrentBasket(); + if (!currentBasket) { + res.json({ + error: true, + redirectUrl: URLUtils.url('Cart-Show').toString(), + }); + + return next(); + } + updateShippingAddress(currentBasket, address); + currentBasket.updateTotals(); const currentShippingMethodsModels = - AdyenHelper.getApplicableShippingMethods(shipment, address); - res.json({ - shippingMethods: currentShippingMethodsModels, - }); + AdyenHelper.getApplicableShippingMethods( + currentBasket.getDefaultShipment(), + address, + ); + if (!currentShippingMethodsModels?.length) { + throw new Error('No applicable shipping methods found'); + } + let response = {}; + if (paymentMethodType === PAYMENTMETHODS.PAYPAL) { + const paypalUpdateOrderResponse = adyenCheckout.doPaypalUpdateOrderCall( + paypalHelper.createPaypalUpdateOrderRequest( + session.privacy.pspReference, + currentBasket, + currentShippingMethodsModels, + currentPaymentData, + ), + ); + AdyenLogs.info_log( + `Paypal Order Update Call: ${paypalUpdateOrderResponse.status}`, + ); + response = { ...response, ...paypalUpdateOrderResponse }; + } + response.shippingMethods = currentShippingMethodsModels; + res.json(response); return next(); } catch (error) { - AdyenLogs.error_log('Failed to fetch shipping methods'); - AdyenLogs.error_log(error); + AdyenLogs.error_log('Failed to fetch shipping methods', error); + res.setStatusCode(500); + res.json({ + errorMessage: Resource.msg( + 'error.cannot.find.shipping.methods', + 'cart', + null, + ), + }); return next(); } } diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/index.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/index.js index b34ff4b77..be9abcdc4 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/index.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/index.js @@ -13,6 +13,10 @@ const fetchGiftCards = require('*/cartridge/adyen/scripts/partialPayments/fetchG const showConfirmationPaymentFromComponent = require('*/cartridge/adyen/scripts/showConfirmation/showConfirmationPaymentFromComponent'); const showConfirmation = require('*/cartridge/adyen/scripts/showConfirmation/showConfirmation'); const notify = require('*/cartridge/adyen/webhooks/notify'); +const makeExpressPaymentsCall = require('*/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall'); +const makeExpressPaymentDetailsCall = require('*/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall'); +const saveShopperData = require('*/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData'); +const handleCheckoutReview = require('*/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview'); module.exports = { getCheckoutPaymentMethods, @@ -30,4 +34,8 @@ module.exports = { showConfirmation, showConfirmationPaymentFromComponent, notify, + makeExpressPaymentsCall, + makeExpressPaymentDetailsCall, + saveShopperData, + handleCheckoutReview, }; diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/adyenCheckout.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/adyenCheckout.test.js index 044d1b2b9..e879d11a4 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/adyenCheckout.test.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/adyenCheckout.test.js @@ -8,12 +8,14 @@ describe('AdyenCheckout', () => { custom: {}, setPaymentStatus: jest.fn(), setExportStatus: jest.fn(), + getOrderNo: jest.fn(), + getOrderToken: jest.fn(), }, PaymentInstrument: { custom: { adyenPaymentData: "{}", adyenPartialPaymentsOrder: - '{"orderData":"b4c0!BQABAgBzO7ZwfyxJ9ifN0NIgUsuwBdUWb==...",' + + '{"orderData":"b4c0!BQABAgBzO7ZwfyxJ9ifN0NIgUsuwBdUWb==...",' + '"remainingAmount":{"currency":"EUR","value":20799},' + '"amount":{"currency":"EUR","value":1000}}' @@ -39,12 +41,14 @@ describe('AdyenCheckout', () => { custom: {}, setPaymentStatus: jest.fn(), setExportStatus: jest.fn(), + getOrderNo: jest.fn(), + getOrderToken: jest.fn(), }, PaymentInstrument: { custom: { adyenPaymentData: "{}", adyenPartialPaymentsOrder: - '{"orderData":"b4c0!BQABAgBzO7ZwfyxJ9ifN0NIgUsuwBdUWb==...",' + + '{"orderData":"b4c0!BQABAgBzO7ZwfyxJ9ifN0NIgUsuwBdUWb==...",' + '"remainingAmount":{"currency":"EUR","value":20799},' + '"amount":{"currency":"EUR","value":25799}}' @@ -70,12 +74,14 @@ describe('AdyenCheckout', () => { custom: {}, setPaymentStatus: jest.fn(), setExportStatus: jest.fn(), + getOrderNo: jest.fn(), + getOrderToken: jest.fn(), }, PaymentInstrument: { custom: { adyenPaymentData: "{}", adyenPartialPaymentsOrder: - '{"orderData":"b4c0!BQABAgBzO7ZwfyxJ9ifN0NIgUsuwBdUWb==...",' + + '{"orderData":"b4c0!BQABAgBzO7ZwfyxJ9ifN0NIgUsuwBdUWb==...",' + '"remainingAmount":{"currency":"USD","value":20799},' + '"amount":{"currency":"USD","value":1000}}' @@ -93,4 +99,4 @@ describe('AdyenCheckout', () => { expect(Logger.error.mock.calls[0][0]).toContain("Cart has been edited after applying a gift card"); expect(response.error).toEqual(true); }) -}) \ No newline at end of file +}) diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/getCheckoutPaymentMethods.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/getCheckoutPaymentMethods.test.js index 84172cd88..0f234d3d5 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/getCheckoutPaymentMethods.test.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/getCheckoutPaymentMethods.test.js @@ -1,4 +1,5 @@ /* eslint-disable global-require */ +const BasketMgr = require('dw/order/BasketMgr'); const getCheckoutPaymentMethods = require('*/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods'); const getPaymentMethods = require('*/cartridge/adyen/scripts/payments/adyenGetPaymentMethods'); let req; @@ -24,6 +25,25 @@ afterEach(() => { describe('getCheckoutPaymentMethods', () => { it('returns AdyenPaymentMethods', () => { + currentBasket = { + getDefaultShipment: jest.fn(() => { + return { + shippingAddress: { + getCountryCode: jest.fn(() => { + return { + value: "NL" + } + }) + }} + }), + getTotalGrossPrice: jest.fn(() => { + return { + currencyCode: 'EUR', + value: '1000' + } + }) + }; + BasketMgr.getCurrentBasket.mockReturnValueOnce(currentBasket); getCheckoutPaymentMethods(req, res, next); expect(res.json).toHaveBeenCalledWith({ AdyenPaymentMethods: { @@ -62,7 +82,7 @@ describe('getCheckoutPaymentMethods', () => { getCheckoutPaymentMethods(req, res, next); expect(res.json).toHaveBeenCalledWith({ error: true, - }); + }); expect(Logger.fatal.mock.calls.length).toBe(1); expect(next).toHaveBeenCalled(); }); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/paymentsDetails.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/paymentsDetails.test.js index b0b0323b5..60d335c87 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/paymentsDetails.test.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/paymentsDetails.test.js @@ -62,21 +62,18 @@ describe('Confirm paymentsDetails', () => { it('should call paymentDetails request and response handler', () => { const adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); - const URLUtils = require('dw/web/URLUtils'); - adyenCheckout.doPaymentsDetailsCall.mockImplementation(() => ({ resultCode:'mocked_resultCode', pspReference: 'mocked_pspReference', })); paymentsDetails(req, res, jest.fn()); - expect(URLUtils.url.mock.calls[0][0]).toEqual('Adyen-ShowConfirmation'); + expect(AdyenHelper.createRedirectUrl.mock.calls.length).toEqual(1); expect(adyenCheckout.doPaymentsDetailsCall.mock.calls.length).toEqual(1); expect(AdyenHelper.createAdyenCheckoutResponse.mock.calls.length).toEqual(1); - expect(res.json.mock.calls[0][0]).toEqual({ isFinal: true, isSuccessful: false, - redirectUrl: "[\"Adyen-ShowConfirmation\",\"merchantReference\",null,\"signature\",\"mocked_signature\",\"orderToken\",null]" + redirectUrl: "mocked_RedirectUrl" }); }); }); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/paypalHelper.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/paypalHelper.test.js deleted file mode 100644 index 98c2e0bcc..000000000 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/__tests__/paypalHelper.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const paypalHelper = require('../paypalHelper') -describe('paypalHelper', () => { - let args,lineItem, result - beforeEach(() => { - args = (item) => ({ - Order: { - getAllLineItems: jest.fn(() => ([item])) - } - }) - - lineItem = { - productName: 'test', - productID: '123', - quantityValue: '1', - getAdjustedTax: '1000', - adjustedNetPrice: '10000', - category: 'PHYSICAL_GOODS', - } - - result = { - quantity: '1', - description: 'test', - itemCategory: 'PHYSICAL_GOODS', - sku: '123', - amountExcludingTax: '10000', - taxAmount: '1000' - } - }) - it('should return lineItems for paypal', () => { -const paypalLineItems = paypalHelper.getLineItems(args(lineItem)) - expect(paypalLineItems[0]).toStrictEqual(result) - }) - - it('should return lineItems for paypal with default itemCategory when category is not as per paypal', () => { - const paypalLineItems = paypalHelper.getLineItems(args({...lineItem, category: 'TEST_GOODS'})) - expect(paypalLineItems[0]).toStrictEqual({ - quantity: '1', - description: 'test', - sku: '123', - amountExcludingTax: '10000', - taxAmount: '1000' - }) - }) - - it('should return no lineItems for paypal if order or basket is not defined', () => { - - const paypalLineItems = paypalHelper.getLineItems({}) - expect(paypalLineItems).toBeNull() - }) -}) \ No newline at end of file diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js index d9f9e36f8..ac2763f83 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js @@ -26,7 +26,6 @@ const Resource = require('dw/web/Resource'); const Order = require('dw/order/Order'); const StringUtils = require('dw/util/StringUtils'); - /* Script Modules */ const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); const AdyenConfigs = require('*/cartridge/adyen/utils/adyenConfigs'); @@ -35,7 +34,7 @@ const AdyenGetOpenInvoiceData = require('*/cartridge/adyen/scripts/payments/adye const adyenLevelTwoThreeData = require('*/cartridge/adyen/scripts/payments/adyenLevelTwoThreeData'); const constants = require('*/cartridge/adyen/config/constants'); const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); -const paypalHelper = require('*/cartridge/adyen/scripts/payments/paypalHelper'); +const paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); // eslint-disable-next-line complexity function doPaymentsCall(order, paymentInstrument, paymentRequest) { @@ -144,13 +143,13 @@ function createPaymentRequest(args) { // Create request object with payment details let paymentRequest = AdyenHelper.createAdyenRequestObject( - order, + order.getOrderNo(), + order.getOrderToken(), paymentInstrument, ); - paymentRequest = AdyenHelper.add3DS2Data(paymentRequest); const paymentMethodType = paymentRequest.paymentMethod.type; - + paymentRequest = AdyenHelper.add3DS2Data(paymentRequest); // Add Risk data if (AdyenConfigs.getAdyenBasketFieldsEnabled()) { paymentRequest.additionalData = @@ -180,7 +179,6 @@ function createPaymentRequest(args) { paymentRequest.installments = { value: numOfInstallments }; } } - const value = AdyenHelper.getCurrencyValueForApi( paymentInstrument.paymentTransaction.amount, ).getValueOrNull(); @@ -213,6 +211,7 @@ function createPaymentRequest(args) { paymentMethodType, paymentRequest, ); + // Create shopper data fields paymentRequest = AdyenHelper.createShopperObject({ order, @@ -268,7 +267,6 @@ function createPaymentRequest(args) { paymentInstrument, paymentRequest.paymentMethod, ); - // make API call return doPaymentsCall(order, paymentInstrument, paymentRequest); } catch (e) { AdyenLogs.error_log( @@ -313,6 +311,13 @@ function doCreatePartialPaymentOrderCall(partialPaymentRequest) { ); } +function doPaypalUpdateOrderCall(paypalUpdateOrderRequest) { + return AdyenHelper.executeCall( + constants.SERVICE.PAYPALUPDATEORDER, + paypalUpdateOrderRequest, + ); +} + module.exports = { createPaymentRequest, doPaymentsCall, @@ -320,4 +325,5 @@ module.exports = { doCheckBalanceCall, doCancelPartialPaymentOrderCall, doCreatePartialPaymentOrderCall, + doPaypalUpdateOrderCall, }; diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenZeroAuth.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenZeroAuth.js index 86dcee5ec..e1d101361 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenZeroAuth.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenZeroAuth.js @@ -31,7 +31,8 @@ const constants = require('*/cartridge/adyen/config/constants'); function zeroAuthPayment(customer, paymentInstrument) { try { let zeroAuthRequest = AdyenHelper.createAdyenRequestObject( - null, + 'recurringPayment-account', + 'recurringPayment-token', paymentInstrument, ); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods.js index 958df8a5a..e218b8f73 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods.js @@ -1,6 +1,7 @@ const BasketMgr = require('dw/order/BasketMgr'); const Locale = require('dw/util/Locale'); const PaymentMgr = require('dw/order/PaymentMgr'); +const URLUtils = require('dw/web/URLUtils'); const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); const adyenTerminalApi = require('*/cartridge/adyen/scripts/payments/adyenTerminalApi'); const paymentMethodDescriptions = require('*/cartridge/adyen/config/paymentMethodDescriptions'); @@ -9,12 +10,12 @@ const getPaymentMethods = require('*/cartridge/adyen/scripts/payments/adyenGetPa const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); function getCountryCode(currentBasket, locale) { - const countryCode = Locale.getLocale(locale.id).country; - const firstItem = currentBasket?.getShipments()?.[0]; - if (firstItem?.shippingAddress) { - return firstItem.shippingAddress.getCountryCode().value; + let countryCode; + const { shippingAddress } = currentBasket.getDefaultShipment(); + if (shippingAddress) { + countryCode = shippingAddress.getCountryCode().value; } - return countryCode; + return countryCode || Locale.getLocale(locale.id).country; } function getConnectedTerminals() { @@ -27,11 +28,15 @@ function getConnectedTerminals() { function getCheckoutPaymentMethods(req, res, next) { try { const currentBasket = BasketMgr.getCurrentBasket(); - const countryCode = - currentBasket.getShipments().length > 0 && - currentBasket.getShipments()[0].shippingAddress - ? currentBasket.getShipments()[0].shippingAddress.getCountryCode().value - : getCountryCode(currentBasket, req.locale).value; + if (!currentBasket) { + res.json({ + error: true, + redirectUrl: URLUtils.url('Cart-Show').toString(), + }); + + return next(); + } + const countryCode = getCountryCode(currentBasket, req.locale); const adyenURL = `${AdyenHelper.getLoadingContext()}images/logos/medium/`; const connectedTerminals = JSON.parse(getConnectedTerminals()); const currency = currentBasket.getTotalGrossPrice().currencyCode; diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentsDetails.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentsDetails.js index 80077c651..b0052d14a 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentsDetails.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentsDetails.js @@ -5,7 +5,7 @@ const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); const adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); -function getSignature(paymentsDetailsResponse, orderToken) { +function getRedirectUrl(paymentsDetailsResponse, orderToken) { const order = OrderMgr.getOrder( paymentsDetailsResponse.merchantReference, orderToken, @@ -14,18 +14,16 @@ function getSignature(paymentsDetailsResponse, orderToken) { const paymentInstruments = order.getPaymentInstruments( AdyenHelper.getOrderMainPaymentInstrumentType(order), ); - - const signature = AdyenHelper.createSignature( + const redirectUrl = AdyenHelper.createRedirectUrl( paymentInstruments[0], - order.getUUID(), paymentsDetailsResponse.merchantReference, + orderToken, ); - Transaction.wrap(() => { paymentInstruments[0].paymentTransaction.custom.Adyen_authResult = JSON.stringify(paymentsDetailsResponse); }); - return signature; + return redirectUrl; } return undefined; } @@ -49,10 +47,11 @@ function paymentsDetails(req, res, next) { const response = AdyenHelper.createAdyenCheckoutResponse( paymentsDetailsResponse, ); - // Create signature to verify returnUrl - const signature = getSignature(paymentsDetailsResponse, request.orderToken); - + const redirectUrl = getRedirectUrl( + paymentsDetailsResponse, + request.orderToken, + ); if (isAmazonpay) { response.fullResponse = { pspReference: paymentsDetailsResponse.pspReference, @@ -60,16 +59,8 @@ function paymentsDetails(req, res, next) { resultCode: paymentsDetailsResponse.resultCode, }; } - if (signature !== null) { - response.redirectUrl = URLUtils.https( - 'Adyen-ShowConfirmation', - 'merchantReference', - response.merchantReference, - 'signature', - signature, - 'orderToken', - request.orderToken, - ).toString(); + if (redirectUrl) { + response.redirectUrl = redirectUrl; } res.json(response); diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paypalHelper.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paypalHelper.js deleted file mode 100644 index 4fef811e2..000000000 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paypalHelper.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * ###### - * ###### - * ############ ####( ###### #####. ###### ############ ############ - * ############# #####( ###### #####. ###### ############# ############# - * ###### #####( ###### #####. ###### ##### ###### ##### ###### - * ###### ###### #####( ###### #####. ###### ##### ##### ##### ###### - * ###### ###### #####( ###### #####. ###### ##### ##### ###### - * ############# ############# ############# ############# ##### ###### - * ############ ############ ############# ############ ##### ###### - * ###### - * ############# - * ############ - * Adyen Salesforce Commerce Cloud - * Copyright (c) 2021 Adyen B.V. - * This file is open source and available under the MIT license. - * See the LICENSE file for more info. - * - * Add all product and shipping line items to request - */ - -const LineItemHelper = require('*/cartridge/adyen/utils/lineItemHelper'); - -const PAYPAL_ITEM_CATEGORY = ['PHYSICAL_GOODS', 'DIGITAL_GOODS', 'DONATION']; -function getLineItems({ Order: order, Basket: basket }) { - if (!(order || basket)) return null; - const orderOrBasket = order || basket; - const allLineItems = LineItemHelper.getAllLineItems( - orderOrBasket.getAllLineItems(), - ); - return allLineItems.map((lineItem) => { - const lineItemObject = {}; - const description = LineItemHelper.getDescription(lineItem); - const id = LineItemHelper.getId(lineItem); - const quantity = LineItemHelper.getQuantity(lineItem); - const itemAmount = LineItemHelper.getItemAmount(lineItem).divide(quantity); - const vatAmount = LineItemHelper.getVatAmount(lineItem).divide(quantity); - // eslint-disable-next-line - if (lineItem.hasOwnProperty('category')) { - if (PAYPAL_ITEM_CATEGORY.indexOf(lineItem.category) > -1) { - lineItemObject.itemCategory = lineItem.category; - } - } - lineItemObject.quantity = quantity; - lineItemObject.description = description; - lineItemObject.sku = id; - lineItemObject.amountExcludingTax = itemAmount.getValue().toFixed(); - lineItemObject.taxAmount = vatAmount.getValue().toFixed(); - return lineItemObject; - }); -} - -module.exports.getLineItems = getLineItems; diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent.js index 30785110a..51bd060ab 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent.js @@ -49,11 +49,14 @@ function handleAuthorisedPayment( ) { // custom fraudDetection const fraudDetectionStatus = { status: 'success' }; + const isPayPalExpress = order.custom.Adyen_paypalExpressResponse; - // Places the order - const placeOrderResult = COHelpers.placeOrder(order, fraudDetectionStatus); - if (placeOrderResult.error) { - return handlePaymentError(order, adyenPaymentInstrument, { res, next }); + // Places the order, for PayPal express the order is placed from makeExpressPaymentDetailsCall.js + if (!isPayPalExpress) { + const placeOrderResult = COHelpers.placeOrder(order, fraudDetectionStatus); + if (placeOrderResult.error) { + return handlePaymentError(order, adyenPaymentInstrument, { res, next }); + } } Transaction.wrap(() => { @@ -101,6 +104,10 @@ function handlePaymentResult(result, order, adyenPaymentInstrument, options) { Transaction.wrap(() => { order.custom.Adyen_pspReference = result.pspReference; order.custom.Adyen_eventCode = result.resultCode; + order.custom.Adyen_paypalExpressResponse = null; + adyenPaymentInstrument.custom.adyenPaymentData = null; + session.privacy.paypalExpressOrderNo = null; + session.privacy.pspReference = null; }); return handlePaymentError(order, adyenPaymentInstrument, options); } @@ -135,15 +142,21 @@ function handlePayment(stateData, order, options) { return handlePaymentError(order, adyenPaymentInstrument, options); } } - - const detailsCall = hasStateData - ? handlePaymentsDetailsCall(stateData, adyenPaymentInstrument) - : null; - - Transaction.wrap(() => { - adyenPaymentInstrument.custom.adyenPaymentData = null; - }); - finalResult = finalResult || detailsCall?.result; + const paymentData = JSON.parse( + adyenPaymentInstrument.custom.adyenPaymentData, + ); + const isPayPalExpress = AdyenHelper.isPayPalExpress( + paymentData.paymentMethod, + ); + const detailsCall = + hasStateData && !isPayPalExpress + ? handlePaymentsDetailsCall(stateData, adyenPaymentInstrument) + : null; + if (isPayPalExpress) { + finalResult = JSON.parse(order.custom.Adyen_paypalExpressResponse); + } else { + finalResult = finalResult || detailsCall?.result; + } return handlePaymentResult( finalResult, diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/adyenHelper.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/adyenHelper.test.js index e178dd8c6..4ecc6f9ce 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/adyenHelper.test.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/adyenHelper.test.js @@ -1,4 +1,6 @@ /* eslint-disable global-require */ +const Money = require('../../../../../../../jest/__mocks__/dw/value/Money'); +const { getApplicableShippingMethods } = require('../adyenHelper'); const savePaymentDetails = require('../adyenHelper').savePaymentDetails; describe('savePaymentDetails', () => { let paymentInstrument; @@ -67,3 +69,50 @@ describe('savePaymentDetails', () => { expect(paymentInstrument.paymentTransaction.custom.Adyen_donationToken).toBe('donation-token-123'); }); }); + +describe('getApplicableShippingMethods', () => { + let shippingMethod, shipment, address; + beforeEach(() => { + shippingMethod = { + description: 'Order received within 7-10 business days', + displayName: 'Ground', + ID: '001', + custom: { + estimatedArrivalTime: '7-10 Business Days' + }, + getTaxClassID: jest.fn(), + }; + shipment = { + UUID: 'mock_UUID', + shippingAddress: { + setCity: jest.fn(), + setPostalCode: jest.fn(), + setStateCode: jest.fn(), + setCountryCode: jest.fn(), + }, + getProductLineItems: jest.fn(() => ({ + toArray: jest.fn(() =>[{ + getProduct: jest.fn(() => ({ + getPriceModel: jest.fn(() => ({ + getPrice: jest.fn(() => Money()) + })) + })), + getQuantity: jest.fn() + }]) + })) + }; + address = {} + }); + it('should return applicable shipping methods for shipment and address', () => { + const shippingMethods = getApplicableShippingMethods(shipment, address); + expect(shippingMethods).toStrictEqual([{"shipmentUUID": "mock_UUID", "shippingCost": {"currencyCode": "USD", "value": "10.99"}}, {"shipmentUUID": "mock_UUID", "shippingCost": {"currencyCode": "USD", "value": "10.99"}}]); + }) + it('should return applicable shipping methods when address is not provided', () => { + const shippingMethods = getApplicableShippingMethods(shipment); + expect(shippingMethods).toStrictEqual([{"shipmentUUID": "mock_UUID", "shippingCost": {"currencyCode": "USD", "value": "10.99"}}, {"shipmentUUID": "mock_UUID", "shippingCost": {"currencyCode": "USD", "value": "10.99"}}]); + }) + it('should return no shipping methods when shipment is not provided', () => { + const shippingMethods = getApplicableShippingMethods(); + expect(shippingMethods).toBeNull(); + }) +}) diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/paypalHelper.test.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/paypalHelper.test.js new file mode 100644 index 000000000..e64d03a1f --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/__tests__/paypalHelper.test.js @@ -0,0 +1,186 @@ +/* eslint-disable global-require */ +const BasketMgr = require('dw/order/BasketMgr'); +jest.mock('dw/value/Money', () => jest.fn()); +jest.mock('*/cartridge/adyen/utils/adyenHelper', () => { + return { + getCurrencyValueForApi: jest.fn(() => { + return { + value: 1000 + } + }) + } +}) + +const paypalHelper = require('../paypalHelper') +const Money = require('dw/value/Money'); +const { createBillingAddress } = require("../../../../../../../jest/__mocks__/dw/order/BasketMgr"); +describe('paypalHelper', () => { + describe('getLineItems', () => { + let args,lineItem, result + beforeEach(() => { + jest.clearAllMocks(); + args = (item) => ({ + Order: { + getAllLineItems: jest.fn(() => ([item])) + } + }) + + lineItem = { + productName: 'test', + productID: '123', + quantityValue: '1', + getAdjustedTax: '1000', + adjustedNetPrice: '10000', + category: 'PHYSICAL_GOODS', + } + + result = { + quantity: '1', + description: 'test', + itemCategory: 'PHYSICAL_GOODS', + sku: '123', + amountExcludingTax: '10000', + taxAmount: '1000' + } + }) + + afterEach(() => { + jest.resetModules(); + }); + + it('should return lineItems for paypal', () => { + const paypalLineItems = paypalHelper.getLineItems(args(lineItem)) + expect(paypalLineItems[0]).toStrictEqual(result) + }) + + it('should return lineItems for paypal with default itemCategory when category is not as per paypal', () => { + const paypalLineItems = paypalHelper.getLineItems(args({...lineItem, category: 'TEST_GOODS'})) + expect(paypalLineItems[0]).toStrictEqual({ + quantity: '1', + description: 'test', + sku: '123', + amountExcludingTax: '10000', + taxAmount: '1000' + }) + }) + + it('should return no lineItems for paypal if order or basket is not defined', () => { + + const paypalLineItems = paypalHelper.getLineItems({}) + expect(paypalLineItems).toBeNull() + }) + }) + describe('createPaypalUpdateOrderRequest', () => { + let pspReference, currentBasket, currentShippingMethods, paymentData, result; + beforeEach(() => { + jest.clearAllMocks(); + pspReference = 'test'; + paymentData = 'test'; + currentShippingMethods = [{ + ID: '001', + displayName: 'test', + shippingCost: { + currencyCode: 'USD', + value: '10.00', + }, + selected: true, + }] + currentBasket = { + currencyCode: 'USD', + getAdjustedShippingTotalGrossPrice: jest.fn(), + getAdjustedMerchandizeTotalGrossPrice: jest.fn(), + } + + result = { + pspReference: 'test', + paymentData: 'test', + amount: { + currency: 'USD', + value: 2000 + }, + deliveryMethods:[{ + reference: '001', + description: 'test', + type: 'Shipping', + amount: { + currency: 'USD', + value: 1000, + }, + selected: true, + }], + } + + }) + + it('should return UpdateOrderRequest object for paypal', () => { + Money.mockReturnValue(() => {return {value: 10, currency: 'TEST'}}) + const paypalUpdateOrderRequest = paypalHelper.createPaypalUpdateOrderRequest(pspReference, currentBasket, currentShippingMethods, paymentData) + expect(paypalUpdateOrderRequest).toStrictEqual(result) + }) + }) + describe('setBillingAndShippingAddress', () => { + let shopperDetails, billingAddress, shippingAddress; + beforeEach(() => { + jest.clearAllMocks(); + billingAddress = require('../../../../../../../jest/__mocks__/dw/order/BasketMgr'); + shopperDetails = { + shopperName:{ + firstName: 'John', + lastName: 'Doe' + }, + billingAddress:{ + street: '123 Main St', + city: 'City', + postalCode: '12345', + stateOrProvince: 'State', + country: 'United States', + }, + shippingAddress:{ + street: '123 Main St', + city: 'City', + postalCode: '12345', + stateOrProvince: 'State', + country: 'United States', + }, + telephoneNumber: '+1234567890', + shopperEmail: 'john@example.com' + } + session.privacy.shopperDetails = JSON.stringify(shopperDetails); + }); + afterEach(() => { + jest.resetModules(); + }); + it('should update billing and shipping address for current basket', () => { + const currentBasket = BasketMgr.getCurrentBasket(); + paypalHelper.setBillingAndShippingAddress(currentBasket); + expect(currentBasket.billingAddress.setFirstName).toHaveBeenCalledWith('John'); + }) + it('should set billing and shipping address if current basket has no billing Address', () => { + const currentBasket = BasketMgr.getCurrentBasket(); + currentBasket.billingAddress= ''; + paypalHelper.setBillingAndShippingAddress(currentBasket); + expect(currentBasket.createBillingAddress).toHaveBeenCalled(); + }) + it('should set billing and shipping address if current basket has no shipping Address', () => { + const currentBasket = BasketMgr.getCurrentBasket(); + const createShippingAddress = jest.fn(() => ({ + setPostalCode: jest.fn(), + setAddress1: jest.fn(), + setAddress2: jest.fn(), + setCountryCode: jest.fn(), + setCity: jest.fn(), + setFirstName: jest.fn(), + setLastName: jest.fn(), + setPhone: jest.fn(), + setStateCode: jest.fn(), + })); + currentBasket.getDefaultShipment= jest.fn(() => ({ + createShippingAddress: createShippingAddress + })); + paypalHelper.setBillingAndShippingAddress(currentBasket); + expect(currentBasket.getDefaultShipment).toHaveBeenCalled(); + expect(createShippingAddress).toHaveBeenCalled(); + }) + }) +}) + diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenConfigs.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenConfigs.js index 2d42940c5..574935192 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenConfigs.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenConfigs.js @@ -147,6 +147,14 @@ const adyenConfigsObj = { return getCustomPreference('AmazonPayExpress_Enabled'); }, + isPayPalExpressEnabled() { + return getCustomPreference('PayPalExpress_Enabled'); + }, + + isPayPalExpressReviewPageEnabled() { + return getCustomPreference('PayPalExpress_ReviewPage_Enabled'); + }, + getExpressPaymentsOrder() { return getCustomPreference('ExpressPayments_order'); }, diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js index 147af825b..844b7fc23 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js @@ -23,18 +23,20 @@ const Bytes = require('dw/util/Bytes'); const MessageDigest = require('dw/crypto/MessageDigest'); const Encoding = require('dw/crypto/Encoding'); const CustomerMgr = require('dw/customer/CustomerMgr'); -const constants = require('*/cartridge/adyen/config/constants'); -const AdyenConfigs = require('*/cartridge/adyen/utils/adyenConfigs'); const Transaction = require('dw/system/Transaction'); const UUIDUtils = require('dw/util/UUIDUtils'); -const collections = require('*/cartridge/scripts/util/collections'); const ShippingMgr = require('dw/order/ShippingMgr'); -const ShippingMethodModel = require('*/cartridge/models/shipping/shippingMethod'); const PaymentInstrument = require('dw/order/PaymentInstrument'); const StringUtils = require('dw/util/StringUtils'); +const Money = require('dw/value/Money'); +const TaxMgr = require('dw/order/TaxMgr'); +const ShippingLocation = require('dw/order/ShippingLocation'); //script includes +const ShippingMethodModel = require('*/cartridge/models/shipping/shippingMethod'); +const collections = require('*/cartridge/scripts/util/collections'); +const constants = require('*/cartridge/adyen/config/constants'); +const AdyenConfigs = require('*/cartridge/adyen/utils/adyenConfigs'); const AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); -const BasketMgr = require('dw/order/BasketMgr'); /* eslint no-var: off */ let adyenHelperObj = { @@ -77,15 +79,50 @@ let adyenHelperObj = { return null; }, + /** + * Returns shippingCost including taxes for a specific Shipment / ShippingMethod pair including the product level shipping cost if any + * @param {dw.order.ShippingMethod} shippingMethod - the default shipment of the current basket + * @param {dw.order.Shipment} shipment - a shipment of the current basket + * @returns {{currencyCode: String, value: String}} - Shipping Cost including taxes + */ getShippingCost(shippingMethod, shipment) { + const { shippingAddress } = shipment const shipmentShippingModel = ShippingMgr.getShipmentShippingModel(shipment); - const shippingCost = shipmentShippingModel.getShippingCost(shippingMethod); + let shippingCost = shipmentShippingModel.getShippingCost(shippingMethod).getAmount(); + collections.forEach(shipment.getProductLineItems(), (lineItem) => { + const product = lineItem.getProduct(); + const productQuantity = lineItem.getQuantity(); + const productShippingModel = ShippingMgr.getProductShippingModel(product); + let productShippingCost = productShippingModel.getShippingCost(shippingMethod) + ? productShippingModel.getShippingCost(shippingMethod).getAmount().multiply(productQuantity) + : new Money(0, product.getPriceModel().getPrice().getCurrencyCode()); + shippingCost = shippingCost.add(productShippingCost); + }) + shippingCost = shippingAddress ? shippingCost.addRate(adyenHelperObj.getShippingTaxRate(shippingMethod, shippingAddress)) : shippingCost; return { - value: shippingCost.amount.value, - currencyCode: shippingCost.amount.currencyCode, + value: shippingCost.getValue(), + currencyCode: shippingCost.getCurrencyCode(), }; }, + /** + * Returns tax rate for specific Shipment / ShippingMethod pair. + * @param {dw.order.ShippingMethod} shippingMethod - the default shipment of the current basket + * @param {dw.order.shippingAddress} shippingAddress - shippingAddress for the default shipment + * @returns {Number} - tax rate in decimals.(eg.: 0.02 for 2%) + */ + getShippingTaxRate(shippingMethod, shippingAddress) { + const taxClassID = shippingMethod.getTaxClassID(); + const taxJurisdictionID = TaxMgr.getTaxJurisdictionID(new ShippingLocation(shippingAddress)); + return TaxMgr.getTaxRate(taxClassID, taxJurisdictionID); + }, + + /** + * Returns applicable shipping methods for specific Shipment / ShippingAddress pair. + * @param {dw.order.OrderAddress} address - the shipping address of the default shipment of the current basket + * @param {dw.order.Shipment} shipment - a shipment of the current basket + * @returns {dw.util.ArrayList | null} - list of applicable shipping methods or null + */ getShippingMethods(shipment, address) { if (!shipment) return null; @@ -103,13 +140,35 @@ let adyenHelperObj = { return shippingMethods; }, + /** + * Returns shipment UUID for the shipment. + * @param {dw.order.Shipment} shipment - a shipment of the current basket + * @returns {String | null} - shipment UUID or null + */ getShipmentUUID(shipment) { if (!shipment) return null; return shipment.UUID; }, + /** + * @typedef {object} ApplicableShippingMethodModel + * @property {string|null} ID + * @property {string|null} displayName + * @property {string|null} estimatedArrivalTime + * @property {boolean|null} default + * @property {boolean|null} [selected] + * @property {{currencyCode: String, value: String}} shippingCost + * @property {string|null} shipmentUUID + */ + + /** + * Returns applicable shipping methods(excluding store pickup methods) for specific Shipment / ShippingAddress pair. + * @param {dw.order.OrderAddress} address - the shipping address of the default shipment of the current basket + * @param {dw.order.Shipment} shipment - a shipment of the current basket + * @returns {dw.util.ArrayList | null} - list of applicable shipping methods or null + */ getApplicableShippingMethods(shipment, address) { - const shippingMethods = this.getShippingMethods(shipment, address); + const shippingMethods = adyenHelperObj.getShippingMethods(shipment, address); if (!shippingMethods) { return null; } @@ -122,8 +181,8 @@ let adyenHelperObj = { shippingMethod, shipment, ); - const shippingCost = this.getShippingCost(shippingMethod, shipment); - const shipmentUUID = this.getShipmentUUID(shipment); + const shippingCost = adyenHelperObj.getShippingCost(shippingMethod, shipment); + const shipmentUUID = adyenHelperObj.getShipmentUUID(shipment); filteredMethods.push({ ...shippingMethodModel, shippingCost, @@ -135,26 +194,6 @@ let adyenHelperObj = { return filteredMethods; }, - callGetShippingMethods(shippingAddress) { - let address; - try { - address = { - city: shippingAddress.city, - countryCode: shippingAddress.countryCode, - stateCode: shippingAddress.stateOrRegion, - }; - const currentBasket = BasketMgr.getCurrentBasket(); - const currentShippingMethodsModels = this.getApplicableShippingMethods( - currentBasket.getDefaultShipment(), - address, - ); - return currentShippingMethodsModels; - } catch (error) { - AdyenLogs.error_log('Failed to fetch shipping methods'); - AdyenLogs.error_log(error); - } - }, - getAdyenGivingConfig(order) { if (!order.getPaymentInstruments( adyenHelperObj.getOrderMainPaymentInstrumentType(order), @@ -293,7 +332,7 @@ let adyenHelperObj = { return returnValue; }, - // determines whether Adyen Giving is available based on the donation token + // determines whether Adyen Giving is available based on the donation token isAdyenGivingAvailable(paymentInstrument) { return paymentInstrument.paymentTransaction.custom.Adyen_donationToken; }, @@ -337,6 +376,13 @@ let adyenHelperObj = { return false; }, + isPayPalExpress(paymentMethod){ + if (paymentMethod.type === 'paypal' && paymentMethod.subtype === 'express'){ + return true; + } + return false; + }, + // Get stored card token of customer saved card based on matched cardUUID getCardToken(cardUUID, customer) { let token = ''; @@ -489,29 +535,12 @@ let adyenHelperObj = { }, // creates a request object to send to the Adyen Checkout API - createAdyenRequestObject(order, paymentInstrument) { + createAdyenRequestObject(orderNo, orderToken, paymentInstrument) { const jsonObject = JSON.parse(paymentInstrument.custom.adyenPaymentData); const filteredJson = adyenHelperObj.validateStateData(jsonObject); const { stateData } = filteredJson; - let reference = 'recurringPayment-account'; - let orderToken = 'recurringPayment-token'; - if (order && order.getOrderNo()) { - reference = order.getOrderNo(); - orderToken = order.getOrderToken(); - } - - let signature = ''; - //Create signature to verify returnUrl if there is an order - if (order && order.getUUID()) { - signature = adyenHelperObj.createSignature( - paymentInstrument, - order.getUUID(), - reference, - ); - } - // Add recurringProcessingModel in case shopper wants to save the card from checkout if (stateData.storePaymentMethod){ stateData.recurringProcessingModel = constants.RECURRING_PROCESSING_MODEL.CARD_ON_FILE; @@ -525,22 +554,21 @@ let adyenHelperObj = { } stateData.merchantAccount = AdyenConfigs.getAdyenMerchantAccount(); - stateData.reference = reference; - stateData.returnUrl = URLUtils.https( - 'Adyen-ShowConfirmation', - 'merchantReference', - reference, - 'signature', - signature, - 'orderToken', - orderToken, - ).toString(); + stateData.reference = orderNo; + stateData.returnUrl = adyenHelperObj.createRedirectUrl(paymentInstrument, orderNo, orderToken) stateData.applicationInfo = adyenHelperObj.getApplicationInfo(); stateData.additionalData = {}; return stateData; }, + /** + * Returns unique hashed signature. + * @param {dw.order.OrderPaymentInstrument} paymentInstrument - paymentInstrument for the current order or current basket. + * @param {String} value - UUID to be hashed for creating signature. + * @param {String} salt - order number for the current order or from createOrderNo() used as Salt for hash. + * @returns {String} - returns hashed signature. + */ createSignature(paymentInstrument, value, salt) { const newSignature = adyenHelperObj.getAdyenHash(value, salt); Transaction.wrap(function () { @@ -549,6 +577,33 @@ let adyenHelperObj = { return newSignature; }, + /** + * Returns redirectURL with 'Adyen-ShowConfirmation' route and query params . + * @param {dw.order.OrderPaymentInstrument} paymentInstrument - paymentInstrument for the current order or current basket + * @param {String} orderNo - order number for the current order or from createOrderNo() + * @param {String} [orderToken] - orderToken for current order if order exists + * @returns {String} - returns String representation of the redirectURL + */ + createRedirectUrl(paymentInstrument, orderNo, orderToken) { + if(!(paymentInstrument instanceof dw.order.OrderPaymentInstrument)) { + return null + } + const signature = adyenHelperObj.createSignature( + paymentInstrument, + UUIDUtils.createUUID(), + orderNo, + ); + return URLUtils.https( + 'Adyen-ShowConfirmation', + 'merchantReference', + orderNo, + 'signature', + signature, + 'orderToken', + orderToken, + ).toString(); + }, + // adds 3DS2 fields to an Adyen Checkout payments Request add3DS2Data(jsonObject) { jsonObject.authenticationData = { @@ -573,6 +628,9 @@ let adyenHelperObj = { case 'amazonpay': methodName = 'Amazon Pay'; break; + case 'paypal': + methodName = 'PayPal'; + break; default: methodName = paymentMethod; } diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/paypalHelper.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/paypalHelper.js new file mode 100644 index 000000000..bd912dab8 --- /dev/null +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/utils/paypalHelper.js @@ -0,0 +1,177 @@ +/** + * ###### + * ###### + * ############ ####( ###### #####. ###### ############ ############ + * ############# #####( ###### #####. ###### ############# ############# + * ###### #####( ###### #####. ###### ##### ###### ##### ###### + * ###### ###### #####( ###### #####. ###### ##### ##### ##### ###### + * ###### ###### #####( ###### #####. ###### ##### ##### ###### + * ############# ############# ############# ############# ##### ###### + * ############ ############ ############# ############ ##### ###### + * ###### + * ############# + * ############ + * Adyen Salesforce Commerce Cloud + * Copyright (c) 2021 Adyen B.V. + * This file is open source and available under the MIT license. + * See the LICENSE file for more info. + * + * Add all product and shipping line items to request + */ +const Money = require('dw/value/Money'); +const Transaction = require('dw/system/Transaction'); +const LineItemHelper = require('*/cartridge/adyen/utils/lineItemHelper'); +const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); + +const PAYPAL_ITEM_CATEGORY = ['PHYSICAL_GOODS', 'DIGITAL_GOODS', 'DONATION']; +function getLineItems({ Order: order, Basket: basket }) { + if (!(order || basket)) return null; + const orderOrBasket = order || basket; + const allLineItems = LineItemHelper.getAllLineItems( + orderOrBasket.getAllLineItems(), + ); + return allLineItems.map((lineItem) => { + const lineItemObject = {}; + const description = LineItemHelper.getDescription(lineItem); + const id = LineItemHelper.getId(lineItem); + const quantity = LineItemHelper.getQuantity(lineItem); + const itemAmount = LineItemHelper.getItemAmount(lineItem).divide(quantity); + const vatAmount = LineItemHelper.getVatAmount(lineItem).divide(quantity); + // eslint-disable-next-line + if (lineItem.hasOwnProperty('category')) { + if (PAYPAL_ITEM_CATEGORY.indexOf(lineItem.category) > -1) { + lineItemObject.itemCategory = lineItem.category; + } + } + lineItemObject.quantity = quantity; + lineItemObject.description = description; + lineItemObject.sku = id; + lineItemObject.amountExcludingTax = itemAmount.getValue().toFixed(); + lineItemObject.taxAmount = vatAmount.getValue().toFixed(); + return lineItemObject; + }); +} + +/** + * @typedef {object} paypalShippingOption + * @property {string} reference - shipping method id + * @property {string} description - shipping method displayName + * @property {('Shipping')} type + * @property {{currencyCode: String, value: String}} amount + * - shipping cost for shipping method including tax + * @property {boolean} selected - - shipping method is selected + */ + +/** + * @typedef {object} paypalUpdateOrderRequest + * @property {String} pspReference - the pspReference returned from adyen /payments endpoint + * @property {String} paymentData - encrypted payment data from paypal component + * @property {{currencyCode: String, value: String}} amount + * - adjustedMerchandizeTotalGrossPrice + adjustedShippingTotalGrossPrice + * @property {dw.util.ArrayList} deliveryMethods + * - list of paypalShippingOption + */ + +/** + * Returns applicable shipping methods(excluding store pickup methods) + * for specific Shipment / ShippingAddress pair. + * @param {String} pspReference - the pspReference returned from adyen /payments endpoint + * @param {dw.order.basket} amount - a shipment of the current basket + * @param {dw.util.ArrayList} currentShippingMethods + * - a shipment of the current basket + * @param {String} paymentData - encrypted payment data from paypal component + * @returns {paypalUpdateOrderRequest} - list of applicable shipping methods or null + */ +function createPaypalUpdateOrderRequest( + pspReference, + currentBasket, + currentShippingMethods, + paymentData, +) { + const adjustedShippingTotalGrossPrice = { + currency: currentBasket.currencyCode, + value: AdyenHelper.getCurrencyValueForApi( + currentBasket.getAdjustedShippingTotalGrossPrice(), + ).value, + }; + const adjustedMerchandizeTotalGrossPrice = { + currency: currentBasket.currencyCode, + value: + AdyenHelper.getCurrencyValueForApi( + currentBasket.getAdjustedMerchandizeTotalGrossPrice(), + ).value + adjustedShippingTotalGrossPrice.value, + }; + const deliveryMethods = currentShippingMethods.map((shippingMethod) => { + const { currencyCode, value } = shippingMethod.shippingCost; + return { + reference: shippingMethod.ID, + description: shippingMethod.displayName, + type: 'Shipping', + amount: { + currency: currencyCode, + value: AdyenHelper.getCurrencyValueForApi( + new Money(value, currencyCode), + ).value, + }, + selected: shippingMethod.selected, + }; + }); + return { + pspReference, + paymentData, + amount: adjustedMerchandizeTotalGrossPrice, + deliveryMethods, + }; +} + +/** + * sets Shipping and Billing address for the basket + * @param {dw.order.Basket} currentBasket - the current basket + * @returns {undefined} + */ +function setBillingAndShippingAddress(currentBasket) { + let { billingAddress } = currentBasket; + let { shippingAddress } = currentBasket.getDefaultShipment(); + Transaction.wrap(() => { + if (!shippingAddress) { + shippingAddress = currentBasket + .getDefaultShipment() + .createShippingAddress(); + } + if (!billingAddress) { + billingAddress = currentBasket.createBillingAddress(); + } + }); + + const shopperDetails = JSON.parse(session.privacy.shopperDetails); + + Transaction.wrap(() => { + billingAddress.setFirstName(shopperDetails.shopperName.firstName); + billingAddress.setLastName(shopperDetails.shopperName.lastName); + billingAddress.setAddress1(shopperDetails.billingAddress.street); + billingAddress.setCity(shopperDetails.billingAddress.city); + billingAddress.setPhone(shopperDetails.telephoneNumber); + billingAddress.setPostalCode(shopperDetails.billingAddress.postalCode); + billingAddress.setStateCode(shopperDetails.billingAddress.stateOrProvince); + billingAddress.setCountryCode(shopperDetails.billingAddress.country); + + shippingAddress.setFirstName(shopperDetails.shopperName.firstName); + shippingAddress.setLastName(shopperDetails.shopperName.lastName); + shippingAddress.setAddress1(shopperDetails.shippingAddress.street); + shippingAddress.setCity(shopperDetails.shippingAddress.city); + shippingAddress.setPhone(shopperDetails.telephoneNumber); + shippingAddress.setPostalCode(shopperDetails.shippingAddress.postalCode); + shippingAddress.setStateCode( + shopperDetails.shippingAddress.stateOrProvince, + ); + shippingAddress.setCountryCode(shopperDetails.shippingAddress.country); + + currentBasket.setCustomerEmail(shopperDetails.shopperEmail); + }); +} + +module.exports = { + createPaypalUpdateOrderRequest, + getLineItems, + setBillingAndShippingAddress, +}; diff --git a/src/cartridges/int_adyen_SFRA/cartridge/controllers/Adyen.js b/src/cartridges/int_adyen_SFRA/cartridge/controllers/Adyen.js index c8295dcbc..c487831a1 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/controllers/Adyen.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/controllers/Adyen.js @@ -20,12 +20,19 @@ server.post( adyen.paymentsDetails, ); -server.get( +/** + * Save shipping address to currentBasket and + * get applicable shipping methods from an Express component in the SFCC session + */ +server.post( 'ShippingMethods', server.middleware.https, adyen.callGetShippingMethods, ); +/** + * Save selected shipping method to currentBasket from an Express component in the SFCC session + */ server.post( 'SelectShippingMethod', server.middleware.https, @@ -92,6 +99,15 @@ server.get( adyen.getCheckoutPaymentMethods, ); +/** + * Show the review page template. + */ +server.post( + 'CheckoutReview', + server.middleware.https, + adyen.handleCheckoutReview, +); + /** * Called by Adyen to update status of payments. It should always display [accepted] when finished. */ @@ -125,6 +141,28 @@ server.post( */ server.post('partialPayment', server.middleware.https, adyen.partialPayment); +/** + * Called by Adyen to make /payments call for PayPal Express flow + */ +server.post( + 'MakeExpressPaymentsCall', + server.middleware.https, + adyen.makeExpressPaymentsCall, +); + +/** + * Called by Adyen to make /paymentsDetails for PayPal Express flow + */ +server.post( + 'MakeExpressPaymentDetailsCall', + server.middleware.https, + adyen.makeExpressPaymentDetailsCall, +); + +/** + * Called by Adyen to save the shopper data coming from PayPal Express + */ +server.post('SaveShopperData', server.middleware.https, adyen.saveShopperData); /** * Called by Adyen to fetch applied giftcards */ diff --git a/tests/playwright/fixtures/USD.spec.mjs b/tests/playwright/fixtures/USD.spec.mjs index dba1ec5e6..41e3a262b 100644 --- a/tests/playwright/fixtures/USD.spec.mjs +++ b/tests/playwright/fixtures/USD.spec.mjs @@ -80,7 +80,7 @@ for (const environment of environments) { test('PayPal Success @quick', async ({ page }) => { redirectShopper = new RedirectShopper(page); - await redirectShopper.doPayPalPayment(); + await redirectShopper.doPayPalPayment(false, false, true); await checkoutPage.expectSuccess(); }); }); @@ -251,4 +251,48 @@ for (const environment of environments) { await accountPage.expectFailure(); }); }); + + test.describe.parallel(`${environment.name} USD`, () => { + test.beforeEach(async ({ page }) => { + await page.goto(`${environment.urlExtension}`); + }); + + test('PayPal Express @quick', async ({ page }) => { + checkoutPage = new environment.CheckoutPage(page); + await checkoutPage.addProductToCart(); + await checkoutPage.navigateToCart(regionsEnum.US); + redirectShopper = new RedirectShopper(page); + await redirectShopper.doPayPalPayment(true, false, true); + if (environment.name.indexOf('v5') !== -1) { + await page.locator("button[value='place-order']").click(); + await page.locator(".order-thank-you-msg").isVisible({ timeout: 20000 }); + } + else { + await checkoutPage.expectSuccess(); + } + }); + + test('PayPal Express shipping change @quick', async ({ page }) => { + checkoutPage = new environment.CheckoutPage(page); + await checkoutPage.addProductToCart(); + await checkoutPage.navigateToCart(regionsEnum.US); + redirectShopper = new RedirectShopper(page); + await redirectShopper.doPayPalPayment(true, true, true); + if (environment.name.indexOf('v5') !== -1) { + await page.locator("button[value='place-order']").click(); + await page.locator(".order-thank-you-msg").isVisible({ timeout: 20000 }); + } + else { + await checkoutPage.expectSuccess(); + } + }); + + test('PayPal Express Cancellation @quick', async ({ page }) => { + checkoutPage = new environment.CheckoutPage(page); + await checkoutPage.addProductToCart(); + await checkoutPage.navigateToCart(regionsEnum.US); + redirectShopper = new RedirectShopper(page); + await redirectShopper.doPayPalPayment(true, false, false); + }); + }); } diff --git a/tests/playwright/pages/PaymentMethodsPage.mjs b/tests/playwright/pages/PaymentMethodsPage.mjs index c7ce85447..cdf64f94b 100644 --- a/tests/playwright/pages/PaymentMethodsPage.mjs +++ b/tests/playwright/pages/PaymentMethodsPage.mjs @@ -32,16 +32,18 @@ export default class PaymentMethodsPage { await iDealInput.click(); }; - initiatePayPalPayment = async () => { + initiatePayPalPayment = async (expressFlow, shippingChange, success) => { // Paypal button locator on payment methods page const payPalButton = this.page .frameLocator('.adyen-checkout__paypal__button--paypal iframe.visible') .locator('.paypal-button'); // Click PayPal radio button - await this.page.click('#rb_paypal'); - await expect(this.page.locator('.adyen-checkout__paypal__button--paypal iframe.visible'),).toBeVisible({ timeout: 20000 }); - + if (!expressFlow) { + await this.page.click('#rb_paypal'); + } + await expect(this.page.locator('.adyen-checkout__paypal__button--paypal iframe.visible'),).toBeVisible({ timeout: 20000 }); + // Capture popup for interaction const [popup] = await Promise.all([ this.page.waitForEvent('popup'), @@ -60,13 +62,29 @@ export default class PaymentMethodsPage { this.passwordInput = popup.locator('#password'); this.loginButton = popup.locator('#btnLogin'); this.agreeAndPayNowButton = popup.locator('#payment-submit-btn'); + this.shippingMethodsDropdown = popup.locator('#shippingMethodsDropdown'); + this.cancelButton = popup.locator('a[data-testid="cancel-link"]'); await this.emailInput.click(); await this.emailInput.fill(paymentData.PayPal.username); await this.nextButton.click(); await this.passwordInput.fill(paymentData.PayPal.password); await this.loginButton.click(); - await this.agreeAndPayNowButton.click(); + await this.page.waitForTimeout(5000); + + if (shippingChange){ + await this.shippingMethodsDropdown.selectOption({ index: 2 }); // This selects the second option as first one is hidden by default in paypal modale + await this.page.waitForTimeout(5000); + } + + if (success) { + await this.agreeAndPayNowButton.click(); + } + else { + await this.cancelButton.click(); + await this.page.goBack(); + await expect(this.page.locator('.add-to-cart'),).toBeVisible({ timeout: 20000 }); + } }; initiateAmazonPayment = async ( diff --git a/tests/playwright/paymentFlows/redirectShopper.mjs b/tests/playwright/paymentFlows/redirectShopper.mjs index 3561584fd..7b8c84caf 100644 --- a/tests/playwright/paymentFlows/redirectShopper.mjs +++ b/tests/playwright/paymentFlows/redirectShopper.mjs @@ -29,8 +29,8 @@ export class RedirectShopper { await this.paymentMethodsPage.initiateOneyPayment(shopper); }; - doPayPalPayment = async () => { - await this.paymentMethodsPage.initiatePayPalPayment(); + doPayPalPayment = async (expressFlow, shippingChange, success) => { + await this.paymentMethodsPage.initiatePayPalPayment(expressFlow, shippingChange, success); }; doAmazonPayment = async (normalFlow, selectedCard, success) => { From 44a35aa347acc304f1285b68412da00342265028 Mon Sep 17 00:00:00 2001 From: Zenit Shkreli <69572953+zenit2001@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:51:43 +0200 Subject: [PATCH 15/17] chore: adding --no-verify in the pipeline for commiting (#1127) --- .github/workflows/cartridges-commit.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cartridges-commit.yml b/.github/workflows/cartridges-commit.yml index 1367d0f05..6c2ea22aa 100644 --- a/.github/workflows/cartridges-commit.yml +++ b/.github/workflows/cartridges-commit.yml @@ -23,7 +23,7 @@ jobs: code-version-secret: 'SFCC_CODE_VERSION_SFRA6' steps: - name: Checkout SFRA code - uses: actions/checkout@v4 + uses: actions/checkout@v3 with: repository: SalesforceCommerceCloud/storefront-reference-architecture ref: ${{ matrix.sfra-version }} @@ -34,7 +34,7 @@ jobs: with: node-version: '14' - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v3 with: path: adyen-salesforce-commerce-cloud fetch-depth: 0 @@ -58,7 +58,7 @@ jobs: git config --local user.email "actions@github.com" git config --local user.name "GitHub Actions" git add cartridges/**/* - git commit -m "chore: committing the built /cartridge folder" + git commit --no-verify -m "chore: committing the built /cartridge folder" git fetch origin git push origin HEAD:${{ github.head_ref }} --force-with-lease - name: Commit .project files @@ -91,6 +91,6 @@ jobs: git add . git config --local user.email "actions@github.com" git config --local user.name "GitHub Actions" - git commit -m "chore: committing the project files" + git commit --no-verify -m "chore: committing the project files" git fetch origin git push origin HEAD:${{ github.head_ref }} --force-with-lease From 1a8a1045b28de8f66412347801e08ce76b1962fb Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 23 Jul 2024 08:54:22 +0000 Subject: [PATCH 16/17] chore: committing the built /cartridge folder --- .../adyen_checkout/checkoutConfiguration.js | 15 +- .../default/js/amazonPayExpressPart1.js | 3 +- .../client/default/js/applePayExpress.js | 181 ++++--- .../default/js/checkoutReviewButtons.js | 42 ++ .../client/default/js/commons/index.js | 12 +- .../cartridge/client/default/js/constants.js | 5 +- .../client/default/js/paypalExpress.js | 466 ++++++++++++++++++ .../static/default/js/adyenAccount.js | 16 +- .../static/default/js/adyenCheckout.js | 8 +- .../static/default/js/amazonPayCheckout.js | 4 +- .../default/js/amazonPayExpressPart1.js | 18 +- .../default/js/amazonPayExpressPart2.js | 16 +- .../static/default/js/applePayExpress.js | 8 +- .../cartridge/static/default/js/checkout.js | 8 +- .../default/js/checkoutReviewButtons.js | 160 ++++++ .../cartridge/static/default/js/constants.js | 2 +- .../js/expressPaymentMethodsVisibility.js | 16 +- .../static/default/js/paypalExpress.js | 172 +++++++ .../default/adyen/checkoutReviewButtons.isml | 23 + .../default/cart/checkoutButtons.isml | 18 +- .../default/cart/checkoutReview.isml | 91 ++++ .../templates/resources/adyen.properties | 2 + .../default/css/configurationSettings.css | 28 +- .../cartridge/static/default/icons/paypal.svg | 7 + .../static/default/js/adyenSettings.js | 30 ++ .../settingCards/epmSettings.isml | 3 + .../settingCards/optionalSettings.isml | 2 +- .../cartridge/adyen/config/constants.js | 10 +- .../cartridge/adyen/logs/adyenCustomLogs.js | 14 +- .../paypal/handleCheckoutReview.js | 81 +++ .../paypal/makeExpressPaymentDetailsCall.js | 60 +++ .../paypal/makeExpressPaymentsCall.js | 52 ++ .../expressPayments/paypal/saveShopperData.js | 19 + .../saveExpressShopperDetails.js | 4 +- .../expressPayments/selectShippingMethods.js | 60 ++- .../expressPayments/shippingMethods.js | 103 ++-- .../cartridge/adyen/scripts/index.js | 10 +- .../adyen/scripts/payments/adyenCheckout.js | 20 +- .../adyen/scripts/payments/adyenZeroAuth.js | 2 +- .../payments/getCheckoutPaymentMethods.js | 22 +- .../adyen/scripts/payments/paymentsDetails.js | 13 +- .../handlePaymentFromComponent.js | 34 +- .../cartridge/adyen/utils/adyenConfigs.js | 6 + .../cartridge/adyen/utils/adyenHelper.js | 158 ++++-- .../cartridge/adyen/utils/paypalHelper.js | 160 ++++++ .../cartridge/adyen/utils/riskDataHelper.js | 2 +- .../cartridge/controllers/Adyen.js | 30 +- 47 files changed, 1922 insertions(+), 294 deletions(-) create mode 100644 cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js create mode 100644 cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js create mode 100644 cartridges/app_adyen_SFRA/cartridge/static/default/js/checkoutReviewButtons.js create mode 100644 cartridges/app_adyen_SFRA/cartridge/static/default/js/paypalExpress.js create mode 100644 cartridges/app_adyen_SFRA/cartridge/templates/default/adyen/checkoutReviewButtons.isml create mode 100644 cartridges/app_adyen_SFRA/cartridge/templates/default/cart/checkoutReview.isml create mode 100644 cartridges/bm_adyen/cartridge/static/default/icons/paypal.svg create mode 100644 cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview.js create mode 100644 cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall.js create mode 100644 cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall.js create mode 100644 cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData.js create mode 100644 cartridges/int_adyen_SFRA/cartridge/adyen/utils/paypalHelper.js diff --git a/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js b/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js index 86d7d498e..5ea9fdf2d 100644 --- a/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js +++ b/cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js @@ -35,7 +35,7 @@ function getCardConfig() { exposeExpiryDate: false, onChange: function onChange(state) { store.isValid = state.isValid; - var method = state.data.paymentMethod.storedPaymentMethodId ? "storedCard".concat(state.data.paymentMethod.storedPaymentMethodId) : constants.SCHEME; + var method = state.data.paymentMethod.storedPaymentMethodId ? "storedCard".concat(state.data.paymentMethod.storedPaymentMethodId) : store.selectedMethod; store.updateSelectedPayment(method, 'isValid', store.isValid); store.updateSelectedPayment(method, 'stateData', state.data); }, @@ -267,12 +267,17 @@ function getGiftCardConfig() { }; } function handleOnChange(state) { + var type = state.data.paymentMethod.type; + var multipleTxVariantComponents = constants.MULTIPLE_TX_VARIANTS_COMPONENTS; + if (multipleTxVariantComponents.includes(store.selectedMethod)) { + type = store.selectedMethod; + } store.isValid = state.isValid; - if (!store.componentsObj[store.selectedMethod]) { - store.componentsObj[store.selectedMethod] = {}; + if (!store.componentsObj[type]) { + store.componentsObj[type] = {}; } - store.componentsObj[store.selectedMethod].isValid = store.isValid; - store.componentsObj[store.selectedMethod].stateData = state.data; + store.componentsObj[type].isValid = store.isValid; + store.componentsObj[type].stateData = state.data; } var actionHandler = /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(action) { diff --git a/cartridges/app_adyen_SFRA/cartridge/client/default/js/amazonPayExpressPart1.js b/cartridges/app_adyen_SFRA/cartridge/client/default/js/amazonPayExpressPart1.js index 753eb035a..34c5dde1e 100644 --- a/cartridges/app_adyen_SFRA/cartridge/client/default/js/amazonPayExpressPart1.js +++ b/cartridges/app_adyen_SFRA/cartridge/client/default/js/amazonPayExpressPart1.js @@ -8,7 +8,8 @@ var _require = require('./commons'), checkIfExpressMethodsAreReady = _require.checkIfExpressMethodsAreReady, updateLoadedExpressMethods = _require.updateLoadedExpressMethods, getPaymentMethods = _require.getPaymentMethods; -var AMAZON_PAY = 'amazonpay'; +var _require2 = require('./constants'), + AMAZON_PAY = _require2.AMAZON_PAY; function mountAmazonPayComponent() { return _mountAmazonPayComponent.apply(this, arguments); } diff --git a/cartridges/app_adyen_SFRA/cartridge/client/default/js/applePayExpress.js b/cartridges/app_adyen_SFRA/cartridge/client/default/js/applePayExpress.js index 6413f9d47..f23357d4c 100644 --- a/cartridges/app_adyen_SFRA/cartridge/client/default/js/applePayExpress.js +++ b/cartridges/app_adyen_SFRA/cartridge/client/default/js/applePayExpress.js @@ -20,67 +20,6 @@ var _require3 = require('./constants'), var checkout; var shippingMethodsData; var paymentMethodsResponse; -function initializeCheckout() { - return _initializeCheckout.apply(this, arguments); -} -function _initializeCheckout() { - _initializeCheckout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() { - var _paymentMethodsRespon3; - var shippingMethods, applicationInfo; - return _regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - _context5.next = 2; - return getPaymentMethods(); - case 2: - paymentMethodsResponse = _context5.sent; - _context5.next = 5; - return fetch(window.shippingMethodsUrl); - case 5: - shippingMethods = _context5.sent; - _context5.next = 8; - return shippingMethods.json(); - case 8: - shippingMethodsData = _context5.sent; - applicationInfo = (_paymentMethodsRespon3 = paymentMethodsResponse) === null || _paymentMethodsRespon3 === void 0 ? void 0 : _paymentMethodsRespon3.applicationInfo; - _context5.next = 12; - return AdyenCheckout({ - environment: window.environment, - clientKey: window.clientKey, - locale: window.locale, - analytics: { - analyticsData: { - applicationInfo: applicationInfo - } - } - }); - case 12: - checkout = _context5.sent; - case 13: - case "end": - return _context5.stop(); - } - }, _callee5); - })); - return _initializeCheckout.apply(this, arguments); -} -function createApplePayButton(_x) { - return _createApplePayButton.apply(this, arguments); -} -function _createApplePayButton() { - _createApplePayButton = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(applePayButtonConfig) { - return _regeneratorRuntime().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - return _context6.abrupt("return", checkout.create(APPLE_PAY, applePayButtonConfig)); - case 1: - case "end": - return _context6.stop(); - } - }, _callee6); - })); - return _createApplePayButton.apply(this, arguments); -} function formatCustomerObject(customerData, billingData) { return { addressBook: { @@ -166,6 +105,104 @@ function callPaymentFromComponent(data, resolveApplePay, rejectApplePay) { rejectApplePay(); }); } +function selectShippingMethod(_ref) { + var shipmentUUID = _ref.shipmentUUID, + ID = _ref.ID; + var request = { + paymentMethodType: APPLE_PAY, + shipmentUUID: shipmentUUID, + methodID: ID + }; + return fetch(window.selectShippingMethodUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8' + }, + body: JSON.stringify(request) + }); +} +function getShippingMethod(shippingContact) { + var request = { + paymentMethodType: APPLE_PAY + }; + if (shippingContact) { + request.address = { + city: shippingContact.locality, + country: shippingContact.country, + countryCode: shippingContact.countryCode, + stateCode: shippingContact.administrativeArea, + postalCode: shippingContact.postalCode + }; + } + return fetch(window.shippingMethodsUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8' + }, + body: JSON.stringify(request) + }); +} +function initializeCheckout() { + return _initializeCheckout.apply(this, arguments); +} +function _initializeCheckout() { + _initializeCheckout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() { + var _paymentMethodsRespon3; + var shippingMethods, applicationInfo; + return _regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + _context5.next = 2; + return getPaymentMethods(); + case 2: + paymentMethodsResponse = _context5.sent; + _context5.next = 5; + return getShippingMethod(); + case 5: + shippingMethods = _context5.sent; + _context5.next = 8; + return shippingMethods.json(); + case 8: + shippingMethodsData = _context5.sent; + applicationInfo = (_paymentMethodsRespon3 = paymentMethodsResponse) === null || _paymentMethodsRespon3 === void 0 ? void 0 : _paymentMethodsRespon3.applicationInfo; + _context5.next = 12; + return AdyenCheckout({ + environment: window.environment, + clientKey: window.clientKey, + locale: window.locale, + analytics: { + analyticsData: { + applicationInfo: applicationInfo + } + } + }); + case 12: + checkout = _context5.sent; + case 13: + case "end": + return _context5.stop(); + } + }, _callee5); + })); + return _initializeCheckout.apply(this, arguments); +} +function createApplePayButton(_x) { + return _createApplePayButton.apply(this, arguments); +} +function _createApplePayButton() { + _createApplePayButton = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(applePayButtonConfig) { + return _regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + return _context6.abrupt("return", checkout.create(APPLE_PAY, applePayButtonConfig)); + case 1: + case "end": + return _context6.stop(); + } + }, _callee6); + })); + return _createApplePayButton.apply(this, arguments); +} initializeCheckout().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() { var _paymentMethodsRespon, _paymentMethodsRespon2; var applePayPaymentMethod, applePayConfig, applePayButtonConfig, cartContainer, applePayButton, isApplePayButtonAvailable, expressCheckoutNodesIndex; @@ -265,12 +302,7 @@ initializeCheckout().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regener return sm.ID === shippingMethod.identifier; }); _context2.next = 4; - return fetch("".concat(window.calculateAmountUrl, "?").concat(new URLSearchParams({ - shipmentUUID: matchingShippingMethod.shipmentUUID, - methodID: matchingShippingMethod.ID - })), { - method: 'POST' - }); + return selectShippingMethod(matchingShippingMethod); case 4: calculationResponse = _context2.sent; if (!calculationResponse.ok) { @@ -316,13 +348,7 @@ initializeCheckout().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regener case 0: shippingContact = event.shippingContact; _context3.next = 3; - return fetch("".concat(window.shippingMethodsUrl, "?").concat(new URLSearchParams({ - city: shippingContact.locality, - country: shippingContact.country, - countryCode: shippingContact.countryCode, - stateCode: shippingContact.administrativeArea, - postalCode: shippingContact.postalCode - }))); + return getShippingMethod(shippingContact); case 3: shippingMethods = _context3.sent; if (!shippingMethods.ok) { @@ -339,12 +365,7 @@ initializeCheckout().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regener } selectedShippingMethod = shippingMethodsData.shippingMethods[0]; _context3.next = 12; - return fetch("".concat(window.calculateAmountUrl, "?").concat(new URLSearchParams({ - shipmentUUID: selectedShippingMethod.shipmentUUID, - methodID: selectedShippingMethod.ID - })), { - method: 'POST' - }); + return selectShippingMethod(selectedShippingMethod); case 12: calculationResponse = _context3.sent; if (!calculationResponse.ok) { diff --git a/cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js b/cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js new file mode 100644 index 000000000..680896ddd --- /dev/null +++ b/cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js @@ -0,0 +1,42 @@ +"use strict"; + +var helpers = require('./adyen_checkout/helpers'); + +/** + * make payment details call for express payment methods from review page . + * @param data - state data from adyen checkout component + * @return {undefined} + */ +function makeExpressPaymentDetailsCall(data) { + $.ajax({ + type: 'POST', + url: window.makeExpressPaymentDetailsCall, + data: JSON.stringify({ + data: data + }), + contentType: 'application/json; charset=utf-8', + async: false, + success: function success(response) { + helpers.setOrderFormData(response); + }, + error: function error() { + $.spinner().stop(); + } + }); +} + +/** + * initializes place order button on checkout review page. + * @return {undefined} + */ +function initCheckoutReviewButtons() { + $(document).ready(function () { + $("button[name='place-order']").click(function () { + $.spinner().start(); + var stateData = document.querySelector('#additionalDetailsHidden').value; + makeExpressPaymentDetailsCall(JSON.parse(stateData)); + document.querySelector('#showConfirmationForm').submit(); + }); + }); +} +initCheckoutReviewButtons(); \ No newline at end of file diff --git a/cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js b/cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js index 90e353eff..9761fc802 100644 --- a/cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js +++ b/cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js @@ -1,10 +1,17 @@ "use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } var store = require('../../../../store'); +var _require = require('../constants'), + PAYPAL = _require.PAYPAL, + APPLE_PAY = _require.APPLE_PAY, + AMAZON_PAY = _require.AMAZON_PAY; module.exports.onFieldValid = function onFieldValid(data) { if (data.endDigits) { store.endDigits = data.endDigits; @@ -63,10 +70,7 @@ module.exports.getPaymentMethods = /*#__PURE__*/function () { return getPaymentMethods; }(); module.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() { - var expressMethodsConfig = { - applepay: window.isApplePayExpressEnabled === 'true', - amazonpay: window.isAmazonPayExpressEnabled === 'true' - }; + var expressMethodsConfig = _defineProperty(_defineProperty(_defineProperty({}, APPLE_PAY, window.isApplePayExpressEnabled === 'true'), AMAZON_PAY, window.isAmazonPayExpressEnabled === 'true'), PAYPAL, window.isPayPalExpressEnabled === 'true'); var enabledExpressMethods = []; Object.keys(expressMethodsConfig).forEach(function (key) { if (expressMethodsConfig[key]) { diff --git a/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js b/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js index 21c088381..6ba6f6f6d 100644 --- a/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js +++ b/cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js @@ -13,8 +13,11 @@ module.exports = { SCHEME: 'scheme', GIROPAY: 'giropay', APPLE_PAY: 'applepay', + PAYPAL: 'paypal', + AMAZON_PAY: 'amazonpay', ACTIONTYPE: { QRCODE: 'qrCode' }, - DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'] + DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'], + MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi'] }; \ No newline at end of file diff --git a/cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js b/cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js new file mode 100644 index 000000000..92fab6c19 --- /dev/null +++ b/cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js @@ -0,0 +1,466 @@ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +var _require = require('./commons'), + getPaymentMethods = _require.getPaymentMethods, + updateLoadedExpressMethods = _require.updateLoadedExpressMethods, + checkIfExpressMethodsAreReady = _require.checkIfExpressMethodsAreReady; +var helpers = require('./adyen_checkout/helpers'); +var _require2 = require('./constants'), + PAYPAL = _require2.PAYPAL; +function callPaymentFromComponent(_x, _x2) { + return _callPaymentFromComponent.apply(this, arguments); +} +function _callPaymentFromComponent() { + _callPaymentFromComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(data, component) { + var response, _yield$response$json, action, _yield$response$json$, errorMessage; + return _regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + _context6.prev = 0; + $.spinner().start(); + _context6.next = 4; + return fetch(window.makeExpressPaymentsCall, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(data) + }); + case 4: + response = _context6.sent; + _context6.next = 7; + return response.json(); + case 7: + _yield$response$json = _context6.sent; + action = _yield$response$json.action; + _yield$response$json$ = _yield$response$json.errorMessage; + errorMessage = _yield$response$json$ === void 0 ? '' : _yield$response$json$; + if (!(response.ok && action)) { + _context6.next = 15; + break; + } + component.handleAction(action); + _context6.next = 16; + break; + case 15: + throw new Error(errorMessage); + case 16: + _context6.next = 21; + break; + case 18: + _context6.prev = 18; + _context6.t0 = _context6["catch"](0); + component.handleError(); + case 21: + case "end": + return _context6.stop(); + } + }, _callee6, null, [[0, 18]]); + })); + return _callPaymentFromComponent.apply(this, arguments); +} +function saveShopperDetails(_x3, _x4) { + return _saveShopperDetails.apply(this, arguments); +} +function _saveShopperDetails() { + _saveShopperDetails = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(details, actions) { + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + return _context7.abrupt("return", $.ajax({ + url: window.saveShopperData, + type: 'post', + data: { + shopperDetails: JSON.stringify(details) + }, + success: function success() { + actions.resolve(); + }, + error: function error() { + $.spinner().stop(); + } + })); + case 1: + case "end": + return _context7.stop(); + } + }, _callee7); + })); + return _saveShopperDetails.apply(this, arguments); +} +function redirectToReviewPage(data) { + var redirect = $('
').appendTo(document.body).attr({ + method: 'POST', + action: window.checkoutReview + }); + $('').appendTo(redirect).attr({ + name: 'data', + value: JSON.stringify(data) + }); + redirect.submit(); +} +function makeExpressPaymentDetailsCall(data) { + return $.ajax({ + type: 'POST', + url: window.makeExpressPaymentDetailsCall, + data: JSON.stringify({ + data: data + }), + contentType: 'application/json; charset=utf-8', + async: false, + success: function success(response) { + helpers.createShowConfirmationForm(window.showConfirmationAction); + helpers.setOrderFormData(response); + }, + error: function error() { + $.spinner().stop(); + } + }); +} +function updateComponent(_x5, _x6) { + return _updateComponent.apply(this, arguments); +} +function _updateComponent() { + _updateComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(response, component) { + var _yield$response$json2, paymentData, status, _yield$response$json3, errorMessage, _yield$response$json4, _yield$response$json5, _errorMessage; + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + if (!response.ok) { + _context8.next = 13; + break; + } + _context8.next = 3; + return response.json(); + case 3: + _yield$response$json2 = _context8.sent; + paymentData = _yield$response$json2.paymentData; + status = _yield$response$json2.status; + _yield$response$json3 = _yield$response$json2.errorMessage; + errorMessage = _yield$response$json3 === void 0 ? '' : _yield$response$json3; + if (!(!paymentData || status !== 'success')) { + _context8.next = 10; + break; + } + throw new Error(errorMessage); + case 10: + // Update the Component paymentData value with the new one. + component.updatePaymentData(paymentData); + _context8.next = 19; + break; + case 13: + _context8.next = 15; + return response.json(); + case 15: + _yield$response$json4 = _context8.sent; + _yield$response$json5 = _yield$response$json4.errorMessage; + _errorMessage = _yield$response$json5 === void 0 ? '' : _yield$response$json5; + throw new Error(_errorMessage); + case 19: + return _context8.abrupt("return", false); + case 20: + case "end": + return _context8.stop(); + } + }, _callee8); + })); + return _updateComponent.apply(this, arguments); +} +function handleShippingAddressChange(_x7, _x8, _x9) { + return _handleShippingAddressChange.apply(this, arguments); +} +function _handleShippingAddressChange() { + _handleShippingAddressChange = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(data, actions, component) { + var shippingAddress, errors, currentPaymentData, request, response; + return _regeneratorRuntime().wrap(function _callee9$(_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + _context9.prev = 0; + shippingAddress = data.shippingAddress, errors = data.errors; + currentPaymentData = component.paymentData; + if (shippingAddress) { + _context9.next = 5; + break; + } + throw new Error(errors === null || errors === void 0 ? void 0 : errors.ADDRESS_ERROR); + case 5: + request = { + paymentMethodType: PAYPAL, + currentPaymentData: currentPaymentData, + address: { + city: shippingAddress.city, + country: shippingAddress.country, + countryCode: shippingAddress.countryCode, + stateCode: shippingAddress.state, + postalCode: shippingAddress.postalCode + } + }; + _context9.next = 8; + return fetch(window.shippingMethodsUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8' + }, + body: JSON.stringify(request) + }); + case 8: + response = _context9.sent; + _context9.next = 11; + return updateComponent(response, component); + case 11: + _context9.next = 16; + break; + case 13: + _context9.prev = 13; + _context9.t0 = _context9["catch"](0); + actions.reject(); + case 16: + return _context9.abrupt("return", false); + case 17: + case "end": + return _context9.stop(); + } + }, _callee9, null, [[0, 13]]); + })); + return _handleShippingAddressChange.apply(this, arguments); +} +function handleShippingOptionChange(_x10, _x11, _x12) { + return _handleShippingOptionChange.apply(this, arguments); +} +function _handleShippingOptionChange() { + _handleShippingOptionChange = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(data, actions, component) { + var selectedShippingOption, errors, currentPaymentData, request, response; + return _regeneratorRuntime().wrap(function _callee10$(_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + _context10.prev = 0; + selectedShippingOption = data.selectedShippingOption, errors = data.errors; + currentPaymentData = component.paymentData; + if (selectedShippingOption) { + _context10.next = 5; + break; + } + throw new Error(errors === null || errors === void 0 ? void 0 : errors.METHOD_UNAVAILABLE); + case 5: + request = { + paymentMethodType: PAYPAL, + currentPaymentData: currentPaymentData, + methodID: selectedShippingOption === null || selectedShippingOption === void 0 ? void 0 : selectedShippingOption.id + }; + _context10.next = 8; + return fetch(window.selectShippingMethodUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8' + }, + body: JSON.stringify(request) + }); + case 8: + response = _context10.sent; + _context10.next = 11; + return updateComponent(response, component); + case 11: + _context10.next = 16; + break; + case 13: + _context10.prev = 13; + _context10.t0 = _context10["catch"](0); + actions.reject(); + case 16: + return _context10.abrupt("return", false); + case 17: + case "end": + return _context10.stop(); + } + }, _callee10, null, [[0, 13]]); + })); + return _handleShippingOptionChange.apply(this, arguments); +} +function getPaypalButtonConfig(paypalConfig) { + var _window = window, + paypalReviewPageEnabled = _window.paypalReviewPageEnabled; + return _objectSpread(_objectSpread({ + showPayButton: true, + configuration: paypalConfig, + returnUrl: window.returnUrl, + isExpress: true + }, paypalReviewPageEnabled ? { + userAction: 'continue' + } : {}), {}, { + onSubmit: function () { + var _onSubmit = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(state, component) { + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return callPaymentFromComponent(state.data, component); + case 2: + case "end": + return _context.stop(); + } + }, _callee); + })); + function onSubmit(_x13, _x14) { + return _onSubmit.apply(this, arguments); + } + return onSubmit; + }(), + onError: function () { + var _onError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() { + return _regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + $.spinner().stop(); + case 1: + case "end": + return _context2.stop(); + } + }, _callee2); + })); + function onError() { + return _onError.apply(this, arguments); + } + return onError; + }(), + onShopperDetails: function () { + var _onShopperDetails = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(shopperDetails, rawData, actions) { + return _regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return saveShopperDetails(shopperDetails, actions); + case 2: + case "end": + return _context3.stop(); + } + }, _callee3); + })); + function onShopperDetails(_x15, _x16, _x17) { + return _onShopperDetails.apply(this, arguments); + } + return onShopperDetails; + }(), + onAdditionalDetails: function onAdditionalDetails(state) { + if (paypalReviewPageEnabled) { + redirectToReviewPage(state.data); + } else { + makeExpressPaymentDetailsCall(state.data); + document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data); + document.querySelector('#showConfirmationForm').submit(); + } + }, + onShippingAddressChange: function () { + var _onShippingAddressChange = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(data, actions, component) { + return _regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return handleShippingAddressChange(data, actions, component); + case 2: + case "end": + return _context4.stop(); + } + }, _callee4); + })); + function onShippingAddressChange(_x18, _x19, _x20) { + return _onShippingAddressChange.apply(this, arguments); + } + return onShippingAddressChange; + }(), + onShippingOptionsChange: function () { + var _onShippingOptionsChange = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(data, actions, component) { + return _regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + _context5.next = 2; + return handleShippingOptionChange(data, actions, component); + case 2: + case "end": + return _context5.stop(); + } + }, _callee5); + })); + function onShippingOptionsChange(_x21, _x22, _x23) { + return _onShippingOptionsChange.apply(this, arguments); + } + return onShippingOptionsChange; + }() + }); +} +function mountPaypalComponent() { + return _mountPaypalComponent.apply(this, arguments); +} +function _mountPaypalComponent() { + _mountPaypalComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() { + var _paymentMethodsRespon, paymentMethod, paymentMethodsResponse, applicationInfo, paypalConfig, checkout, paypalButtonConfig, paypalExpressButton; + return _regeneratorRuntime().wrap(function _callee11$(_context11) { + while (1) switch (_context11.prev = _context11.next) { + case 0: + _context11.prev = 0; + _context11.next = 3; + return getPaymentMethods(); + case 3: + paymentMethod = _context11.sent; + paymentMethodsResponse = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.AdyenPaymentMethods; + applicationInfo = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.applicationInfo; + paypalConfig = paymentMethodsResponse === null || paymentMethodsResponse === void 0 ? void 0 : (_paymentMethodsRespon = paymentMethodsResponse.paymentMethods.find(function (pm) { + return pm.type === PAYPAL; + })) === null || _paymentMethodsRespon === void 0 ? void 0 : _paymentMethodsRespon.configuration; + if (paypalConfig) { + _context11.next = 9; + break; + } + return _context11.abrupt("return"); + case 9: + _context11.next = 11; + return AdyenCheckout({ + environment: window.environment, + clientKey: window.clientKey, + locale: window.locale, + analytics: { + analyticsData: { + applicationInfo: applicationInfo + } + } + }); + case 11: + checkout = _context11.sent; + paypalButtonConfig = getPaypalButtonConfig(paypalConfig); + paypalExpressButton = checkout.create(PAYPAL, paypalButtonConfig); + paypalExpressButton.mount('#paypal-container'); + updateLoadedExpressMethods(PAYPAL); + checkIfExpressMethodsAreReady(); + _context11.next = 21; + break; + case 19: + _context11.prev = 19; + _context11.t0 = _context11["catch"](0); + case 21: + case "end": + return _context11.stop(); + } + }, _callee11, null, [[0, 19]]); + })); + return _mountPaypalComponent.apply(this, arguments); +} +mountPaypalComponent(); +module.exports = { + callPaymentFromComponent: callPaymentFromComponent, + saveShopperDetails: saveShopperDetails, + redirectToReviewPage: redirectToReviewPage, + makeExpressPaymentDetailsCall: makeExpressPaymentDetailsCall, + updateComponent: updateComponent, + handleShippingAddressChange: handleShippingAddressChange, + handleShippingOptionChange: handleShippingOptionChange, + getPaypalButtonConfig: getPaypalButtonConfig, + mountPaypalComponent: mountPaypalComponent +}; \ No newline at end of file diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/adyenAccount.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/adyenAccount.js index 30fb25640..bfb56edc6 100644 --- a/cartridges/app_adyen_SFRA/cartridge/static/default/js/adyenAccount.js +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/adyenAccount.js @@ -106,7 +106,19 @@ eval("\n\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runti /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = {\n applepay: window.isApplePayExpressEnabled === 'true',\n amazonpay: window.isAmazonPayExpressEnabled === 'true'\n };\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar _require = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n PAYPAL = _require.PAYPAL,\n APPLE_PAY = _require.APPLE_PAY,\n AMAZON_PAY = _require.AMAZON_PAY;\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = _defineProperty(_defineProperty(_defineProperty({}, APPLE_PAY, window.isApplePayExpressEnabled === 'true'), AMAZON_PAY, window.isAmazonPayExpressEnabled === 'true'), PAYPAL, window.isPayPalExpressEnabled === 'true');\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js": +/*!****************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); /***/ }), @@ -130,7 +142,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if ( true && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (true) {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n // Backwards/Legacy behavior, expects makeObservable(this)\n if (kind == \"field\") {\n addInitializer(function () {\n storeAnnotation(this, name, ann);\n });\n return;\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (true) {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (true) {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = true ? adm.name_ + \".\" + key.toString() : undefined);\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (true) {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, true ? adm.name_ + \".\" + name.toString() : undefined, false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if ( true && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.batchId_ = void 0;\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */;\n _proto.reportChanged = function reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion = globalState.stateVersion < Number.MAX_SAFE_INTEGER ? globalState.stateVersion + 1 : Number.MIN_SAFE_INTEGER;\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN;\n }\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.batchId = Number.MIN_SAFE_INTEGER;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n this.stateVersion = Number.MIN_SAFE_INTEGER;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\nfunction startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId = globalState.batchId < Number.MAX_SAFE_INTEGER ? globalState.batchId + 1 : Number.MIN_SAFE_INTEGER;\n }\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* Cancel */) {\n return;\n }\n if (outcome === 1 /* Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\r\n * Helper function for initializing observable structures, it applies:\r\n * 1. allowStateChanges so we don't violate enforceActions.\r\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\r\n * 3. batch to avoid state version updates\r\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); /***/ }), diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/adyenCheckout.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/adyenCheckout.js index 8a45b7ff1..e1c923464 100644 --- a/cartridges/app_adyen_SFRA/cartridge/static/default/js/adyenCheckout.js +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/adyenCheckout.js @@ -106,7 +106,7 @@ eval("\n\nvar store = __webpack_require__(/*! ../../../store */ \"./cartridges/a /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar helpers = __webpack_require__(/*! ./helpers */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js\");\nvar _require = __webpack_require__(/*! ./makePartialPayment */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/makePartialPayment.js\"),\n makePartialPayment = _require.makePartialPayment;\nvar _require2 = __webpack_require__(/*! ../commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n onBrand = _require2.onBrand,\n onFieldValid = _require2.onFieldValid;\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar constants = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\");\nvar _require3 = __webpack_require__(/*! ./renderGiftcardComponent */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent.js\"),\n createElementsToShowRemainingGiftCardAmount = _require3.createElementsToShowRemainingGiftCardAmount,\n renderAddedGiftCard = _require3.renderAddedGiftCard,\n getGiftCardElements = _require3.getGiftCardElements,\n showGiftCardInfoMessage = _require3.showGiftCardInfoMessage,\n showGiftCardCancelButton = _require3.showGiftCardCancelButton,\n attachGiftCardCancelListener = _require3.attachGiftCardCancelListener;\nfunction getCardConfig() {\n return {\n enableStoreDetails: window.showStoreDetails,\n showBrandsUnderCardNumber: false,\n clickToPayConfiguration: {\n shopperEmail: window.customerEmail,\n merchantDisplayName: window.merchantAccount\n },\n exposeExpiryDate: false,\n onChange: function onChange(state) {\n store.isValid = state.isValid;\n var method = state.data.paymentMethod.storedPaymentMethodId ? \"storedCard\".concat(state.data.paymentMethod.storedPaymentMethodId) : constants.SCHEME;\n store.updateSelectedPayment(method, 'isValid', store.isValid);\n store.updateSelectedPayment(method, 'stateData', state.data);\n },\n onSubmit: function onSubmit() {\n helpers.assignPaymentMethodValue();\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n },\n onFieldValid: onFieldValid,\n onBrand: onBrand\n };\n}\nfunction getPaypalConfig() {\n store.paypalTerminatedEarly = false;\n return {\n showPayButton: true,\n environment: window.Configuration.environment,\n onSubmit: function onSubmit(state, component) {\n helpers.assignPaymentMethodValue();\n document.querySelector('#adyenStateData').value = JSON.stringify(store.selectedPayment.stateData);\n helpers.paymentFromComponent(state.data, component);\n },\n onCancel: function onCancel(data, component) {\n store.paypalTerminatedEarly = false;\n helpers.paymentFromComponent({\n cancelTransaction: true,\n merchantReference: document.querySelector('#merchantReference').value,\n orderToken: document.querySelector('#orderToken').value\n }, component);\n },\n onError: function onError(error, component) {\n store.paypalTerminatedEarly = false;\n if (component) {\n component.setStatus('ready');\n }\n document.querySelector('#showConfirmationForm').submit();\n },\n onAdditionalDetails: function onAdditionalDetails(state) {\n store.paypalTerminatedEarly = false;\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data);\n document.querySelector('#showConfirmationForm').submit();\n },\n onClick: function onClick(data, actions) {\n $('#dwfrm_billing').trigger('submit');\n if (store.formErrorsExist) {\n return actions.reject();\n }\n if (store.paypalTerminatedEarly) {\n helpers.paymentFromComponent({\n cancelTransaction: true,\n merchantReference: document.querySelector('#merchantReference').value\n });\n store.paypalTerminatedEarly = false;\n return actions.resolve();\n }\n store.paypalTerminatedEarly = true;\n return null;\n }\n };\n}\nfunction getGooglePayConfig() {\n return {\n environment: window.Configuration.environment,\n onSubmit: function onSubmit() {\n helpers.assignPaymentMethodValue();\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n },\n configuration: {\n gatewayMerchantId: window.merchantAccount\n },\n showPayButton: true,\n buttonColor: 'white'\n };\n}\nfunction handlePartialPaymentSuccess() {\n var _store$addedGiftCards;\n var _getGiftCardElements = getGiftCardElements(),\n giftCardSelectContainer = _getGiftCardElements.giftCardSelectContainer,\n giftCardSelect = _getGiftCardElements.giftCardSelect,\n giftCardsList = _getGiftCardElements.giftCardsList,\n cancelMainPaymentGiftCard = _getGiftCardElements.cancelMainPaymentGiftCard,\n giftCardAddButton = _getGiftCardElements.giftCardAddButton;\n giftCardSelectContainer.classList.add('invisible');\n giftCardSelect.value = null;\n giftCardsList.innerHTML = '';\n cancelMainPaymentGiftCard.addEventListener('click', function () {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n cancelMainPaymentGiftCard.classList.add('invisible');\n giftCardAddButton.style.display = 'block';\n giftCardSelect.value = 'null';\n });\n if (store.componentsObj.giftcard) {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n }\n store.addedGiftCards.forEach(function (card) {\n renderAddedGiftCard(card);\n });\n if ((_store$addedGiftCards = store.addedGiftCards) !== null && _store$addedGiftCards !== void 0 && _store$addedGiftCards.length) {\n showGiftCardInfoMessage();\n }\n showGiftCardCancelButton(true);\n attachGiftCardCancelListener();\n createElementsToShowRemainingGiftCardAmount();\n}\nfunction makeGiftcardPaymentRequest(_x, _x2, _x3) {\n return _makeGiftcardPaymentRequest.apply(this, arguments);\n}\nfunction _makeGiftcardPaymentRequest() {\n _makeGiftcardPaymentRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(giftCardData, giftcardBalance, reject) {\n var brandSelect, selectedBrandIndex, giftcardBrand, partialPaymentRequest, partialPaymentResponse;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n brandSelect = document.getElementById('giftCardSelect');\n selectedBrandIndex = brandSelect.selectedIndex;\n giftcardBrand = brandSelect.options[selectedBrandIndex].text;\n partialPaymentRequest = {\n paymentMethod: giftCardData,\n amount: giftcardBalance,\n partialPaymentsOrder: {\n pspReference: store.adyenOrderData.pspReference,\n orderData: store.adyenOrderData.orderData\n },\n giftcardBrand: giftcardBrand\n };\n _context2.next = 6;\n return makePartialPayment(partialPaymentRequest);\n case 6:\n partialPaymentResponse = _context2.sent;\n if (partialPaymentResponse !== null && partialPaymentResponse !== void 0 && partialPaymentResponse.error) {\n reject();\n } else {\n handlePartialPaymentSuccess();\n }\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _makeGiftcardPaymentRequest.apply(this, arguments);\n}\nfunction getGiftCardConfig() {\n var giftcardBalance;\n return {\n showPayButton: true,\n onChange: function onChange(state) {\n store.updateSelectedPayment(constants.GIFTCARD, 'isValid', state.isValid);\n store.updateSelectedPayment(constants.GIFTCARD, 'stateData', state.data);\n },\n onBalanceCheck: function onBalanceCheck(resolve, reject, requestData) {\n $.ajax({\n type: 'POST',\n url: window.checkBalanceUrl,\n data: JSON.stringify(requestData),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n giftcardBalance = data.balance;\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n if (data.resultCode === constants.SUCCESS) {\n var _getGiftCardElements2 = getGiftCardElements(),\n giftCardsInfoMessageContainer = _getGiftCardElements2.giftCardsInfoMessageContainer,\n giftCardSelect = _getGiftCardElements2.giftCardSelect,\n cancelMainPaymentGiftCard = _getGiftCardElements2.cancelMainPaymentGiftCard,\n giftCardAddButton = _getGiftCardElements2.giftCardAddButton,\n giftCardSelectWrapper = _getGiftCardElements2.giftCardSelectWrapper;\n if (giftCardSelectWrapper) {\n giftCardSelectWrapper.classList.add('invisible');\n }\n var initialPartialObject = _objectSpread({}, store.partialPaymentsOrderObj);\n cancelMainPaymentGiftCard.classList.remove('invisible');\n cancelMainPaymentGiftCard.addEventListener('click', function () {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n cancelMainPaymentGiftCard.classList.add('invisible');\n giftCardAddButton.style.display = 'block';\n giftCardSelect.value = 'null';\n store.partialPaymentsOrderObj.remainingAmountFormatted = initialPartialObject.remainingAmountFormatted;\n store.partialPaymentsOrderObj.totalDiscountedAmount = initialPartialObject.totalDiscountedAmount;\n });\n document.querySelector('button[value=\"submit-payment\"]').disabled = true;\n giftCardsInfoMessageContainer.innerHTML = '';\n giftCardsInfoMessageContainer.classList.remove('gift-cards-info-message-container');\n store.partialPaymentsOrderObj.remainingAmountFormatted = data.remainingAmountFormatted;\n store.partialPaymentsOrderObj.totalDiscountedAmount = data.totalAmountFormatted;\n resolve(data);\n } else if (data.resultCode === constants.NOTENOUGHBALANCE) {\n resolve(data);\n } else {\n reject();\n }\n },\n fail: function fail() {\n reject();\n }\n });\n },\n onOrderRequest: function onOrderRequest(resolve, reject, requestData) {\n // Make a POST /orders request\n // Create an order for the total transaction amount\n var giftCardData = requestData.paymentMethod;\n if (store.adyenOrderData) {\n makeGiftcardPaymentRequest(giftCardData, giftcardBalance, reject);\n } else {\n $.ajax({\n type: 'POST',\n url: window.partialPaymentsOrderUrl,\n data: JSON.stringify(requestData),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n if (data.resultCode === 'Success') {\n store.adyenOrderData = data;\n // make payments call including giftcard data and order data\n makeGiftcardPaymentRequest(giftCardData, giftcardBalance, reject);\n }\n }\n });\n }\n },\n onSubmit: function onSubmit(state, component) {\n store.selectedMethod = state.data.paymentMethod.type;\n store.brand = component === null || component === void 0 ? void 0 : component.displayName;\n document.querySelector('input[name=\"brandCode\"]').checked = false;\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n }\n };\n}\nfunction handleOnChange(state) {\n store.isValid = state.isValid;\n if (!store.componentsObj[store.selectedMethod]) {\n store.componentsObj[store.selectedMethod] = {};\n }\n store.componentsObj[store.selectedMethod].isValid = store.isValid;\n store.componentsObj[store.selectedMethod].stateData = state.data;\n}\nvar actionHandler = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(action) {\n var checkout;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return AdyenCheckout(store.checkoutConfiguration);\n case 2:\n checkout = _context.sent;\n checkout.createFromAction(action).mount('#action-container');\n $('#action-modal').modal({\n backdrop: 'static',\n keyboard: false\n });\n if (action.type === constants.ACTIONTYPE.QRCODE) {\n document.getElementById('cancelQrMethodsButton').classList.remove('invisible');\n }\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function actionHandler(_x4) {\n return _ref.apply(this, arguments);\n };\n}();\nfunction handleOnAdditionalDetails(state) {\n $.ajax({\n type: 'POST',\n url: window.paymentsDetailsURL,\n data: JSON.stringify({\n data: state.data,\n orderToken: window.orderToken\n }),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n if (!data.isFinal && _typeof(data.action) === 'object') {\n actionHandler(data.action);\n } else {\n window.location.href = data.redirectUrl;\n }\n }\n });\n}\nfunction getAmazonpayConfig() {\n return {\n showPayButton: true,\n productType: 'PayAndShip',\n checkoutMode: 'ProcessOrder',\n locale: window.Configuration.locale,\n returnUrl: window.returnURL,\n onClick: function onClick(resolve, reject) {\n $('#dwfrm_billing').trigger('submit');\n if (store.formErrorsExist) {\n reject();\n } else {\n helpers.assignPaymentMethodValue();\n resolve();\n }\n },\n onError: function onError() {}\n };\n}\nfunction getApplePayConfig() {\n return {\n showPayButton: true,\n buttonColor: 'black',\n onSubmit: function onSubmit(state, component) {\n $('#dwfrm_billing').trigger('submit');\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n }\n };\n}\nfunction getCashAppConfig() {\n return {\n showPayButton: true,\n onSubmit: function onSubmit(state, component) {\n $('#dwfrm_billing').trigger('submit');\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n }\n };\n}\nfunction getKlarnaConfig() {\n var _window = window,\n klarnaWidgetEnabled = _window.klarnaWidgetEnabled;\n if (klarnaWidgetEnabled) {\n return {\n showPayButton: true,\n useKlarnaWidget: true,\n onSubmit: function onSubmit(state, component) {\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n },\n onAdditionalDetails: function onAdditionalDetails(state) {\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data);\n document.querySelector('#showConfirmationForm').submit();\n }\n };\n }\n return null;\n}\nfunction setCheckoutConfiguration() {\n store.checkoutConfiguration.onChange = handleOnChange;\n store.checkoutConfiguration.onAdditionalDetails = handleOnAdditionalDetails;\n store.checkoutConfiguration.showPayButton = false;\n store.checkoutConfiguration.clientKey = window.adyenClientKey;\n store.checkoutConfiguration.paymentMethodsConfiguration = {\n card: getCardConfig(),\n bcmc: getCardConfig(),\n storedCard: getCardConfig(),\n boletobancario: {\n personalDetailsRequired: true,\n // turn personalDetails section on/off\n billingAddressRequired: false,\n // turn billingAddress section on/off\n showEmailAddress: false // allow shopper to specify their email address\n },\n paywithgoogle: getGooglePayConfig(),\n googlepay: getGooglePayConfig(),\n paypal: getPaypalConfig(),\n amazonpay: getAmazonpayConfig(),\n giftcard: getGiftCardConfig(),\n applepay: getApplePayConfig(),\n klarna: getKlarnaConfig(),\n klarna_account: getKlarnaConfig(),\n klarna_paynow: getKlarnaConfig(),\n cashapp: getCashAppConfig()\n };\n}\nmodule.exports = {\n getCardConfig: getCardConfig,\n getPaypalConfig: getPaypalConfig,\n getGooglePayConfig: getGooglePayConfig,\n getAmazonpayConfig: getAmazonpayConfig,\n getGiftCardConfig: getGiftCardConfig,\n getApplePayConfig: getApplePayConfig,\n getCashAppConfig: getCashAppConfig,\n getKlarnaConfig: getKlarnaConfig,\n setCheckoutConfiguration: setCheckoutConfiguration,\n actionHandler: actionHandler\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar helpers = __webpack_require__(/*! ./helpers */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js\");\nvar _require = __webpack_require__(/*! ./makePartialPayment */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/makePartialPayment.js\"),\n makePartialPayment = _require.makePartialPayment;\nvar _require2 = __webpack_require__(/*! ../commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n onBrand = _require2.onBrand,\n onFieldValid = _require2.onFieldValid;\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar constants = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\");\nvar _require3 = __webpack_require__(/*! ./renderGiftcardComponent */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent.js\"),\n createElementsToShowRemainingGiftCardAmount = _require3.createElementsToShowRemainingGiftCardAmount,\n renderAddedGiftCard = _require3.renderAddedGiftCard,\n getGiftCardElements = _require3.getGiftCardElements,\n showGiftCardInfoMessage = _require3.showGiftCardInfoMessage,\n showGiftCardCancelButton = _require3.showGiftCardCancelButton,\n attachGiftCardCancelListener = _require3.attachGiftCardCancelListener;\nfunction getCardConfig() {\n return {\n enableStoreDetails: window.showStoreDetails,\n showBrandsUnderCardNumber: false,\n clickToPayConfiguration: {\n shopperEmail: window.customerEmail,\n merchantDisplayName: window.merchantAccount\n },\n exposeExpiryDate: false,\n onChange: function onChange(state) {\n store.isValid = state.isValid;\n var method = state.data.paymentMethod.storedPaymentMethodId ? \"storedCard\".concat(state.data.paymentMethod.storedPaymentMethodId) : store.selectedMethod;\n store.updateSelectedPayment(method, 'isValid', store.isValid);\n store.updateSelectedPayment(method, 'stateData', state.data);\n },\n onSubmit: function onSubmit() {\n helpers.assignPaymentMethodValue();\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n },\n onFieldValid: onFieldValid,\n onBrand: onBrand\n };\n}\nfunction getPaypalConfig() {\n store.paypalTerminatedEarly = false;\n return {\n showPayButton: true,\n environment: window.Configuration.environment,\n onSubmit: function onSubmit(state, component) {\n helpers.assignPaymentMethodValue();\n document.querySelector('#adyenStateData').value = JSON.stringify(store.selectedPayment.stateData);\n helpers.paymentFromComponent(state.data, component);\n },\n onCancel: function onCancel(data, component) {\n store.paypalTerminatedEarly = false;\n helpers.paymentFromComponent({\n cancelTransaction: true,\n merchantReference: document.querySelector('#merchantReference').value,\n orderToken: document.querySelector('#orderToken').value\n }, component);\n },\n onError: function onError(error, component) {\n store.paypalTerminatedEarly = false;\n if (component) {\n component.setStatus('ready');\n }\n document.querySelector('#showConfirmationForm').submit();\n },\n onAdditionalDetails: function onAdditionalDetails(state) {\n store.paypalTerminatedEarly = false;\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data);\n document.querySelector('#showConfirmationForm').submit();\n },\n onClick: function onClick(data, actions) {\n $('#dwfrm_billing').trigger('submit');\n if (store.formErrorsExist) {\n return actions.reject();\n }\n if (store.paypalTerminatedEarly) {\n helpers.paymentFromComponent({\n cancelTransaction: true,\n merchantReference: document.querySelector('#merchantReference').value\n });\n store.paypalTerminatedEarly = false;\n return actions.resolve();\n }\n store.paypalTerminatedEarly = true;\n return null;\n }\n };\n}\nfunction getGooglePayConfig() {\n return {\n environment: window.Configuration.environment,\n onSubmit: function onSubmit() {\n helpers.assignPaymentMethodValue();\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n },\n configuration: {\n gatewayMerchantId: window.merchantAccount\n },\n showPayButton: true,\n buttonColor: 'white'\n };\n}\nfunction handlePartialPaymentSuccess() {\n var _store$addedGiftCards;\n var _getGiftCardElements = getGiftCardElements(),\n giftCardSelectContainer = _getGiftCardElements.giftCardSelectContainer,\n giftCardSelect = _getGiftCardElements.giftCardSelect,\n giftCardsList = _getGiftCardElements.giftCardsList,\n cancelMainPaymentGiftCard = _getGiftCardElements.cancelMainPaymentGiftCard,\n giftCardAddButton = _getGiftCardElements.giftCardAddButton;\n giftCardSelectContainer.classList.add('invisible');\n giftCardSelect.value = null;\n giftCardsList.innerHTML = '';\n cancelMainPaymentGiftCard.addEventListener('click', function () {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n cancelMainPaymentGiftCard.classList.add('invisible');\n giftCardAddButton.style.display = 'block';\n giftCardSelect.value = 'null';\n });\n if (store.componentsObj.giftcard) {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n }\n store.addedGiftCards.forEach(function (card) {\n renderAddedGiftCard(card);\n });\n if ((_store$addedGiftCards = store.addedGiftCards) !== null && _store$addedGiftCards !== void 0 && _store$addedGiftCards.length) {\n showGiftCardInfoMessage();\n }\n showGiftCardCancelButton(true);\n attachGiftCardCancelListener();\n createElementsToShowRemainingGiftCardAmount();\n}\nfunction makeGiftcardPaymentRequest(_x, _x2, _x3) {\n return _makeGiftcardPaymentRequest.apply(this, arguments);\n}\nfunction _makeGiftcardPaymentRequest() {\n _makeGiftcardPaymentRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(giftCardData, giftcardBalance, reject) {\n var brandSelect, selectedBrandIndex, giftcardBrand, partialPaymentRequest, partialPaymentResponse;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n brandSelect = document.getElementById('giftCardSelect');\n selectedBrandIndex = brandSelect.selectedIndex;\n giftcardBrand = brandSelect.options[selectedBrandIndex].text;\n partialPaymentRequest = {\n paymentMethod: giftCardData,\n amount: giftcardBalance,\n partialPaymentsOrder: {\n pspReference: store.adyenOrderData.pspReference,\n orderData: store.adyenOrderData.orderData\n },\n giftcardBrand: giftcardBrand\n };\n _context2.next = 6;\n return makePartialPayment(partialPaymentRequest);\n case 6:\n partialPaymentResponse = _context2.sent;\n if (partialPaymentResponse !== null && partialPaymentResponse !== void 0 && partialPaymentResponse.error) {\n reject();\n } else {\n handlePartialPaymentSuccess();\n }\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _makeGiftcardPaymentRequest.apply(this, arguments);\n}\nfunction getGiftCardConfig() {\n var giftcardBalance;\n return {\n showPayButton: true,\n onChange: function onChange(state) {\n store.updateSelectedPayment(constants.GIFTCARD, 'isValid', state.isValid);\n store.updateSelectedPayment(constants.GIFTCARD, 'stateData', state.data);\n },\n onBalanceCheck: function onBalanceCheck(resolve, reject, requestData) {\n $.ajax({\n type: 'POST',\n url: window.checkBalanceUrl,\n data: JSON.stringify(requestData),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n giftcardBalance = data.balance;\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n if (data.resultCode === constants.SUCCESS) {\n var _getGiftCardElements2 = getGiftCardElements(),\n giftCardsInfoMessageContainer = _getGiftCardElements2.giftCardsInfoMessageContainer,\n giftCardSelect = _getGiftCardElements2.giftCardSelect,\n cancelMainPaymentGiftCard = _getGiftCardElements2.cancelMainPaymentGiftCard,\n giftCardAddButton = _getGiftCardElements2.giftCardAddButton,\n giftCardSelectWrapper = _getGiftCardElements2.giftCardSelectWrapper;\n if (giftCardSelectWrapper) {\n giftCardSelectWrapper.classList.add('invisible');\n }\n var initialPartialObject = _objectSpread({}, store.partialPaymentsOrderObj);\n cancelMainPaymentGiftCard.classList.remove('invisible');\n cancelMainPaymentGiftCard.addEventListener('click', function () {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n cancelMainPaymentGiftCard.classList.add('invisible');\n giftCardAddButton.style.display = 'block';\n giftCardSelect.value = 'null';\n store.partialPaymentsOrderObj.remainingAmountFormatted = initialPartialObject.remainingAmountFormatted;\n store.partialPaymentsOrderObj.totalDiscountedAmount = initialPartialObject.totalDiscountedAmount;\n });\n document.querySelector('button[value=\"submit-payment\"]').disabled = true;\n giftCardsInfoMessageContainer.innerHTML = '';\n giftCardsInfoMessageContainer.classList.remove('gift-cards-info-message-container');\n store.partialPaymentsOrderObj.remainingAmountFormatted = data.remainingAmountFormatted;\n store.partialPaymentsOrderObj.totalDiscountedAmount = data.totalAmountFormatted;\n resolve(data);\n } else if (data.resultCode === constants.NOTENOUGHBALANCE) {\n resolve(data);\n } else {\n reject();\n }\n },\n fail: function fail() {\n reject();\n }\n });\n },\n onOrderRequest: function onOrderRequest(resolve, reject, requestData) {\n // Make a POST /orders request\n // Create an order for the total transaction amount\n var giftCardData = requestData.paymentMethod;\n if (store.adyenOrderData) {\n makeGiftcardPaymentRequest(giftCardData, giftcardBalance, reject);\n } else {\n $.ajax({\n type: 'POST',\n url: window.partialPaymentsOrderUrl,\n data: JSON.stringify(requestData),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n if (data.resultCode === 'Success') {\n store.adyenOrderData = data;\n // make payments call including giftcard data and order data\n makeGiftcardPaymentRequest(giftCardData, giftcardBalance, reject);\n }\n }\n });\n }\n },\n onSubmit: function onSubmit(state, component) {\n store.selectedMethod = state.data.paymentMethod.type;\n store.brand = component === null || component === void 0 ? void 0 : component.displayName;\n document.querySelector('input[name=\"brandCode\"]').checked = false;\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n }\n };\n}\nfunction handleOnChange(state) {\n var type = state.data.paymentMethod.type;\n var multipleTxVariantComponents = constants.MULTIPLE_TX_VARIANTS_COMPONENTS;\n if (multipleTxVariantComponents.includes(store.selectedMethod)) {\n type = store.selectedMethod;\n }\n store.isValid = state.isValid;\n if (!store.componentsObj[type]) {\n store.componentsObj[type] = {};\n }\n store.componentsObj[type].isValid = store.isValid;\n store.componentsObj[type].stateData = state.data;\n}\nvar actionHandler = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(action) {\n var checkout;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return AdyenCheckout(store.checkoutConfiguration);\n case 2:\n checkout = _context.sent;\n checkout.createFromAction(action).mount('#action-container');\n $('#action-modal').modal({\n backdrop: 'static',\n keyboard: false\n });\n if (action.type === constants.ACTIONTYPE.QRCODE) {\n document.getElementById('cancelQrMethodsButton').classList.remove('invisible');\n }\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function actionHandler(_x4) {\n return _ref.apply(this, arguments);\n };\n}();\nfunction handleOnAdditionalDetails(state) {\n $.ajax({\n type: 'POST',\n url: window.paymentsDetailsURL,\n data: JSON.stringify({\n data: state.data,\n orderToken: window.orderToken\n }),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n if (!data.isFinal && _typeof(data.action) === 'object') {\n actionHandler(data.action);\n } else {\n window.location.href = data.redirectUrl;\n }\n }\n });\n}\nfunction getAmazonpayConfig() {\n return {\n showPayButton: true,\n productType: 'PayAndShip',\n checkoutMode: 'ProcessOrder',\n locale: window.Configuration.locale,\n returnUrl: window.returnURL,\n onClick: function onClick(resolve, reject) {\n $('#dwfrm_billing').trigger('submit');\n if (store.formErrorsExist) {\n reject();\n } else {\n helpers.assignPaymentMethodValue();\n resolve();\n }\n },\n onError: function onError() {}\n };\n}\nfunction getApplePayConfig() {\n return {\n showPayButton: true,\n buttonColor: 'black',\n onSubmit: function onSubmit(state, component) {\n $('#dwfrm_billing').trigger('submit');\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n }\n };\n}\nfunction getCashAppConfig() {\n return {\n showPayButton: true,\n onSubmit: function onSubmit(state, component) {\n $('#dwfrm_billing').trigger('submit');\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n }\n };\n}\nfunction getKlarnaConfig() {\n var _window = window,\n klarnaWidgetEnabled = _window.klarnaWidgetEnabled;\n if (klarnaWidgetEnabled) {\n return {\n showPayButton: true,\n useKlarnaWidget: true,\n onSubmit: function onSubmit(state, component) {\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n },\n onAdditionalDetails: function onAdditionalDetails(state) {\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data);\n document.querySelector('#showConfirmationForm').submit();\n }\n };\n }\n return null;\n}\nfunction setCheckoutConfiguration() {\n store.checkoutConfiguration.onChange = handleOnChange;\n store.checkoutConfiguration.onAdditionalDetails = handleOnAdditionalDetails;\n store.checkoutConfiguration.showPayButton = false;\n store.checkoutConfiguration.clientKey = window.adyenClientKey;\n store.checkoutConfiguration.paymentMethodsConfiguration = {\n card: getCardConfig(),\n bcmc: getCardConfig(),\n storedCard: getCardConfig(),\n boletobancario: {\n personalDetailsRequired: true,\n // turn personalDetails section on/off\n billingAddressRequired: false,\n // turn billingAddress section on/off\n showEmailAddress: false // allow shopper to specify their email address\n },\n paywithgoogle: getGooglePayConfig(),\n googlepay: getGooglePayConfig(),\n paypal: getPaypalConfig(),\n amazonpay: getAmazonpayConfig(),\n giftcard: getGiftCardConfig(),\n applepay: getApplePayConfig(),\n klarna: getKlarnaConfig(),\n klarna_account: getKlarnaConfig(),\n klarna_paynow: getKlarnaConfig(),\n cashapp: getCashAppConfig()\n };\n}\nmodule.exports = {\n getCardConfig: getCardConfig,\n getPaypalConfig: getPaypalConfig,\n getGooglePayConfig: getGooglePayConfig,\n getAmazonpayConfig: getAmazonpayConfig,\n getGiftCardConfig: getGiftCardConfig,\n getApplePayConfig: getApplePayConfig,\n getCashAppConfig: getCashAppConfig,\n getKlarnaConfig: getKlarnaConfig,\n setCheckoutConfiguration: setCheckoutConfiguration,\n actionHandler: actionHandler\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js?"); /***/ }), @@ -202,7 +202,7 @@ eval("\n\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridge /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = {\n applepay: window.isApplePayExpressEnabled === 'true',\n amazonpay: window.isAmazonPayExpressEnabled === 'true'\n };\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar _require = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n PAYPAL = _require.PAYPAL,\n APPLE_PAY = _require.APPLE_PAY,\n AMAZON_PAY = _require.AMAZON_PAY;\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = _defineProperty(_defineProperty(_defineProperty({}, APPLE_PAY, window.isApplePayExpressEnabled === 'true'), AMAZON_PAY, window.isAmazonPayExpressEnabled === 'true'), PAYPAL, window.isPayPalExpressEnabled === 'true');\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); /***/ }), @@ -214,7 +214,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); /***/ }), @@ -238,7 +238,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if ( true && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (true) {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n // Backwards/Legacy behavior, expects makeObservable(this)\n if (kind == \"field\") {\n addInitializer(function () {\n storeAnnotation(this, name, ann);\n });\n return;\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (true) {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (true) {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = true ? adm.name_ + \".\" + key.toString() : undefined);\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (true) {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, true ? adm.name_ + \".\" + name.toString() : undefined, false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if ( true && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.batchId_ = void 0;\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */;\n _proto.reportChanged = function reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion = globalState.stateVersion < Number.MAX_SAFE_INTEGER ? globalState.stateVersion + 1 : Number.MIN_SAFE_INTEGER;\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN;\n }\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.batchId = Number.MIN_SAFE_INTEGER;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n this.stateVersion = Number.MIN_SAFE_INTEGER;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\nfunction startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId = globalState.batchId < Number.MAX_SAFE_INTEGER ? globalState.batchId + 1 : Number.MIN_SAFE_INTEGER;\n }\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* Cancel */) {\n return;\n }\n if (outcome === 1 /* Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\r\n * Helper function for initializing observable structures, it applies:\r\n * 1. allowStateChanges so we don't violate enforceActions.\r\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\r\n * 3. batch to avoid state version updates\r\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); /***/ }), diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayCheckout.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayCheckout.js index 8deda6d6a..810367bbc 100644 --- a/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayCheckout.js +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayCheckout.js @@ -118,7 +118,7 @@ eval("\n\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runti /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); /***/ }), @@ -142,7 +142,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if ( true && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (true) {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n // Backwards/Legacy behavior, expects makeObservable(this)\n if (kind == \"field\") {\n addInitializer(function () {\n storeAnnotation(this, name, ann);\n });\n return;\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (true) {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (true) {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = true ? adm.name_ + \".\" + key.toString() : undefined);\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (true) {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, true ? adm.name_ + \".\" + name.toString() : undefined, false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if ( true && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.batchId_ = void 0;\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */;\n _proto.reportChanged = function reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion = globalState.stateVersion < Number.MAX_SAFE_INTEGER ? globalState.stateVersion + 1 : Number.MIN_SAFE_INTEGER;\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN;\n }\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.batchId = Number.MIN_SAFE_INTEGER;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n this.stateVersion = Number.MIN_SAFE_INTEGER;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\nfunction startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId = globalState.batchId < Number.MAX_SAFE_INTEGER ? globalState.batchId + 1 : Number.MIN_SAFE_INTEGER;\n }\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* Cancel */) {\n return;\n }\n if (outcome === 1 /* Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\r\n * Helper function for initializing observable structures, it applies:\r\n * 1. allowStateChanges so we don't violate enforceActions.\r\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\r\n * 3. batch to avoid state version updates\r\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); /***/ }), diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayExpressPart1.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayExpressPart1.js index a238b7404..4d7b86646 100644 --- a/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayExpressPart1.js +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayExpressPart1.js @@ -94,7 +94,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar _require = __webpack_require__(/*! ./commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n checkIfExpressMethodsAreReady = _require.checkIfExpressMethodsAreReady,\n updateLoadedExpressMethods = _require.updateLoadedExpressMethods,\n getPaymentMethods = _require.getPaymentMethods;\nvar AMAZON_PAY = 'amazonpay';\nfunction mountAmazonPayComponent() {\n return _mountAmazonPayComponent.apply(this, arguments);\n}\nfunction _mountAmazonPayComponent() {\n _mountAmazonPayComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _paymentMethodsRespon, data, paymentMethodsResponse, applicationInfo, checkout, amazonPayConfig, amazonPayButtonConfig, amazonPayButton;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return getPaymentMethods();\n case 3:\n data = _context.sent;\n paymentMethodsResponse = data === null || data === void 0 ? void 0 : data.AdyenPaymentMethods;\n applicationInfo = data === null || data === void 0 ? void 0 : data.applicationInfo;\n _context.next = 8;\n return AdyenCheckout({\n environment: window.environment,\n clientKey: window.clientKey,\n locale: window.locale,\n analytics: {\n analyticsData: {\n applicationInfo: applicationInfo\n }\n }\n });\n case 8:\n checkout = _context.sent;\n amazonPayConfig = paymentMethodsResponse === null || paymentMethodsResponse === void 0 ? void 0 : (_paymentMethodsRespon = paymentMethodsResponse.paymentMethods.find(function (pm) {\n return pm.type === AMAZON_PAY;\n })) === null || _paymentMethodsRespon === void 0 ? void 0 : _paymentMethodsRespon.configuration;\n if (amazonPayConfig) {\n _context.next = 12;\n break;\n }\n return _context.abrupt(\"return\");\n case 12:\n amazonPayButtonConfig = {\n showPayButton: true,\n productType: 'PayAndShip',\n configuration: amazonPayConfig,\n returnUrl: window.returnUrl,\n isExpress: true\n };\n amazonPayButton = checkout.create(AMAZON_PAY, amazonPayButtonConfig);\n amazonPayButton.mount('#amazonpay-container');\n updateLoadedExpressMethods(AMAZON_PAY);\n checkIfExpressMethodsAreReady();\n _context.next = 21;\n break;\n case 19:\n _context.prev = 19;\n _context.t0 = _context[\"catch\"](0);\n case 21:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 19]]);\n }));\n return _mountAmazonPayComponent.apply(this, arguments);\n}\nmountAmazonPayComponent();\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/amazonPayExpressPart1.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar _require = __webpack_require__(/*! ./commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n checkIfExpressMethodsAreReady = _require.checkIfExpressMethodsAreReady,\n updateLoadedExpressMethods = _require.updateLoadedExpressMethods,\n getPaymentMethods = _require.getPaymentMethods;\nvar _require2 = __webpack_require__(/*! ./constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n AMAZON_PAY = _require2.AMAZON_PAY;\nfunction mountAmazonPayComponent() {\n return _mountAmazonPayComponent.apply(this, arguments);\n}\nfunction _mountAmazonPayComponent() {\n _mountAmazonPayComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _paymentMethodsRespon, data, paymentMethodsResponse, applicationInfo, checkout, amazonPayConfig, amazonPayButtonConfig, amazonPayButton;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return getPaymentMethods();\n case 3:\n data = _context.sent;\n paymentMethodsResponse = data === null || data === void 0 ? void 0 : data.AdyenPaymentMethods;\n applicationInfo = data === null || data === void 0 ? void 0 : data.applicationInfo;\n _context.next = 8;\n return AdyenCheckout({\n environment: window.environment,\n clientKey: window.clientKey,\n locale: window.locale,\n analytics: {\n analyticsData: {\n applicationInfo: applicationInfo\n }\n }\n });\n case 8:\n checkout = _context.sent;\n amazonPayConfig = paymentMethodsResponse === null || paymentMethodsResponse === void 0 ? void 0 : (_paymentMethodsRespon = paymentMethodsResponse.paymentMethods.find(function (pm) {\n return pm.type === AMAZON_PAY;\n })) === null || _paymentMethodsRespon === void 0 ? void 0 : _paymentMethodsRespon.configuration;\n if (amazonPayConfig) {\n _context.next = 12;\n break;\n }\n return _context.abrupt(\"return\");\n case 12:\n amazonPayButtonConfig = {\n showPayButton: true,\n productType: 'PayAndShip',\n configuration: amazonPayConfig,\n returnUrl: window.returnUrl,\n isExpress: true\n };\n amazonPayButton = checkout.create(AMAZON_PAY, amazonPayButtonConfig);\n amazonPayButton.mount('#amazonpay-container');\n updateLoadedExpressMethods(AMAZON_PAY);\n checkIfExpressMethodsAreReady();\n _context.next = 21;\n break;\n case 19:\n _context.prev = 19;\n _context.t0 = _context[\"catch\"](0);\n case 21:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 19]]);\n }));\n return _mountAmazonPayComponent.apply(this, arguments);\n}\nmountAmazonPayComponent();\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/amazonPayExpressPart1.js?"); /***/ }), @@ -106,7 +106,19 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = {\n applepay: window.isApplePayExpressEnabled === 'true',\n amazonpay: window.isAmazonPayExpressEnabled === 'true'\n };\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar _require = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n PAYPAL = _require.PAYPAL,\n APPLE_PAY = _require.APPLE_PAY,\n AMAZON_PAY = _require.AMAZON_PAY;\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = _defineProperty(_defineProperty(_defineProperty({}, APPLE_PAY, window.isApplePayExpressEnabled === 'true'), AMAZON_PAY, window.isAmazonPayExpressEnabled === 'true'), PAYPAL, window.isPayPalExpressEnabled === 'true');\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js": +/*!****************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); /***/ }), @@ -130,7 +142,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if ( true && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (true) {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n // Backwards/Legacy behavior, expects makeObservable(this)\n if (kind == \"field\") {\n addInitializer(function () {\n storeAnnotation(this, name, ann);\n });\n return;\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (true) {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (true) {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = true ? adm.name_ + \".\" + key.toString() : undefined);\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (true) {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, true ? adm.name_ + \".\" + name.toString() : undefined, false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if ( true && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.batchId_ = void 0;\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */;\n _proto.reportChanged = function reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion = globalState.stateVersion < Number.MAX_SAFE_INTEGER ? globalState.stateVersion + 1 : Number.MIN_SAFE_INTEGER;\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN;\n }\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.batchId = Number.MIN_SAFE_INTEGER;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n this.stateVersion = Number.MIN_SAFE_INTEGER;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\nfunction startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId = globalState.batchId < Number.MAX_SAFE_INTEGER ? globalState.batchId + 1 : Number.MIN_SAFE_INTEGER;\n }\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* Cancel */) {\n return;\n }\n if (outcome === 1 /* Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\r\n * Helper function for initializing observable structures, it applies:\r\n * 1. allowStateChanges so we don't violate enforceActions.\r\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\r\n * 3. batch to avoid state version updates\r\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); /***/ }), diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayExpressPart2.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayExpressPart2.js index f2fab7cf8..a754825df 100644 --- a/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayExpressPart2.js +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/amazonPayExpressPart2.js @@ -106,7 +106,19 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = {\n applepay: window.isApplePayExpressEnabled === 'true',\n amazonpay: window.isAmazonPayExpressEnabled === 'true'\n };\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar _require = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n PAYPAL = _require.PAYPAL,\n APPLE_PAY = _require.APPLE_PAY,\n AMAZON_PAY = _require.AMAZON_PAY;\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = _defineProperty(_defineProperty(_defineProperty({}, APPLE_PAY, window.isApplePayExpressEnabled === 'true'), AMAZON_PAY, window.isAmazonPayExpressEnabled === 'true'), PAYPAL, window.isPayPalExpressEnabled === 'true');\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js": +/*!****************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); /***/ }), @@ -130,7 +142,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if ( true && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (true) {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n // Backwards/Legacy behavior, expects makeObservable(this)\n if (kind == \"field\") {\n addInitializer(function () {\n storeAnnotation(this, name, ann);\n });\n return;\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (true) {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (true) {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = true ? adm.name_ + \".\" + key.toString() : undefined);\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (true) {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, true ? adm.name_ + \".\" + name.toString() : undefined, false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if ( true && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.batchId_ = void 0;\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */;\n _proto.reportChanged = function reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion = globalState.stateVersion < Number.MAX_SAFE_INTEGER ? globalState.stateVersion + 1 : Number.MIN_SAFE_INTEGER;\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN;\n }\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.batchId = Number.MIN_SAFE_INTEGER;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n this.stateVersion = Number.MIN_SAFE_INTEGER;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\nfunction startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId = globalState.batchId < Number.MAX_SAFE_INTEGER ? globalState.batchId + 1 : Number.MIN_SAFE_INTEGER;\n }\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* Cancel */) {\n return;\n }\n if (outcome === 1 /* Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\r\n * Helper function for initializing observable structures, it applies:\r\n * 1. allowStateChanges so we don't violate enforceActions.\r\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\r\n * 3. batch to avoid state version updates\r\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); /***/ }), diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/applePayExpress.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/applePayExpress.js index 82823c869..c53470ea7 100644 --- a/cartridges/app_adyen_SFRA/cartridge/static/default/js/applePayExpress.js +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/applePayExpress.js @@ -106,7 +106,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar helpers = __webpack_require__(/*! ./adyen_checkout/helpers */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js\");\nvar _require = __webpack_require__(/*! ./commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n checkIfExpressMethodsAreReady = _require.checkIfExpressMethodsAreReady;\nvar _require2 = __webpack_require__(/*! ./commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n updateLoadedExpressMethods = _require2.updateLoadedExpressMethods,\n getPaymentMethods = _require2.getPaymentMethods;\nvar _require3 = __webpack_require__(/*! ./constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n APPLE_PAY = _require3.APPLE_PAY;\nvar checkout;\nvar shippingMethodsData;\nvar paymentMethodsResponse;\nfunction initializeCheckout() {\n return _initializeCheckout.apply(this, arguments);\n}\nfunction _initializeCheckout() {\n _initializeCheckout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _paymentMethodsRespon3;\n var shippingMethods, applicationInfo;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return getPaymentMethods();\n case 2:\n paymentMethodsResponse = _context5.sent;\n _context5.next = 5;\n return fetch(window.shippingMethodsUrl);\n case 5:\n shippingMethods = _context5.sent;\n _context5.next = 8;\n return shippingMethods.json();\n case 8:\n shippingMethodsData = _context5.sent;\n applicationInfo = (_paymentMethodsRespon3 = paymentMethodsResponse) === null || _paymentMethodsRespon3 === void 0 ? void 0 : _paymentMethodsRespon3.applicationInfo;\n _context5.next = 12;\n return AdyenCheckout({\n environment: window.environment,\n clientKey: window.clientKey,\n locale: window.locale,\n analytics: {\n analyticsData: {\n applicationInfo: applicationInfo\n }\n }\n });\n case 12:\n checkout = _context5.sent;\n case 13:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return _initializeCheckout.apply(this, arguments);\n}\nfunction createApplePayButton(_x) {\n return _createApplePayButton.apply(this, arguments);\n}\nfunction _createApplePayButton() {\n _createApplePayButton = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(applePayButtonConfig) {\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n return _context6.abrupt(\"return\", checkout.create(APPLE_PAY, applePayButtonConfig));\n case 1:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return _createApplePayButton.apply(this, arguments);\n}\nfunction formatCustomerObject(customerData, billingData) {\n return {\n addressBook: {\n addresses: {},\n preferredAddress: {\n address1: customerData.addressLines[0],\n address2: customerData.addressLines.length > 1 ? customerData.addressLines[1] : null,\n city: customerData.locality,\n countryCode: {\n displayValue: customerData.country,\n value: customerData.countryCode\n },\n firstName: customerData.givenName,\n lastName: customerData.familyName,\n ID: customerData.emailAddress,\n postalCode: customerData.postalCode,\n stateCode: customerData.administrativeArea\n }\n },\n billingAddressDetails: {\n address1: billingData.addressLines[0],\n address2: billingData.addressLines.length > 1 ? billingData.addressLines[1] : null,\n city: billingData.locality,\n countryCode: {\n displayValue: billingData.country,\n value: billingData.countryCode\n },\n firstName: billingData.givenName,\n lastName: billingData.familyName,\n postalCode: billingData.postalCode,\n stateCode: billingData.administrativeArea\n },\n customer: {},\n profile: {\n firstName: customerData.givenName,\n lastName: customerData.familyName,\n email: customerData.emailAddress,\n phone: customerData.phoneNumber\n }\n };\n}\nfunction handleAuthorised(response, resolveApplePay) {\n var _response$fullRespons, _response$fullRespons2, _response$fullRespons3, _response$fullRespons4, _response$fullRespons5, _response$fullRespons6, _response$fullRespons7;\n resolveApplePay();\n document.querySelector('#result').value = JSON.stringify({\n pspReference: (_response$fullRespons = response.fullResponse) === null || _response$fullRespons === void 0 ? void 0 : _response$fullRespons.pspReference,\n resultCode: (_response$fullRespons2 = response.fullResponse) === null || _response$fullRespons2 === void 0 ? void 0 : _response$fullRespons2.resultCode,\n paymentMethod: (_response$fullRespons3 = response.fullResponse) !== null && _response$fullRespons3 !== void 0 && _response$fullRespons3.paymentMethod ? response.fullResponse.paymentMethod : (_response$fullRespons4 = response.fullResponse) === null || _response$fullRespons4 === void 0 ? void 0 : (_response$fullRespons5 = _response$fullRespons4.additionalData) === null || _response$fullRespons5 === void 0 ? void 0 : _response$fullRespons5.paymentMethod,\n donationToken: (_response$fullRespons6 = response.fullResponse) === null || _response$fullRespons6 === void 0 ? void 0 : _response$fullRespons6.donationToken,\n amount: (_response$fullRespons7 = response.fullResponse) === null || _response$fullRespons7 === void 0 ? void 0 : _response$fullRespons7.amount\n });\n document.querySelector('#showConfirmationForm').submit();\n}\nfunction handleError(rejectApplePay) {\n rejectApplePay();\n document.querySelector('#result').value = JSON.stringify({\n error: true\n });\n document.querySelector('#showConfirmationForm').submit();\n}\nfunction handleApplePayResponse(response, resolveApplePay, rejectApplePay) {\n if (response.resultCode === 'Authorised') {\n handleAuthorised(response, resolveApplePay);\n } else {\n handleError(rejectApplePay);\n }\n}\nfunction callPaymentFromComponent(data, resolveApplePay, rejectApplePay) {\n return $.ajax({\n url: window.paymentFromComponentURL,\n type: 'post',\n data: {\n data: JSON.stringify(data),\n paymentMethod: APPLE_PAY\n },\n success: function success(response) {\n helpers.createShowConfirmationForm(window.showConfirmationAction);\n helpers.setOrderFormData(response);\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(data);\n handleApplePayResponse(response, resolveApplePay, rejectApplePay);\n }\n }).fail(function () {\n rejectApplePay();\n });\n}\ninitializeCheckout().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var _paymentMethodsRespon, _paymentMethodsRespon2;\n var applePayPaymentMethod, applePayConfig, applePayButtonConfig, cartContainer, applePayButton, isApplePayButtonAvailable, expressCheckoutNodesIndex;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n applePayPaymentMethod = (_paymentMethodsRespon = paymentMethodsResponse) === null || _paymentMethodsRespon === void 0 ? void 0 : (_paymentMethodsRespon2 = _paymentMethodsRespon.AdyenPaymentMethods) === null || _paymentMethodsRespon2 === void 0 ? void 0 : _paymentMethodsRespon2.paymentMethods.find(function (pm) {\n return pm.type === APPLE_PAY;\n });\n if (applePayPaymentMethod) {\n _context4.next = 5;\n break;\n }\n updateLoadedExpressMethods(APPLE_PAY);\n checkIfExpressMethodsAreReady();\n return _context4.abrupt(\"return\");\n case 5:\n applePayConfig = applePayPaymentMethod.configuration;\n applePayButtonConfig = {\n showPayButton: true,\n isExpress: true,\n configuration: applePayConfig,\n amount: JSON.parse(window.basketAmount),\n requiredShippingContactFields: ['postalAddress', 'email', 'phone'],\n requiredBillingContactFields: ['postalAddress', 'phone'],\n shippingMethods: shippingMethodsData.shippingMethods.map(function (sm) {\n return {\n label: sm.displayName,\n detail: sm.description,\n identifier: sm.ID,\n amount: \"\".concat(sm.shippingCost.value)\n };\n }),\n onAuthorized: function () {\n var _onAuthorized = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject, event) {\n var customerData, billingData, customer, stateData, resolveApplePay;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n customerData = event.payment.shippingContact;\n billingData = event.payment.billingContact;\n customer = formatCustomerObject(customerData, billingData);\n stateData = {\n paymentMethod: {\n type: APPLE_PAY,\n applePayToken: event.payment.token.paymentData\n },\n paymentType: 'express'\n };\n resolveApplePay = function resolveApplePay() {\n // ** is used instead of Math.pow\n var value = applePayButtonConfig.amount.value * Math.pow(10, parseInt(window.digitsNumber, 10));\n var finalPriceUpdate = {\n newTotal: {\n type: 'final',\n label: applePayConfig.merchantName,\n amount: \"\".concat(Math.round(value))\n }\n };\n resolve(finalPriceUpdate);\n };\n _context.next = 8;\n return callPaymentFromComponent(_objectSpread(_objectSpread({}, stateData), {}, {\n customer: customer\n }), resolveApplePay, reject);\n case 8:\n _context.next = 13;\n break;\n case 10:\n _context.prev = 10;\n _context.t0 = _context[\"catch\"](0);\n reject(_context.t0);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 10]]);\n }));\n function onAuthorized(_x2, _x3, _x4) {\n return _onAuthorized.apply(this, arguments);\n }\n return onAuthorized;\n }(),\n onSubmit: function onSubmit() {\n // This handler is empty to prevent sending a second payment request\n // We already do the payment in paymentFromComponent\n },\n onShippingMethodSelected: function () {\n var _onShippingMethodSelected = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(resolve, reject, event) {\n var shippingMethod, matchingShippingMethod, calculationResponse, newCalculation, applePayShippingMethodUpdate;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n shippingMethod = event.shippingMethod;\n matchingShippingMethod = shippingMethodsData.shippingMethods.find(function (sm) {\n return sm.ID === shippingMethod.identifier;\n });\n _context2.next = 4;\n return fetch(\"\".concat(window.calculateAmountUrl, \"?\").concat(new URLSearchParams({\n shipmentUUID: matchingShippingMethod.shipmentUUID,\n methodID: matchingShippingMethod.ID\n })), {\n method: 'POST'\n });\n case 4:\n calculationResponse = _context2.sent;\n if (!calculationResponse.ok) {\n _context2.next = 14;\n break;\n }\n _context2.next = 8;\n return calculationResponse.json();\n case 8:\n newCalculation = _context2.sent;\n applePayButtonConfig.amount = {\n value: newCalculation.grandTotalAmount.value,\n currency: newCalculation.grandTotalAmount.currency\n };\n applePayShippingMethodUpdate = {\n newTotal: {\n type: 'final',\n label: applePayConfig.merchantName,\n amount: newCalculation.grandTotalAmount.value\n }\n };\n resolve(applePayShippingMethodUpdate);\n _context2.next = 15;\n break;\n case 14:\n reject();\n case 15:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function onShippingMethodSelected(_x5, _x6, _x7) {\n return _onShippingMethodSelected.apply(this, arguments);\n }\n return onShippingMethodSelected;\n }(),\n onShippingContactSelected: function () {\n var _onShippingContactSelected = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(resolve, reject, event) {\n var shippingContact, shippingMethods, _shippingMethodsData$, selectedShippingMethod, calculationResponse, shippingMethodsStructured, newCalculation, applePayShippingContactUpdate;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n shippingContact = event.shippingContact;\n _context3.next = 3;\n return fetch(\"\".concat(window.shippingMethodsUrl, \"?\").concat(new URLSearchParams({\n city: shippingContact.locality,\n country: shippingContact.country,\n countryCode: shippingContact.countryCode,\n stateCode: shippingContact.administrativeArea,\n postalCode: shippingContact.postalCode\n })));\n case 3:\n shippingMethods = _context3.sent;\n if (!shippingMethods.ok) {\n _context3.next = 28;\n break;\n }\n _context3.next = 7;\n return shippingMethods.json();\n case 7:\n shippingMethodsData = _context3.sent;\n if (!((_shippingMethodsData$ = shippingMethodsData.shippingMethods) !== null && _shippingMethodsData$ !== void 0 && _shippingMethodsData$.length)) {\n _context3.next = 25;\n break;\n }\n selectedShippingMethod = shippingMethodsData.shippingMethods[0];\n _context3.next = 12;\n return fetch(\"\".concat(window.calculateAmountUrl, \"?\").concat(new URLSearchParams({\n shipmentUUID: selectedShippingMethod.shipmentUUID,\n methodID: selectedShippingMethod.ID\n })), {\n method: 'POST'\n });\n case 12:\n calculationResponse = _context3.sent;\n if (!calculationResponse.ok) {\n _context3.next = 22;\n break;\n }\n shippingMethodsStructured = shippingMethodsData.shippingMethods.map(function (sm) {\n return {\n label: sm.displayName,\n detail: sm.description,\n identifier: sm.ID,\n amount: \"\".concat(sm.shippingCost.value)\n };\n });\n _context3.next = 17;\n return calculationResponse.json();\n case 17:\n newCalculation = _context3.sent;\n applePayShippingContactUpdate = {\n newShippingMethods: shippingMethodsStructured,\n newTotal: {\n type: 'final',\n label: applePayConfig.merchantName,\n amount: newCalculation.grandTotalAmount.value\n }\n };\n resolve(applePayShippingContactUpdate);\n _context3.next = 23;\n break;\n case 22:\n reject();\n case 23:\n _context3.next = 26;\n break;\n case 25:\n reject();\n case 26:\n _context3.next = 29;\n break;\n case 28:\n reject();\n case 29:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function onShippingContactSelected(_x8, _x9, _x10) {\n return _onShippingContactSelected.apply(this, arguments);\n }\n return onShippingContactSelected;\n }()\n };\n cartContainer = document.getElementsByClassName(APPLE_PAY);\n _context4.next = 10;\n return createApplePayButton(applePayButtonConfig);\n case 10:\n applePayButton = _context4.sent;\n _context4.next = 13;\n return applePayButton.isAvailable();\n case 13:\n isApplePayButtonAvailable = _context4.sent;\n if (isApplePayButtonAvailable) {\n for (expressCheckoutNodesIndex = 0; expressCheckoutNodesIndex < cartContainer.length; expressCheckoutNodesIndex += 1) {\n applePayButton.mount(cartContainer[expressCheckoutNodesIndex]);\n }\n }\n updateLoadedExpressMethods(APPLE_PAY);\n checkIfExpressMethodsAreReady();\n case 17:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n})))[\"catch\"](function () {\n updateLoadedExpressMethods(APPLE_PAY);\n checkIfExpressMethodsAreReady();\n});\nmodule.exports = {\n handleAuthorised: handleAuthorised,\n handleError: handleError,\n handleApplePayResponse: handleApplePayResponse,\n callPaymentFromComponent: callPaymentFromComponent,\n formatCustomerObject: formatCustomerObject\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/applePayExpress.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar helpers = __webpack_require__(/*! ./adyen_checkout/helpers */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js\");\nvar _require = __webpack_require__(/*! ./commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n checkIfExpressMethodsAreReady = _require.checkIfExpressMethodsAreReady;\nvar _require2 = __webpack_require__(/*! ./commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n updateLoadedExpressMethods = _require2.updateLoadedExpressMethods,\n getPaymentMethods = _require2.getPaymentMethods;\nvar _require3 = __webpack_require__(/*! ./constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n APPLE_PAY = _require3.APPLE_PAY;\nvar checkout;\nvar shippingMethodsData;\nvar paymentMethodsResponse;\nfunction formatCustomerObject(customerData, billingData) {\n return {\n addressBook: {\n addresses: {},\n preferredAddress: {\n address1: customerData.addressLines[0],\n address2: customerData.addressLines.length > 1 ? customerData.addressLines[1] : null,\n city: customerData.locality,\n countryCode: {\n displayValue: customerData.country,\n value: customerData.countryCode\n },\n firstName: customerData.givenName,\n lastName: customerData.familyName,\n ID: customerData.emailAddress,\n postalCode: customerData.postalCode,\n stateCode: customerData.administrativeArea\n }\n },\n billingAddressDetails: {\n address1: billingData.addressLines[0],\n address2: billingData.addressLines.length > 1 ? billingData.addressLines[1] : null,\n city: billingData.locality,\n countryCode: {\n displayValue: billingData.country,\n value: billingData.countryCode\n },\n firstName: billingData.givenName,\n lastName: billingData.familyName,\n postalCode: billingData.postalCode,\n stateCode: billingData.administrativeArea\n },\n customer: {},\n profile: {\n firstName: customerData.givenName,\n lastName: customerData.familyName,\n email: customerData.emailAddress,\n phone: customerData.phoneNumber\n }\n };\n}\nfunction handleAuthorised(response, resolveApplePay) {\n var _response$fullRespons, _response$fullRespons2, _response$fullRespons3, _response$fullRespons4, _response$fullRespons5, _response$fullRespons6, _response$fullRespons7;\n resolveApplePay();\n document.querySelector('#result').value = JSON.stringify({\n pspReference: (_response$fullRespons = response.fullResponse) === null || _response$fullRespons === void 0 ? void 0 : _response$fullRespons.pspReference,\n resultCode: (_response$fullRespons2 = response.fullResponse) === null || _response$fullRespons2 === void 0 ? void 0 : _response$fullRespons2.resultCode,\n paymentMethod: (_response$fullRespons3 = response.fullResponse) !== null && _response$fullRespons3 !== void 0 && _response$fullRespons3.paymentMethod ? response.fullResponse.paymentMethod : (_response$fullRespons4 = response.fullResponse) === null || _response$fullRespons4 === void 0 ? void 0 : (_response$fullRespons5 = _response$fullRespons4.additionalData) === null || _response$fullRespons5 === void 0 ? void 0 : _response$fullRespons5.paymentMethod,\n donationToken: (_response$fullRespons6 = response.fullResponse) === null || _response$fullRespons6 === void 0 ? void 0 : _response$fullRespons6.donationToken,\n amount: (_response$fullRespons7 = response.fullResponse) === null || _response$fullRespons7 === void 0 ? void 0 : _response$fullRespons7.amount\n });\n document.querySelector('#showConfirmationForm').submit();\n}\nfunction handleError(rejectApplePay) {\n rejectApplePay();\n document.querySelector('#result').value = JSON.stringify({\n error: true\n });\n document.querySelector('#showConfirmationForm').submit();\n}\nfunction handleApplePayResponse(response, resolveApplePay, rejectApplePay) {\n if (response.resultCode === 'Authorised') {\n handleAuthorised(response, resolveApplePay);\n } else {\n handleError(rejectApplePay);\n }\n}\nfunction callPaymentFromComponent(data, resolveApplePay, rejectApplePay) {\n return $.ajax({\n url: window.paymentFromComponentURL,\n type: 'post',\n data: {\n data: JSON.stringify(data),\n paymentMethod: APPLE_PAY\n },\n success: function success(response) {\n helpers.createShowConfirmationForm(window.showConfirmationAction);\n helpers.setOrderFormData(response);\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(data);\n handleApplePayResponse(response, resolveApplePay, rejectApplePay);\n }\n }).fail(function () {\n rejectApplePay();\n });\n}\nfunction selectShippingMethod(_ref) {\n var shipmentUUID = _ref.shipmentUUID,\n ID = _ref.ID;\n var request = {\n paymentMethodType: APPLE_PAY,\n shipmentUUID: shipmentUUID,\n methodID: ID\n };\n return fetch(window.selectShippingMethodUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n },\n body: JSON.stringify(request)\n });\n}\nfunction getShippingMethod(shippingContact) {\n var request = {\n paymentMethodType: APPLE_PAY\n };\n if (shippingContact) {\n request.address = {\n city: shippingContact.locality,\n country: shippingContact.country,\n countryCode: shippingContact.countryCode,\n stateCode: shippingContact.administrativeArea,\n postalCode: shippingContact.postalCode\n };\n }\n return fetch(window.shippingMethodsUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n },\n body: JSON.stringify(request)\n });\n}\nfunction initializeCheckout() {\n return _initializeCheckout.apply(this, arguments);\n}\nfunction _initializeCheckout() {\n _initializeCheckout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _paymentMethodsRespon3;\n var shippingMethods, applicationInfo;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return getPaymentMethods();\n case 2:\n paymentMethodsResponse = _context5.sent;\n _context5.next = 5;\n return getShippingMethod();\n case 5:\n shippingMethods = _context5.sent;\n _context5.next = 8;\n return shippingMethods.json();\n case 8:\n shippingMethodsData = _context5.sent;\n applicationInfo = (_paymentMethodsRespon3 = paymentMethodsResponse) === null || _paymentMethodsRespon3 === void 0 ? void 0 : _paymentMethodsRespon3.applicationInfo;\n _context5.next = 12;\n return AdyenCheckout({\n environment: window.environment,\n clientKey: window.clientKey,\n locale: window.locale,\n analytics: {\n analyticsData: {\n applicationInfo: applicationInfo\n }\n }\n });\n case 12:\n checkout = _context5.sent;\n case 13:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return _initializeCheckout.apply(this, arguments);\n}\nfunction createApplePayButton(_x) {\n return _createApplePayButton.apply(this, arguments);\n}\nfunction _createApplePayButton() {\n _createApplePayButton = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(applePayButtonConfig) {\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n return _context6.abrupt(\"return\", checkout.create(APPLE_PAY, applePayButtonConfig));\n case 1:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return _createApplePayButton.apply(this, arguments);\n}\ninitializeCheckout().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var _paymentMethodsRespon, _paymentMethodsRespon2;\n var applePayPaymentMethod, applePayConfig, applePayButtonConfig, cartContainer, applePayButton, isApplePayButtonAvailable, expressCheckoutNodesIndex;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n applePayPaymentMethod = (_paymentMethodsRespon = paymentMethodsResponse) === null || _paymentMethodsRespon === void 0 ? void 0 : (_paymentMethodsRespon2 = _paymentMethodsRespon.AdyenPaymentMethods) === null || _paymentMethodsRespon2 === void 0 ? void 0 : _paymentMethodsRespon2.paymentMethods.find(function (pm) {\n return pm.type === APPLE_PAY;\n });\n if (applePayPaymentMethod) {\n _context4.next = 5;\n break;\n }\n updateLoadedExpressMethods(APPLE_PAY);\n checkIfExpressMethodsAreReady();\n return _context4.abrupt(\"return\");\n case 5:\n applePayConfig = applePayPaymentMethod.configuration;\n applePayButtonConfig = {\n showPayButton: true,\n isExpress: true,\n configuration: applePayConfig,\n amount: JSON.parse(window.basketAmount),\n requiredShippingContactFields: ['postalAddress', 'email', 'phone'],\n requiredBillingContactFields: ['postalAddress', 'phone'],\n shippingMethods: shippingMethodsData.shippingMethods.map(function (sm) {\n return {\n label: sm.displayName,\n detail: sm.description,\n identifier: sm.ID,\n amount: \"\".concat(sm.shippingCost.value)\n };\n }),\n onAuthorized: function () {\n var _onAuthorized = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject, event) {\n var customerData, billingData, customer, stateData, resolveApplePay;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n customerData = event.payment.shippingContact;\n billingData = event.payment.billingContact;\n customer = formatCustomerObject(customerData, billingData);\n stateData = {\n paymentMethod: {\n type: APPLE_PAY,\n applePayToken: event.payment.token.paymentData\n },\n paymentType: 'express'\n };\n resolveApplePay = function resolveApplePay() {\n // ** is used instead of Math.pow\n var value = applePayButtonConfig.amount.value * Math.pow(10, parseInt(window.digitsNumber, 10));\n var finalPriceUpdate = {\n newTotal: {\n type: 'final',\n label: applePayConfig.merchantName,\n amount: \"\".concat(Math.round(value))\n }\n };\n resolve(finalPriceUpdate);\n };\n _context.next = 8;\n return callPaymentFromComponent(_objectSpread(_objectSpread({}, stateData), {}, {\n customer: customer\n }), resolveApplePay, reject);\n case 8:\n _context.next = 13;\n break;\n case 10:\n _context.prev = 10;\n _context.t0 = _context[\"catch\"](0);\n reject(_context.t0);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 10]]);\n }));\n function onAuthorized(_x2, _x3, _x4) {\n return _onAuthorized.apply(this, arguments);\n }\n return onAuthorized;\n }(),\n onSubmit: function onSubmit() {\n // This handler is empty to prevent sending a second payment request\n // We already do the payment in paymentFromComponent\n },\n onShippingMethodSelected: function () {\n var _onShippingMethodSelected = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(resolve, reject, event) {\n var shippingMethod, matchingShippingMethod, calculationResponse, newCalculation, applePayShippingMethodUpdate;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n shippingMethod = event.shippingMethod;\n matchingShippingMethod = shippingMethodsData.shippingMethods.find(function (sm) {\n return sm.ID === shippingMethod.identifier;\n });\n _context2.next = 4;\n return selectShippingMethod(matchingShippingMethod);\n case 4:\n calculationResponse = _context2.sent;\n if (!calculationResponse.ok) {\n _context2.next = 14;\n break;\n }\n _context2.next = 8;\n return calculationResponse.json();\n case 8:\n newCalculation = _context2.sent;\n applePayButtonConfig.amount = {\n value: newCalculation.grandTotalAmount.value,\n currency: newCalculation.grandTotalAmount.currency\n };\n applePayShippingMethodUpdate = {\n newTotal: {\n type: 'final',\n label: applePayConfig.merchantName,\n amount: newCalculation.grandTotalAmount.value\n }\n };\n resolve(applePayShippingMethodUpdate);\n _context2.next = 15;\n break;\n case 14:\n reject();\n case 15:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function onShippingMethodSelected(_x5, _x6, _x7) {\n return _onShippingMethodSelected.apply(this, arguments);\n }\n return onShippingMethodSelected;\n }(),\n onShippingContactSelected: function () {\n var _onShippingContactSelected = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(resolve, reject, event) {\n var shippingContact, shippingMethods, _shippingMethodsData$, selectedShippingMethod, calculationResponse, shippingMethodsStructured, newCalculation, applePayShippingContactUpdate;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n shippingContact = event.shippingContact;\n _context3.next = 3;\n return getShippingMethod(shippingContact);\n case 3:\n shippingMethods = _context3.sent;\n if (!shippingMethods.ok) {\n _context3.next = 28;\n break;\n }\n _context3.next = 7;\n return shippingMethods.json();\n case 7:\n shippingMethodsData = _context3.sent;\n if (!((_shippingMethodsData$ = shippingMethodsData.shippingMethods) !== null && _shippingMethodsData$ !== void 0 && _shippingMethodsData$.length)) {\n _context3.next = 25;\n break;\n }\n selectedShippingMethod = shippingMethodsData.shippingMethods[0];\n _context3.next = 12;\n return selectShippingMethod(selectedShippingMethod);\n case 12:\n calculationResponse = _context3.sent;\n if (!calculationResponse.ok) {\n _context3.next = 22;\n break;\n }\n shippingMethodsStructured = shippingMethodsData.shippingMethods.map(function (sm) {\n return {\n label: sm.displayName,\n detail: sm.description,\n identifier: sm.ID,\n amount: \"\".concat(sm.shippingCost.value)\n };\n });\n _context3.next = 17;\n return calculationResponse.json();\n case 17:\n newCalculation = _context3.sent;\n applePayShippingContactUpdate = {\n newShippingMethods: shippingMethodsStructured,\n newTotal: {\n type: 'final',\n label: applePayConfig.merchantName,\n amount: newCalculation.grandTotalAmount.value\n }\n };\n resolve(applePayShippingContactUpdate);\n _context3.next = 23;\n break;\n case 22:\n reject();\n case 23:\n _context3.next = 26;\n break;\n case 25:\n reject();\n case 26:\n _context3.next = 29;\n break;\n case 28:\n reject();\n case 29:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function onShippingContactSelected(_x8, _x9, _x10) {\n return _onShippingContactSelected.apply(this, arguments);\n }\n return onShippingContactSelected;\n }()\n };\n cartContainer = document.getElementsByClassName(APPLE_PAY);\n _context4.next = 10;\n return createApplePayButton(applePayButtonConfig);\n case 10:\n applePayButton = _context4.sent;\n _context4.next = 13;\n return applePayButton.isAvailable();\n case 13:\n isApplePayButtonAvailable = _context4.sent;\n if (isApplePayButtonAvailable) {\n for (expressCheckoutNodesIndex = 0; expressCheckoutNodesIndex < cartContainer.length; expressCheckoutNodesIndex += 1) {\n applePayButton.mount(cartContainer[expressCheckoutNodesIndex]);\n }\n }\n updateLoadedExpressMethods(APPLE_PAY);\n checkIfExpressMethodsAreReady();\n case 17:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n})))[\"catch\"](function () {\n updateLoadedExpressMethods(APPLE_PAY);\n checkIfExpressMethodsAreReady();\n});\nmodule.exports = {\n handleAuthorised: handleAuthorised,\n handleError: handleError,\n handleApplePayResponse: handleApplePayResponse,\n callPaymentFromComponent: callPaymentFromComponent,\n formatCustomerObject: formatCustomerObject\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/applePayExpress.js?"); /***/ }), @@ -118,7 +118,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = {\n applepay: window.isApplePayExpressEnabled === 'true',\n amazonpay: window.isAmazonPayExpressEnabled === 'true'\n };\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar _require = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n PAYPAL = _require.PAYPAL,\n APPLE_PAY = _require.APPLE_PAY,\n AMAZON_PAY = _require.AMAZON_PAY;\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = _defineProperty(_defineProperty(_defineProperty({}, APPLE_PAY, window.isApplePayExpressEnabled === 'true'), AMAZON_PAY, window.isAmazonPayExpressEnabled === 'true'), PAYPAL, window.isPayPalExpressEnabled === 'true');\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); /***/ }), @@ -130,7 +130,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); /***/ }), @@ -154,7 +154,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if ( true && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (true) {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n // Backwards/Legacy behavior, expects makeObservable(this)\n if (kind == \"field\") {\n addInitializer(function () {\n storeAnnotation(this, name, ann);\n });\n return;\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (true) {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (true) {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = true ? adm.name_ + \".\" + key.toString() : undefined);\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (true) {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, true ? adm.name_ + \".\" + name.toString() : undefined, false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if ( true && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.batchId_ = void 0;\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */;\n _proto.reportChanged = function reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion = globalState.stateVersion < Number.MAX_SAFE_INTEGER ? globalState.stateVersion + 1 : Number.MIN_SAFE_INTEGER;\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN;\n }\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.batchId = Number.MIN_SAFE_INTEGER;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n this.stateVersion = Number.MIN_SAFE_INTEGER;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\nfunction startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId = globalState.batchId < Number.MAX_SAFE_INTEGER ? globalState.batchId + 1 : Number.MIN_SAFE_INTEGER;\n }\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* Cancel */) {\n return;\n }\n if (outcome === 1 /* Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\r\n * Helper function for initializing observable structures, it applies:\r\n * 1. allowStateChanges so we don't violate enforceActions.\r\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\r\n * 3. batch to avoid state version updates\r\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); /***/ }), diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/checkout.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/checkout.js index c11713377..9c4854904 100644 --- a/cartridges/app_adyen_SFRA/cartridge/static/default/js/checkout.js +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/checkout.js @@ -250,7 +250,7 @@ eval("\n\nvar store = __webpack_require__(/*! ../../../store */ \"./cartridges/a /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar helpers = __webpack_require__(/*! ./helpers */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js\");\nvar _require = __webpack_require__(/*! ./makePartialPayment */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/makePartialPayment.js\"),\n makePartialPayment = _require.makePartialPayment;\nvar _require2 = __webpack_require__(/*! ../commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n onBrand = _require2.onBrand,\n onFieldValid = _require2.onFieldValid;\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar constants = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\");\nvar _require3 = __webpack_require__(/*! ./renderGiftcardComponent */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent.js\"),\n createElementsToShowRemainingGiftCardAmount = _require3.createElementsToShowRemainingGiftCardAmount,\n renderAddedGiftCard = _require3.renderAddedGiftCard,\n getGiftCardElements = _require3.getGiftCardElements,\n showGiftCardInfoMessage = _require3.showGiftCardInfoMessage,\n showGiftCardCancelButton = _require3.showGiftCardCancelButton,\n attachGiftCardCancelListener = _require3.attachGiftCardCancelListener;\nfunction getCardConfig() {\n return {\n enableStoreDetails: window.showStoreDetails,\n showBrandsUnderCardNumber: false,\n clickToPayConfiguration: {\n shopperEmail: window.customerEmail,\n merchantDisplayName: window.merchantAccount\n },\n exposeExpiryDate: false,\n onChange: function onChange(state) {\n store.isValid = state.isValid;\n var method = state.data.paymentMethod.storedPaymentMethodId ? \"storedCard\".concat(state.data.paymentMethod.storedPaymentMethodId) : constants.SCHEME;\n store.updateSelectedPayment(method, 'isValid', store.isValid);\n store.updateSelectedPayment(method, 'stateData', state.data);\n },\n onSubmit: function onSubmit() {\n helpers.assignPaymentMethodValue();\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n },\n onFieldValid: onFieldValid,\n onBrand: onBrand\n };\n}\nfunction getPaypalConfig() {\n store.paypalTerminatedEarly = false;\n return {\n showPayButton: true,\n environment: window.Configuration.environment,\n onSubmit: function onSubmit(state, component) {\n helpers.assignPaymentMethodValue();\n document.querySelector('#adyenStateData').value = JSON.stringify(store.selectedPayment.stateData);\n helpers.paymentFromComponent(state.data, component);\n },\n onCancel: function onCancel(data, component) {\n store.paypalTerminatedEarly = false;\n helpers.paymentFromComponent({\n cancelTransaction: true,\n merchantReference: document.querySelector('#merchantReference').value,\n orderToken: document.querySelector('#orderToken').value\n }, component);\n },\n onError: function onError(error, component) {\n store.paypalTerminatedEarly = false;\n if (component) {\n component.setStatus('ready');\n }\n document.querySelector('#showConfirmationForm').submit();\n },\n onAdditionalDetails: function onAdditionalDetails(state) {\n store.paypalTerminatedEarly = false;\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data);\n document.querySelector('#showConfirmationForm').submit();\n },\n onClick: function onClick(data, actions) {\n $('#dwfrm_billing').trigger('submit');\n if (store.formErrorsExist) {\n return actions.reject();\n }\n if (store.paypalTerminatedEarly) {\n helpers.paymentFromComponent({\n cancelTransaction: true,\n merchantReference: document.querySelector('#merchantReference').value\n });\n store.paypalTerminatedEarly = false;\n return actions.resolve();\n }\n store.paypalTerminatedEarly = true;\n return null;\n }\n };\n}\nfunction getGooglePayConfig() {\n return {\n environment: window.Configuration.environment,\n onSubmit: function onSubmit() {\n helpers.assignPaymentMethodValue();\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n },\n configuration: {\n gatewayMerchantId: window.merchantAccount\n },\n showPayButton: true,\n buttonColor: 'white'\n };\n}\nfunction handlePartialPaymentSuccess() {\n var _store$addedGiftCards;\n var _getGiftCardElements = getGiftCardElements(),\n giftCardSelectContainer = _getGiftCardElements.giftCardSelectContainer,\n giftCardSelect = _getGiftCardElements.giftCardSelect,\n giftCardsList = _getGiftCardElements.giftCardsList,\n cancelMainPaymentGiftCard = _getGiftCardElements.cancelMainPaymentGiftCard,\n giftCardAddButton = _getGiftCardElements.giftCardAddButton;\n giftCardSelectContainer.classList.add('invisible');\n giftCardSelect.value = null;\n giftCardsList.innerHTML = '';\n cancelMainPaymentGiftCard.addEventListener('click', function () {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n cancelMainPaymentGiftCard.classList.add('invisible');\n giftCardAddButton.style.display = 'block';\n giftCardSelect.value = 'null';\n });\n if (store.componentsObj.giftcard) {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n }\n store.addedGiftCards.forEach(function (card) {\n renderAddedGiftCard(card);\n });\n if ((_store$addedGiftCards = store.addedGiftCards) !== null && _store$addedGiftCards !== void 0 && _store$addedGiftCards.length) {\n showGiftCardInfoMessage();\n }\n showGiftCardCancelButton(true);\n attachGiftCardCancelListener();\n createElementsToShowRemainingGiftCardAmount();\n}\nfunction makeGiftcardPaymentRequest(_x, _x2, _x3) {\n return _makeGiftcardPaymentRequest.apply(this, arguments);\n}\nfunction _makeGiftcardPaymentRequest() {\n _makeGiftcardPaymentRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(giftCardData, giftcardBalance, reject) {\n var brandSelect, selectedBrandIndex, giftcardBrand, partialPaymentRequest, partialPaymentResponse;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n brandSelect = document.getElementById('giftCardSelect');\n selectedBrandIndex = brandSelect.selectedIndex;\n giftcardBrand = brandSelect.options[selectedBrandIndex].text;\n partialPaymentRequest = {\n paymentMethod: giftCardData,\n amount: giftcardBalance,\n partialPaymentsOrder: {\n pspReference: store.adyenOrderData.pspReference,\n orderData: store.adyenOrderData.orderData\n },\n giftcardBrand: giftcardBrand\n };\n _context2.next = 6;\n return makePartialPayment(partialPaymentRequest);\n case 6:\n partialPaymentResponse = _context2.sent;\n if (partialPaymentResponse !== null && partialPaymentResponse !== void 0 && partialPaymentResponse.error) {\n reject();\n } else {\n handlePartialPaymentSuccess();\n }\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _makeGiftcardPaymentRequest.apply(this, arguments);\n}\nfunction getGiftCardConfig() {\n var giftcardBalance;\n return {\n showPayButton: true,\n onChange: function onChange(state) {\n store.updateSelectedPayment(constants.GIFTCARD, 'isValid', state.isValid);\n store.updateSelectedPayment(constants.GIFTCARD, 'stateData', state.data);\n },\n onBalanceCheck: function onBalanceCheck(resolve, reject, requestData) {\n $.ajax({\n type: 'POST',\n url: window.checkBalanceUrl,\n data: JSON.stringify(requestData),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n giftcardBalance = data.balance;\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n if (data.resultCode === constants.SUCCESS) {\n var _getGiftCardElements2 = getGiftCardElements(),\n giftCardsInfoMessageContainer = _getGiftCardElements2.giftCardsInfoMessageContainer,\n giftCardSelect = _getGiftCardElements2.giftCardSelect,\n cancelMainPaymentGiftCard = _getGiftCardElements2.cancelMainPaymentGiftCard,\n giftCardAddButton = _getGiftCardElements2.giftCardAddButton,\n giftCardSelectWrapper = _getGiftCardElements2.giftCardSelectWrapper;\n if (giftCardSelectWrapper) {\n giftCardSelectWrapper.classList.add('invisible');\n }\n var initialPartialObject = _objectSpread({}, store.partialPaymentsOrderObj);\n cancelMainPaymentGiftCard.classList.remove('invisible');\n cancelMainPaymentGiftCard.addEventListener('click', function () {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n cancelMainPaymentGiftCard.classList.add('invisible');\n giftCardAddButton.style.display = 'block';\n giftCardSelect.value = 'null';\n store.partialPaymentsOrderObj.remainingAmountFormatted = initialPartialObject.remainingAmountFormatted;\n store.partialPaymentsOrderObj.totalDiscountedAmount = initialPartialObject.totalDiscountedAmount;\n });\n document.querySelector('button[value=\"submit-payment\"]').disabled = true;\n giftCardsInfoMessageContainer.innerHTML = '';\n giftCardsInfoMessageContainer.classList.remove('gift-cards-info-message-container');\n store.partialPaymentsOrderObj.remainingAmountFormatted = data.remainingAmountFormatted;\n store.partialPaymentsOrderObj.totalDiscountedAmount = data.totalAmountFormatted;\n resolve(data);\n } else if (data.resultCode === constants.NOTENOUGHBALANCE) {\n resolve(data);\n } else {\n reject();\n }\n },\n fail: function fail() {\n reject();\n }\n });\n },\n onOrderRequest: function onOrderRequest(resolve, reject, requestData) {\n // Make a POST /orders request\n // Create an order for the total transaction amount\n var giftCardData = requestData.paymentMethod;\n if (store.adyenOrderData) {\n makeGiftcardPaymentRequest(giftCardData, giftcardBalance, reject);\n } else {\n $.ajax({\n type: 'POST',\n url: window.partialPaymentsOrderUrl,\n data: JSON.stringify(requestData),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n if (data.resultCode === 'Success') {\n store.adyenOrderData = data;\n // make payments call including giftcard data and order data\n makeGiftcardPaymentRequest(giftCardData, giftcardBalance, reject);\n }\n }\n });\n }\n },\n onSubmit: function onSubmit(state, component) {\n store.selectedMethod = state.data.paymentMethod.type;\n store.brand = component === null || component === void 0 ? void 0 : component.displayName;\n document.querySelector('input[name=\"brandCode\"]').checked = false;\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n }\n };\n}\nfunction handleOnChange(state) {\n store.isValid = state.isValid;\n if (!store.componentsObj[store.selectedMethod]) {\n store.componentsObj[store.selectedMethod] = {};\n }\n store.componentsObj[store.selectedMethod].isValid = store.isValid;\n store.componentsObj[store.selectedMethod].stateData = state.data;\n}\nvar actionHandler = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(action) {\n var checkout;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return AdyenCheckout(store.checkoutConfiguration);\n case 2:\n checkout = _context.sent;\n checkout.createFromAction(action).mount('#action-container');\n $('#action-modal').modal({\n backdrop: 'static',\n keyboard: false\n });\n if (action.type === constants.ACTIONTYPE.QRCODE) {\n document.getElementById('cancelQrMethodsButton').classList.remove('invisible');\n }\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function actionHandler(_x4) {\n return _ref.apply(this, arguments);\n };\n}();\nfunction handleOnAdditionalDetails(state) {\n $.ajax({\n type: 'POST',\n url: window.paymentsDetailsURL,\n data: JSON.stringify({\n data: state.data,\n orderToken: window.orderToken\n }),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n if (!data.isFinal && _typeof(data.action) === 'object') {\n actionHandler(data.action);\n } else {\n window.location.href = data.redirectUrl;\n }\n }\n });\n}\nfunction getAmazonpayConfig() {\n return {\n showPayButton: true,\n productType: 'PayAndShip',\n checkoutMode: 'ProcessOrder',\n locale: window.Configuration.locale,\n returnUrl: window.returnURL,\n onClick: function onClick(resolve, reject) {\n $('#dwfrm_billing').trigger('submit');\n if (store.formErrorsExist) {\n reject();\n } else {\n helpers.assignPaymentMethodValue();\n resolve();\n }\n },\n onError: function onError() {}\n };\n}\nfunction getApplePayConfig() {\n return {\n showPayButton: true,\n buttonColor: 'black',\n onSubmit: function onSubmit(state, component) {\n $('#dwfrm_billing').trigger('submit');\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n }\n };\n}\nfunction getCashAppConfig() {\n return {\n showPayButton: true,\n onSubmit: function onSubmit(state, component) {\n $('#dwfrm_billing').trigger('submit');\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n }\n };\n}\nfunction getKlarnaConfig() {\n var _window = window,\n klarnaWidgetEnabled = _window.klarnaWidgetEnabled;\n if (klarnaWidgetEnabled) {\n return {\n showPayButton: true,\n useKlarnaWidget: true,\n onSubmit: function onSubmit(state, component) {\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n },\n onAdditionalDetails: function onAdditionalDetails(state) {\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data);\n document.querySelector('#showConfirmationForm').submit();\n }\n };\n }\n return null;\n}\nfunction setCheckoutConfiguration() {\n store.checkoutConfiguration.onChange = handleOnChange;\n store.checkoutConfiguration.onAdditionalDetails = handleOnAdditionalDetails;\n store.checkoutConfiguration.showPayButton = false;\n store.checkoutConfiguration.clientKey = window.adyenClientKey;\n store.checkoutConfiguration.paymentMethodsConfiguration = {\n card: getCardConfig(),\n bcmc: getCardConfig(),\n storedCard: getCardConfig(),\n boletobancario: {\n personalDetailsRequired: true,\n // turn personalDetails section on/off\n billingAddressRequired: false,\n // turn billingAddress section on/off\n showEmailAddress: false // allow shopper to specify their email address\n },\n paywithgoogle: getGooglePayConfig(),\n googlepay: getGooglePayConfig(),\n paypal: getPaypalConfig(),\n amazonpay: getAmazonpayConfig(),\n giftcard: getGiftCardConfig(),\n applepay: getApplePayConfig(),\n klarna: getKlarnaConfig(),\n klarna_account: getKlarnaConfig(),\n klarna_paynow: getKlarnaConfig(),\n cashapp: getCashAppConfig()\n };\n}\nmodule.exports = {\n getCardConfig: getCardConfig,\n getPaypalConfig: getPaypalConfig,\n getGooglePayConfig: getGooglePayConfig,\n getAmazonpayConfig: getAmazonpayConfig,\n getGiftCardConfig: getGiftCardConfig,\n getApplePayConfig: getApplePayConfig,\n getCashAppConfig: getCashAppConfig,\n getKlarnaConfig: getKlarnaConfig,\n setCheckoutConfiguration: setCheckoutConfiguration,\n actionHandler: actionHandler\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar helpers = __webpack_require__(/*! ./helpers */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js\");\nvar _require = __webpack_require__(/*! ./makePartialPayment */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/makePartialPayment.js\"),\n makePartialPayment = _require.makePartialPayment;\nvar _require2 = __webpack_require__(/*! ../commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n onBrand = _require2.onBrand,\n onFieldValid = _require2.onFieldValid;\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar constants = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\");\nvar _require3 = __webpack_require__(/*! ./renderGiftcardComponent */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/renderGiftcardComponent.js\"),\n createElementsToShowRemainingGiftCardAmount = _require3.createElementsToShowRemainingGiftCardAmount,\n renderAddedGiftCard = _require3.renderAddedGiftCard,\n getGiftCardElements = _require3.getGiftCardElements,\n showGiftCardInfoMessage = _require3.showGiftCardInfoMessage,\n showGiftCardCancelButton = _require3.showGiftCardCancelButton,\n attachGiftCardCancelListener = _require3.attachGiftCardCancelListener;\nfunction getCardConfig() {\n return {\n enableStoreDetails: window.showStoreDetails,\n showBrandsUnderCardNumber: false,\n clickToPayConfiguration: {\n shopperEmail: window.customerEmail,\n merchantDisplayName: window.merchantAccount\n },\n exposeExpiryDate: false,\n onChange: function onChange(state) {\n store.isValid = state.isValid;\n var method = state.data.paymentMethod.storedPaymentMethodId ? \"storedCard\".concat(state.data.paymentMethod.storedPaymentMethodId) : store.selectedMethod;\n store.updateSelectedPayment(method, 'isValid', store.isValid);\n store.updateSelectedPayment(method, 'stateData', state.data);\n },\n onSubmit: function onSubmit() {\n helpers.assignPaymentMethodValue();\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n },\n onFieldValid: onFieldValid,\n onBrand: onBrand\n };\n}\nfunction getPaypalConfig() {\n store.paypalTerminatedEarly = false;\n return {\n showPayButton: true,\n environment: window.Configuration.environment,\n onSubmit: function onSubmit(state, component) {\n helpers.assignPaymentMethodValue();\n document.querySelector('#adyenStateData').value = JSON.stringify(store.selectedPayment.stateData);\n helpers.paymentFromComponent(state.data, component);\n },\n onCancel: function onCancel(data, component) {\n store.paypalTerminatedEarly = false;\n helpers.paymentFromComponent({\n cancelTransaction: true,\n merchantReference: document.querySelector('#merchantReference').value,\n orderToken: document.querySelector('#orderToken').value\n }, component);\n },\n onError: function onError(error, component) {\n store.paypalTerminatedEarly = false;\n if (component) {\n component.setStatus('ready');\n }\n document.querySelector('#showConfirmationForm').submit();\n },\n onAdditionalDetails: function onAdditionalDetails(state) {\n store.paypalTerminatedEarly = false;\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data);\n document.querySelector('#showConfirmationForm').submit();\n },\n onClick: function onClick(data, actions) {\n $('#dwfrm_billing').trigger('submit');\n if (store.formErrorsExist) {\n return actions.reject();\n }\n if (store.paypalTerminatedEarly) {\n helpers.paymentFromComponent({\n cancelTransaction: true,\n merchantReference: document.querySelector('#merchantReference').value\n });\n store.paypalTerminatedEarly = false;\n return actions.resolve();\n }\n store.paypalTerminatedEarly = true;\n return null;\n }\n };\n}\nfunction getGooglePayConfig() {\n return {\n environment: window.Configuration.environment,\n onSubmit: function onSubmit() {\n helpers.assignPaymentMethodValue();\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n },\n configuration: {\n gatewayMerchantId: window.merchantAccount\n },\n showPayButton: true,\n buttonColor: 'white'\n };\n}\nfunction handlePartialPaymentSuccess() {\n var _store$addedGiftCards;\n var _getGiftCardElements = getGiftCardElements(),\n giftCardSelectContainer = _getGiftCardElements.giftCardSelectContainer,\n giftCardSelect = _getGiftCardElements.giftCardSelect,\n giftCardsList = _getGiftCardElements.giftCardsList,\n cancelMainPaymentGiftCard = _getGiftCardElements.cancelMainPaymentGiftCard,\n giftCardAddButton = _getGiftCardElements.giftCardAddButton;\n giftCardSelectContainer.classList.add('invisible');\n giftCardSelect.value = null;\n giftCardsList.innerHTML = '';\n cancelMainPaymentGiftCard.addEventListener('click', function () {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n cancelMainPaymentGiftCard.classList.add('invisible');\n giftCardAddButton.style.display = 'block';\n giftCardSelect.value = 'null';\n });\n if (store.componentsObj.giftcard) {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n }\n store.addedGiftCards.forEach(function (card) {\n renderAddedGiftCard(card);\n });\n if ((_store$addedGiftCards = store.addedGiftCards) !== null && _store$addedGiftCards !== void 0 && _store$addedGiftCards.length) {\n showGiftCardInfoMessage();\n }\n showGiftCardCancelButton(true);\n attachGiftCardCancelListener();\n createElementsToShowRemainingGiftCardAmount();\n}\nfunction makeGiftcardPaymentRequest(_x, _x2, _x3) {\n return _makeGiftcardPaymentRequest.apply(this, arguments);\n}\nfunction _makeGiftcardPaymentRequest() {\n _makeGiftcardPaymentRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(giftCardData, giftcardBalance, reject) {\n var brandSelect, selectedBrandIndex, giftcardBrand, partialPaymentRequest, partialPaymentResponse;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n brandSelect = document.getElementById('giftCardSelect');\n selectedBrandIndex = brandSelect.selectedIndex;\n giftcardBrand = brandSelect.options[selectedBrandIndex].text;\n partialPaymentRequest = {\n paymentMethod: giftCardData,\n amount: giftcardBalance,\n partialPaymentsOrder: {\n pspReference: store.adyenOrderData.pspReference,\n orderData: store.adyenOrderData.orderData\n },\n giftcardBrand: giftcardBrand\n };\n _context2.next = 6;\n return makePartialPayment(partialPaymentRequest);\n case 6:\n partialPaymentResponse = _context2.sent;\n if (partialPaymentResponse !== null && partialPaymentResponse !== void 0 && partialPaymentResponse.error) {\n reject();\n } else {\n handlePartialPaymentSuccess();\n }\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _makeGiftcardPaymentRequest.apply(this, arguments);\n}\nfunction getGiftCardConfig() {\n var giftcardBalance;\n return {\n showPayButton: true,\n onChange: function onChange(state) {\n store.updateSelectedPayment(constants.GIFTCARD, 'isValid', state.isValid);\n store.updateSelectedPayment(constants.GIFTCARD, 'stateData', state.data);\n },\n onBalanceCheck: function onBalanceCheck(resolve, reject, requestData) {\n $.ajax({\n type: 'POST',\n url: window.checkBalanceUrl,\n data: JSON.stringify(requestData),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n giftcardBalance = data.balance;\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n if (data.resultCode === constants.SUCCESS) {\n var _getGiftCardElements2 = getGiftCardElements(),\n giftCardsInfoMessageContainer = _getGiftCardElements2.giftCardsInfoMessageContainer,\n giftCardSelect = _getGiftCardElements2.giftCardSelect,\n cancelMainPaymentGiftCard = _getGiftCardElements2.cancelMainPaymentGiftCard,\n giftCardAddButton = _getGiftCardElements2.giftCardAddButton,\n giftCardSelectWrapper = _getGiftCardElements2.giftCardSelectWrapper;\n if (giftCardSelectWrapper) {\n giftCardSelectWrapper.classList.add('invisible');\n }\n var initialPartialObject = _objectSpread({}, store.partialPaymentsOrderObj);\n cancelMainPaymentGiftCard.classList.remove('invisible');\n cancelMainPaymentGiftCard.addEventListener('click', function () {\n store.componentsObj.giftcard.node.unmount('component_giftcard');\n cancelMainPaymentGiftCard.classList.add('invisible');\n giftCardAddButton.style.display = 'block';\n giftCardSelect.value = 'null';\n store.partialPaymentsOrderObj.remainingAmountFormatted = initialPartialObject.remainingAmountFormatted;\n store.partialPaymentsOrderObj.totalDiscountedAmount = initialPartialObject.totalDiscountedAmount;\n });\n document.querySelector('button[value=\"submit-payment\"]').disabled = true;\n giftCardsInfoMessageContainer.innerHTML = '';\n giftCardsInfoMessageContainer.classList.remove('gift-cards-info-message-container');\n store.partialPaymentsOrderObj.remainingAmountFormatted = data.remainingAmountFormatted;\n store.partialPaymentsOrderObj.totalDiscountedAmount = data.totalAmountFormatted;\n resolve(data);\n } else if (data.resultCode === constants.NOTENOUGHBALANCE) {\n resolve(data);\n } else {\n reject();\n }\n },\n fail: function fail() {\n reject();\n }\n });\n },\n onOrderRequest: function onOrderRequest(resolve, reject, requestData) {\n // Make a POST /orders request\n // Create an order for the total transaction amount\n var giftCardData = requestData.paymentMethod;\n if (store.adyenOrderData) {\n makeGiftcardPaymentRequest(giftCardData, giftcardBalance, reject);\n } else {\n $.ajax({\n type: 'POST',\n url: window.partialPaymentsOrderUrl,\n data: JSON.stringify(requestData),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n if (data.resultCode === 'Success') {\n store.adyenOrderData = data;\n // make payments call including giftcard data and order data\n makeGiftcardPaymentRequest(giftCardData, giftcardBalance, reject);\n }\n }\n });\n }\n },\n onSubmit: function onSubmit(state, component) {\n store.selectedMethod = state.data.paymentMethod.type;\n store.brand = component === null || component === void 0 ? void 0 : component.displayName;\n document.querySelector('input[name=\"brandCode\"]').checked = false;\n document.querySelector('button[value=\"submit-payment\"]').disabled = false;\n document.querySelector('button[value=\"submit-payment\"]').click();\n }\n };\n}\nfunction handleOnChange(state) {\n var type = state.data.paymentMethod.type;\n var multipleTxVariantComponents = constants.MULTIPLE_TX_VARIANTS_COMPONENTS;\n if (multipleTxVariantComponents.includes(store.selectedMethod)) {\n type = store.selectedMethod;\n }\n store.isValid = state.isValid;\n if (!store.componentsObj[type]) {\n store.componentsObj[type] = {};\n }\n store.componentsObj[type].isValid = store.isValid;\n store.componentsObj[type].stateData = state.data;\n}\nvar actionHandler = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(action) {\n var checkout;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return AdyenCheckout(store.checkoutConfiguration);\n case 2:\n checkout = _context.sent;\n checkout.createFromAction(action).mount('#action-container');\n $('#action-modal').modal({\n backdrop: 'static',\n keyboard: false\n });\n if (action.type === constants.ACTIONTYPE.QRCODE) {\n document.getElementById('cancelQrMethodsButton').classList.remove('invisible');\n }\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function actionHandler(_x4) {\n return _ref.apply(this, arguments);\n };\n}();\nfunction handleOnAdditionalDetails(state) {\n $.ajax({\n type: 'POST',\n url: window.paymentsDetailsURL,\n data: JSON.stringify({\n data: state.data,\n orderToken: window.orderToken\n }),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(data) {\n if (!data.isFinal && _typeof(data.action) === 'object') {\n actionHandler(data.action);\n } else {\n window.location.href = data.redirectUrl;\n }\n }\n });\n}\nfunction getAmazonpayConfig() {\n return {\n showPayButton: true,\n productType: 'PayAndShip',\n checkoutMode: 'ProcessOrder',\n locale: window.Configuration.locale,\n returnUrl: window.returnURL,\n onClick: function onClick(resolve, reject) {\n $('#dwfrm_billing').trigger('submit');\n if (store.formErrorsExist) {\n reject();\n } else {\n helpers.assignPaymentMethodValue();\n resolve();\n }\n },\n onError: function onError() {}\n };\n}\nfunction getApplePayConfig() {\n return {\n showPayButton: true,\n buttonColor: 'black',\n onSubmit: function onSubmit(state, component) {\n $('#dwfrm_billing').trigger('submit');\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n }\n };\n}\nfunction getCashAppConfig() {\n return {\n showPayButton: true,\n onSubmit: function onSubmit(state, component) {\n $('#dwfrm_billing').trigger('submit');\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n }\n };\n}\nfunction getKlarnaConfig() {\n var _window = window,\n klarnaWidgetEnabled = _window.klarnaWidgetEnabled;\n if (klarnaWidgetEnabled) {\n return {\n showPayButton: true,\n useKlarnaWidget: true,\n onSubmit: function onSubmit(state, component) {\n helpers.assignPaymentMethodValue();\n helpers.paymentFromComponent(state.data, component);\n },\n onAdditionalDetails: function onAdditionalDetails(state) {\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data);\n document.querySelector('#showConfirmationForm').submit();\n }\n };\n }\n return null;\n}\nfunction setCheckoutConfiguration() {\n store.checkoutConfiguration.onChange = handleOnChange;\n store.checkoutConfiguration.onAdditionalDetails = handleOnAdditionalDetails;\n store.checkoutConfiguration.showPayButton = false;\n store.checkoutConfiguration.clientKey = window.adyenClientKey;\n store.checkoutConfiguration.paymentMethodsConfiguration = {\n card: getCardConfig(),\n bcmc: getCardConfig(),\n storedCard: getCardConfig(),\n boletobancario: {\n personalDetailsRequired: true,\n // turn personalDetails section on/off\n billingAddressRequired: false,\n // turn billingAddress section on/off\n showEmailAddress: false // allow shopper to specify their email address\n },\n paywithgoogle: getGooglePayConfig(),\n googlepay: getGooglePayConfig(),\n paypal: getPaypalConfig(),\n amazonpay: getAmazonpayConfig(),\n giftcard: getGiftCardConfig(),\n applepay: getApplePayConfig(),\n klarna: getKlarnaConfig(),\n klarna_account: getKlarnaConfig(),\n klarna_paynow: getKlarnaConfig(),\n cashapp: getCashAppConfig()\n };\n}\nmodule.exports = {\n getCardConfig: getCardConfig,\n getPaypalConfig: getPaypalConfig,\n getGooglePayConfig: getGooglePayConfig,\n getAmazonpayConfig: getAmazonpayConfig,\n getGiftCardConfig: getGiftCardConfig,\n getApplePayConfig: getApplePayConfig,\n getCashAppConfig: getCashAppConfig,\n getKlarnaConfig: getKlarnaConfig,\n setCheckoutConfiguration: setCheckoutConfiguration,\n actionHandler: actionHandler\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/checkoutConfiguration.js?"); /***/ }), @@ -394,7 +394,7 @@ eval("\n\nvar customerHelpers = __webpack_require__(/*! base/checkout/customer * /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = {\n applepay: window.isApplePayExpressEnabled === 'true',\n amazonpay: window.isAmazonPayExpressEnabled === 'true'\n };\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar _require = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n PAYPAL = _require.PAYPAL,\n APPLE_PAY = _require.APPLE_PAY,\n AMAZON_PAY = _require.AMAZON_PAY;\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = _defineProperty(_defineProperty(_defineProperty({}, APPLE_PAY, window.isApplePayExpressEnabled === 'true'), AMAZON_PAY, window.isAmazonPayExpressEnabled === 'true'), PAYPAL, window.isPayPalExpressEnabled === 'true');\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); /***/ }), @@ -406,7 +406,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); /***/ }), @@ -430,7 +430,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if ( true && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (true) {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n // Backwards/Legacy behavior, expects makeObservable(this)\n if (kind == \"field\") {\n addInitializer(function () {\n storeAnnotation(this, name, ann);\n });\n return;\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (true) {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (true) {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = true ? adm.name_ + \".\" + key.toString() : undefined);\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (true) {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, true ? adm.name_ + \".\" + name.toString() : undefined, false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if ( true && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.batchId_ = void 0;\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */;\n _proto.reportChanged = function reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion = globalState.stateVersion < Number.MAX_SAFE_INTEGER ? globalState.stateVersion + 1 : Number.MIN_SAFE_INTEGER;\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN;\n }\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.batchId = Number.MIN_SAFE_INTEGER;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n this.stateVersion = Number.MIN_SAFE_INTEGER;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\nfunction startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId = globalState.batchId < Number.MAX_SAFE_INTEGER ? globalState.batchId + 1 : Number.MIN_SAFE_INTEGER;\n }\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* Cancel */) {\n return;\n }\n if (outcome === 1 /* Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\r\n * Helper function for initializing observable structures, it applies:\r\n * 1. allowStateChanges so we don't violate enforceActions.\r\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\r\n * 3. batch to avoid state version updates\r\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); /***/ }), diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/checkoutReviewButtons.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/checkoutReviewButtons.js new file mode 100644 index 000000000..afa949a04 --- /dev/null +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/checkoutReviewButtons.js @@ -0,0 +1,160 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js": +/*!*****************************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar constants = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\");\nfunction assignPaymentMethodValue() {\n var adyenPaymentMethod = document.querySelector('#adyenPaymentMethodName');\n // if currently selected paymentMethod contains a brand it will be part of the label ID\n var paymentMethodlabelId = \"#lb_\".concat(store.selectedMethod);\n if (adyenPaymentMethod) {\n var _document$querySelect;\n adyenPaymentMethod.value = store.brand ? store.brand : (_document$querySelect = document.querySelector(paymentMethodlabelId)) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML;\n }\n}\nfunction setOrderFormData(response) {\n if (response.orderNo) {\n document.querySelector('#merchantReference').value = response.orderNo;\n }\n if (response.orderToken) {\n document.querySelector('#orderToken').value = response.orderToken;\n }\n}\n\n/**\n * Makes an ajax call to the controller function PaymentFromComponent.\n * Used by certain payment methods like paypal\n */\nfunction paymentFromComponent(data) {\n var component = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var requestData = store.partialPaymentsOrderObj ? _objectSpread(_objectSpread({}, data), {}, {\n partialPaymentsOrder: store.partialPaymentsOrderObj\n }) : data;\n $.ajax({\n url: window.paymentFromComponentURL,\n type: 'post',\n data: {\n data: JSON.stringify(requestData),\n paymentMethod: document.querySelector('#adyenPaymentMethodName').value\n },\n success: function success(response) {\n var _response$fullRespons;\n setOrderFormData(response);\n if ((_response$fullRespons = response.fullResponse) !== null && _response$fullRespons !== void 0 && _response$fullRespons.action) {\n component.handleAction(response.fullResponse.action);\n } else if (response.skipSummaryPage) {\n document.querySelector('#result').value = JSON.stringify(response);\n document.querySelector('#showConfirmationForm').submit();\n } else if (response.paymentError || response.error) {\n component.handleError();\n }\n }\n });\n}\nfunction resetPaymentMethod() {\n $('#requiredBrandCode').hide();\n $('#selectedIssuer').val('');\n $('#adyenIssuerName').val('');\n $('#dateOfBirth').val('');\n $('#telephoneNumber').val('');\n $('#gender').val('');\n $('#bankAccountOwnerName').val('');\n $('#bankAccountNumber').val('');\n $('#bankLocationId').val('');\n $('.additionalFields').hide();\n}\n\n/**\n * Changes the \"display\" attribute of the selected method from hidden to visible\n */\nfunction displaySelectedMethod(type) {\n var _document$querySelect2;\n // If 'type' input field is present use this as type, otherwise default to function input param\n store.selectedMethod = document.querySelector(\"#component_\".concat(type, \" .type\")) ? document.querySelector(\"#component_\".concat(type, \" .type\")).value : type;\n resetPaymentMethod();\n var disabledSubmitButtonMethods = constants.DISABLED_SUBMIT_BUTTON_METHODS;\n if (window.klarnaWidgetEnabled) {\n disabledSubmitButtonMethods.push('klarna');\n }\n document.querySelector('button[value=\"submit-payment\"]').disabled = disabledSubmitButtonMethods.findIndex(function (pm) {\n return type.includes(pm);\n }) > -1;\n document.querySelector(\"#component_\".concat(type)).setAttribute('style', 'display:block');\n // set brand for giftcards if hidden inputfield is present\n store.brand = (_document$querySelect2 = document.querySelector(\"#component_\".concat(type, \" .brand\"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.value;\n}\nfunction displayValidationErrors() {\n store.selectedPayment.node.showValidation();\n return false;\n}\nvar selectedMethods = {};\nfunction doCustomValidation() {\n return store.selectedMethod in selectedMethods ? selectedMethods[store.selectedMethod]() : true;\n}\nfunction showValidation() {\n return store.selectedPaymentIsValid ? doCustomValidation() : displayValidationErrors();\n}\nfunction getInstallmentValues(maxValue) {\n var values = [];\n for (var i = 1; i <= maxValue; i += 1) {\n values.push(i);\n }\n return values;\n}\nfunction createShowConfirmationForm(action) {\n if (document.querySelector('#showConfirmationForm')) {\n return;\n }\n var template = document.createElement('template');\n var form = \"\\n \\n \\n \\n \\n \");\n template.innerHTML = form;\n document.querySelector('body').appendChild(template.content);\n}\nmodule.exports = {\n setOrderFormData: setOrderFormData,\n assignPaymentMethodValue: assignPaymentMethodValue,\n paymentFromComponent: paymentFromComponent,\n resetPaymentMethod: resetPaymentMethod,\n displaySelectedMethod: displaySelectedMethod,\n showValidation: showValidation,\n createShowConfirmationForm: createShowConfirmationForm,\n getInstallmentValues: getInstallmentValues\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js": +/*!****************************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar helpers = __webpack_require__(/*! ./adyen_checkout/helpers */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js\");\n\n/**\n * make payment details call for express payment methods from review page .\n * @param data - state data from adyen checkout component\n * @return {undefined}\n */\nfunction makeExpressPaymentDetailsCall(data) {\n $.ajax({\n type: 'POST',\n url: window.makeExpressPaymentDetailsCall,\n data: JSON.stringify({\n data: data\n }),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(response) {\n helpers.setOrderFormData(response);\n },\n error: function error() {\n $.spinner().stop();\n }\n });\n}\n\n/**\n * initializes place order button on checkout review page.\n * @return {undefined}\n */\nfunction initCheckoutReviewButtons() {\n $(document).ready(function () {\n $(\"button[name='place-order']\").click(function () {\n $.spinner().start();\n var stateData = document.querySelector('#additionalDetailsHidden').value;\n makeExpressPaymentDetailsCall(JSON.parse(stateData));\n document.querySelector('#showConfirmationForm').submit();\n });\n });\n}\ninitCheckoutReviewButtons();\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/checkoutReviewButtons.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js": +/*!****************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/store/index.js": +/*!************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/store/index.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13;\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer && (Object.defineProperty(i, e, a), a = null), a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\n// eslint-disable-next-line\nvar _require = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\"),\n observable = _require.observable,\n computed = _require.computed;\nvar Store = (_class = /*#__PURE__*/function () {\n function Store() {\n _classCallCheck(this, Store);\n _defineProperty(this, \"MASKED_CC_PREFIX\", '************');\n _initializerDefineProperty(this, \"checkout\", _descriptor, this);\n _initializerDefineProperty(this, \"endDigits\", _descriptor2, this);\n _initializerDefineProperty(this, \"selectedMethod\", _descriptor3, this);\n _initializerDefineProperty(this, \"componentsObj\", _descriptor4, this);\n _initializerDefineProperty(this, \"checkoutConfiguration\", _descriptor5, this);\n _initializerDefineProperty(this, \"formErrorsExist\", _descriptor6, this);\n _initializerDefineProperty(this, \"isValid\", _descriptor7, this);\n _initializerDefineProperty(this, \"paypalTerminatedEarly\", _descriptor8, this);\n _initializerDefineProperty(this, \"componentState\", _descriptor9, this);\n _initializerDefineProperty(this, \"brand\", _descriptor10, this);\n _initializerDefineProperty(this, \"partialPaymentsOrderObj\", _descriptor11, this);\n _initializerDefineProperty(this, \"giftCardComponentListenersAdded\", _descriptor12, this);\n _initializerDefineProperty(this, \"addedGiftCards\", _descriptor13, this);\n }\n return _createClass(Store, [{\n key: \"maskedCardNumber\",\n get: function get() {\n return \"\".concat(this.MASKED_CC_PREFIX).concat(this.endDigits);\n }\n }, {\n key: \"selectedPayment\",\n get: function get() {\n return this.componentsObj[this.selectedMethod];\n }\n }, {\n key: \"selectedPaymentIsValid\",\n get: function get() {\n var _this$selectedPayment;\n return !!((_this$selectedPayment = this.selectedPayment) !== null && _this$selectedPayment !== void 0 && _this$selectedPayment.isValid);\n }\n }, {\n key: \"stateData\",\n get: function get() {\n var _this$selectedPayment2;\n return ((_this$selectedPayment2 = this.selectedPayment) === null || _this$selectedPayment2 === void 0 ? void 0 : _this$selectedPayment2.stateData) || {\n paymentMethod: _objectSpread({\n type: this.selectedMethod\n }, this.brand ? {\n brand: this.brand\n } : undefined)\n };\n }\n }, {\n key: \"updateSelectedPayment\",\n value: function updateSelectedPayment(method, key, val) {\n this.componentsObj[method][key] = val;\n }\n }]);\n}(), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"checkout\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"endDigits\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"selectedMethod\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"componentsObj\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return {};\n }\n}), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, \"checkoutConfiguration\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return window.Configuration || {};\n }\n}), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, \"formErrorsExist\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, \"isValid\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return false;\n }\n}), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, \"paypalTerminatedEarly\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return false;\n }\n}), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, \"componentState\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return {};\n }\n}), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, \"brand\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, \"partialPaymentsOrderObj\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, \"giftCardComponentListenersAdded\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, \"addedGiftCards\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _applyDecoratedDescriptor(_class.prototype, \"maskedCardNumber\", [computed], Object.getOwnPropertyDescriptor(_class.prototype, \"maskedCardNumber\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"selectedPayment\", [computed], Object.getOwnPropertyDescriptor(_class.prototype, \"selectedPayment\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"selectedPaymentIsValid\", [computed], Object.getOwnPropertyDescriptor(_class.prototype, \"selectedPaymentIsValid\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"stateData\", [computed], Object.getOwnPropertyDescriptor(_class.prototype, \"stateData\"), _class.prototype)), _class);\nmodule.exports = new Store();\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/store/index.js?"); + +/***/ }), + +/***/ "./node_modules/mobx/dist/mobx.esm.js": +/*!********************************************!*\ + !*** ./node_modules/mobx/dist/mobx.esm.js ***! + \********************************************/ +/*! exports provided: $mobx, FlowCancellationError, ObservableMap, ObservableSet, Reaction, _allowStateChanges, _allowStateChangesInsideComputed, _allowStateReadsEnd, _allowStateReadsStart, _autoAction, _endAction, _getAdministration, _getGlobalState, _interceptReads, _isComputingDerivation, _resetGlobalState, _startAction, action, autorun, comparer, computed, configure, createAtom, defineProperty, entries, extendObservable, flow, flowResult, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isBoxedObservable, isComputed, isComputedProp, isFlow, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, makeAutoObservable, makeObservable, observable, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, override, ownKeys, reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if ( true && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.batchId_ = void 0;\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */;\n _proto.reportChanged = function reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion = globalState.stateVersion < Number.MAX_SAFE_INTEGER ? globalState.stateVersion + 1 : Number.MIN_SAFE_INTEGER;\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN;\n }\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.batchId = Number.MIN_SAFE_INTEGER;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n this.stateVersion = Number.MIN_SAFE_INTEGER;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\nfunction startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId = globalState.batchId < Number.MAX_SAFE_INTEGER ? globalState.batchId + 1 : Number.MIN_SAFE_INTEGER;\n }\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* Cancel */) {\n return;\n }\n if (outcome === 1 /* Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\r\n * Helper function for initializing observable structures, it applies:\r\n * 1. allowStateChanges so we don't violate enforceActions.\r\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\r\n * 3. batch to avoid state version updates\r\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); + +/***/ }), + +/***/ "./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?"); + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/constants.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/constants.js index 3a4807112..40700421b 100644 --- a/cartridges/app_adyen_SFRA/cartridge/static/default/js/constants.js +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/constants.js @@ -94,7 +94,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); /***/ }) diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/expressPaymentMethodsVisibility.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/expressPaymentMethodsVisibility.js index ef9294129..060b98b30 100644 --- a/cartridges/app_adyen_SFRA/cartridge/static/default/js/expressPaymentMethodsVisibility.js +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/expressPaymentMethodsVisibility.js @@ -94,7 +94,19 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = {\n applepay: window.isApplePayExpressEnabled === 'true',\n amazonpay: window.isAmazonPayExpressEnabled === 'true'\n };\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar _require = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n PAYPAL = _require.PAYPAL,\n APPLE_PAY = _require.APPLE_PAY,\n AMAZON_PAY = _require.AMAZON_PAY;\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = _defineProperty(_defineProperty(_defineProperty({}, APPLE_PAY, window.isApplePayExpressEnabled === 'true'), AMAZON_PAY, window.isAmazonPayExpressEnabled === 'true'), PAYPAL, window.isPayPalExpressEnabled === 'true');\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js": +/*!****************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); /***/ }), @@ -130,7 +142,7 @@ eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \" /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if ( true && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (true) {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n // Backwards/Legacy behavior, expects makeObservable(this)\n if (kind == \"field\") {\n addInitializer(function () {\n storeAnnotation(this, name, ann);\n });\n return;\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (true) {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (true) {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = true ? adm.name_ + \".\" + key.toString() : undefined);\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (true) {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, true ? adm.name_ + \".\" + name.toString() : undefined, false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if ( true && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.batchId_ = void 0;\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */;\n _proto.reportChanged = function reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion = globalState.stateVersion < Number.MAX_SAFE_INTEGER ? globalState.stateVersion + 1 : Number.MIN_SAFE_INTEGER;\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN;\n }\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.batchId = Number.MIN_SAFE_INTEGER;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n this.stateVersion = Number.MIN_SAFE_INTEGER;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\nfunction startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId = globalState.batchId < Number.MAX_SAFE_INTEGER ? globalState.batchId + 1 : Number.MIN_SAFE_INTEGER;\n }\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* Cancel */) {\n return;\n }\n if (outcome === 1 /* Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\r\n * Helper function for initializing observable structures, it applies:\r\n * 1. allowStateChanges so we don't violate enforceActions.\r\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\r\n * 3. batch to avoid state version updates\r\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); /***/ }), diff --git a/cartridges/app_adyen_SFRA/cartridge/static/default/js/paypalExpress.js b/cartridges/app_adyen_SFRA/cartridge/static/default/js/paypalExpress.js new file mode 100644 index 000000000..c3b28e11b --- /dev/null +++ b/cartridges/app_adyen_SFRA/cartridge/static/default/js/paypalExpress.js @@ -0,0 +1,172 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js": +/*!*****************************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar constants = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\");\nfunction assignPaymentMethodValue() {\n var adyenPaymentMethod = document.querySelector('#adyenPaymentMethodName');\n // if currently selected paymentMethod contains a brand it will be part of the label ID\n var paymentMethodlabelId = \"#lb_\".concat(store.selectedMethod);\n if (adyenPaymentMethod) {\n var _document$querySelect;\n adyenPaymentMethod.value = store.brand ? store.brand : (_document$querySelect = document.querySelector(paymentMethodlabelId)) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML;\n }\n}\nfunction setOrderFormData(response) {\n if (response.orderNo) {\n document.querySelector('#merchantReference').value = response.orderNo;\n }\n if (response.orderToken) {\n document.querySelector('#orderToken').value = response.orderToken;\n }\n}\n\n/**\n * Makes an ajax call to the controller function PaymentFromComponent.\n * Used by certain payment methods like paypal\n */\nfunction paymentFromComponent(data) {\n var component = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var requestData = store.partialPaymentsOrderObj ? _objectSpread(_objectSpread({}, data), {}, {\n partialPaymentsOrder: store.partialPaymentsOrderObj\n }) : data;\n $.ajax({\n url: window.paymentFromComponentURL,\n type: 'post',\n data: {\n data: JSON.stringify(requestData),\n paymentMethod: document.querySelector('#adyenPaymentMethodName').value\n },\n success: function success(response) {\n var _response$fullRespons;\n setOrderFormData(response);\n if ((_response$fullRespons = response.fullResponse) !== null && _response$fullRespons !== void 0 && _response$fullRespons.action) {\n component.handleAction(response.fullResponse.action);\n } else if (response.skipSummaryPage) {\n document.querySelector('#result').value = JSON.stringify(response);\n document.querySelector('#showConfirmationForm').submit();\n } else if (response.paymentError || response.error) {\n component.handleError();\n }\n }\n });\n}\nfunction resetPaymentMethod() {\n $('#requiredBrandCode').hide();\n $('#selectedIssuer').val('');\n $('#adyenIssuerName').val('');\n $('#dateOfBirth').val('');\n $('#telephoneNumber').val('');\n $('#gender').val('');\n $('#bankAccountOwnerName').val('');\n $('#bankAccountNumber').val('');\n $('#bankLocationId').val('');\n $('.additionalFields').hide();\n}\n\n/**\n * Changes the \"display\" attribute of the selected method from hidden to visible\n */\nfunction displaySelectedMethod(type) {\n var _document$querySelect2;\n // If 'type' input field is present use this as type, otherwise default to function input param\n store.selectedMethod = document.querySelector(\"#component_\".concat(type, \" .type\")) ? document.querySelector(\"#component_\".concat(type, \" .type\")).value : type;\n resetPaymentMethod();\n var disabledSubmitButtonMethods = constants.DISABLED_SUBMIT_BUTTON_METHODS;\n if (window.klarnaWidgetEnabled) {\n disabledSubmitButtonMethods.push('klarna');\n }\n document.querySelector('button[value=\"submit-payment\"]').disabled = disabledSubmitButtonMethods.findIndex(function (pm) {\n return type.includes(pm);\n }) > -1;\n document.querySelector(\"#component_\".concat(type)).setAttribute('style', 'display:block');\n // set brand for giftcards if hidden inputfield is present\n store.brand = (_document$querySelect2 = document.querySelector(\"#component_\".concat(type, \" .brand\"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.value;\n}\nfunction displayValidationErrors() {\n store.selectedPayment.node.showValidation();\n return false;\n}\nvar selectedMethods = {};\nfunction doCustomValidation() {\n return store.selectedMethod in selectedMethods ? selectedMethods[store.selectedMethod]() : true;\n}\nfunction showValidation() {\n return store.selectedPaymentIsValid ? doCustomValidation() : displayValidationErrors();\n}\nfunction getInstallmentValues(maxValue) {\n var values = [];\n for (var i = 1; i <= maxValue; i += 1) {\n values.push(i);\n }\n return values;\n}\nfunction createShowConfirmationForm(action) {\n if (document.querySelector('#showConfirmationForm')) {\n return;\n }\n var template = document.createElement('template');\n var form = \"
\\n \\n \\n \\n \\n
\");\n template.innerHTML = form;\n document.querySelector('body').appendChild(template.content);\n}\nmodule.exports = {\n setOrderFormData: setOrderFormData,\n assignPaymentMethodValue: assignPaymentMethodValue,\n paymentFromComponent: paymentFromComponent,\n resetPaymentMethod: resetPaymentMethod,\n displaySelectedMethod: displaySelectedMethod,\n showValidation: showValidation,\n createShowConfirmationForm: createShowConfirmationForm,\n getInstallmentValues: getInstallmentValues\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js": +/*!********************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar store = __webpack_require__(/*! ../../../../store */ \"./cartridges/app_adyen_SFRA/cartridge/store/index.js\");\nvar _require = __webpack_require__(/*! ../constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n PAYPAL = _require.PAYPAL,\n APPLE_PAY = _require.APPLE_PAY,\n AMAZON_PAY = _require.AMAZON_PAY;\nmodule.exports.onFieldValid = function onFieldValid(data) {\n if (data.endDigits) {\n store.endDigits = data.endDigits;\n document.querySelector('#cardNumber').value = store.maskedCardNumber;\n }\n};\nmodule.exports.onBrand = function onBrand(brandObject) {\n document.querySelector('#cardType').value = brandObject.brand;\n};\n\n/**\n * Makes an ajax call to the controller function FetchGiftCards\n */\nmodule.exports.fetchGiftCards = /*#__PURE__*/function () {\n var _fetchGiftCards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", $.ajax({\n url: window.fetchGiftCardsUrl,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function fetchGiftCards() {\n return _fetchGiftCards.apply(this, arguments);\n }\n return fetchGiftCards;\n}();\n\n/**\n * Makes an ajax call to the controller function GetPaymentMethods\n */\nmodule.exports.getPaymentMethods = /*#__PURE__*/function () {\n var _getPaymentMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", $.ajax({\n url: window.getPaymentMethodsURL,\n type: 'get'\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function getPaymentMethods() {\n return _getPaymentMethods.apply(this, arguments);\n }\n return getPaymentMethods;\n}();\nmodule.exports.checkIfExpressMethodsAreReady = function checkIfExpressMethodsAreReady() {\n var expressMethodsConfig = _defineProperty(_defineProperty(_defineProperty({}, APPLE_PAY, window.isApplePayExpressEnabled === 'true'), AMAZON_PAY, window.isAmazonPayExpressEnabled === 'true'), PAYPAL, window.isPayPalExpressEnabled === 'true');\n var enabledExpressMethods = [];\n Object.keys(expressMethodsConfig).forEach(function (key) {\n if (expressMethodsConfig[key]) {\n enabledExpressMethods.push(key);\n }\n });\n enabledExpressMethods = enabledExpressMethods.sort();\n var loadedExpressMethods = window.loadedExpressMethods && window.loadedExpressMethods.length ? window.loadedExpressMethods.sort() : [];\n var areAllMethodsReady = JSON.stringify(enabledExpressMethods) === JSON.stringify(loadedExpressMethods);\n if (!enabledExpressMethods.length || areAllMethodsReady) {\n var _document$getElementB, _document$getElementB2;\n (_document$getElementB = document.getElementById('express-loader-container')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add('hidden');\n (_document$getElementB2 = document.getElementById('express-container')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.classList.remove('hidden');\n }\n};\nmodule.exports.updateLoadedExpressMethods = function updateLoadedExpressMethods(method) {\n if (!window.loadedExpressMethods) {\n window.loadedExpressMethods = [];\n }\n if (!window.loadedExpressMethods.includes(method)) {\n window.loadedExpressMethods.push(method);\n }\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js": +/*!****************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n// Adyen constants\n\nmodule.exports = {\n METHOD_ADYEN: 'Adyen',\n METHOD_ADYEN_POS: 'AdyenPOS',\n METHOD_ADYEN_COMPONENT: 'AdyenComponent',\n RECEIVED: 'Received',\n NOTENOUGHBALANCE: 'NotEnoughBalance',\n SUCCESS: 'Success',\n GIFTCARD: 'giftcard',\n SCHEME: 'scheme',\n GIROPAY: 'giropay',\n APPLE_PAY: 'applepay',\n PAYPAL: 'paypal',\n AMAZON_PAY: 'amazonpay',\n ACTIONTYPE: {\n QRCODE: 'qrCode'\n },\n DISABLED_SUBMIT_BUTTON_METHODS: ['paypal', 'paywithgoogle', 'googlepay', 'amazonpay', 'applepay', 'cashapp'],\n MULTIPLE_TX_VARIANTS_COMPONENTS: ['upi']\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js": +/*!********************************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar _require = __webpack_require__(/*! ./commons */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/commons/index.js\"),\n getPaymentMethods = _require.getPaymentMethods,\n updateLoadedExpressMethods = _require.updateLoadedExpressMethods,\n checkIfExpressMethodsAreReady = _require.checkIfExpressMethodsAreReady;\nvar helpers = __webpack_require__(/*! ./adyen_checkout/helpers */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/adyen_checkout/helpers.js\");\nvar _require2 = __webpack_require__(/*! ./constants */ \"./cartridges/app_adyen_SFRA/cartridge/client/default/js/constants.js\"),\n PAYPAL = _require2.PAYPAL;\nfunction callPaymentFromComponent(_x, _x2) {\n return _callPaymentFromComponent.apply(this, arguments);\n}\nfunction _callPaymentFromComponent() {\n _callPaymentFromComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(data, component) {\n var response, _yield$response$json, action, _yield$response$json$, errorMessage;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n $.spinner().start();\n _context6.next = 4;\n return fetch(window.makeExpressPaymentsCall, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(data)\n });\n case 4:\n response = _context6.sent;\n _context6.next = 7;\n return response.json();\n case 7:\n _yield$response$json = _context6.sent;\n action = _yield$response$json.action;\n _yield$response$json$ = _yield$response$json.errorMessage;\n errorMessage = _yield$response$json$ === void 0 ? '' : _yield$response$json$;\n if (!(response.ok && action)) {\n _context6.next = 15;\n break;\n }\n component.handleAction(action);\n _context6.next = 16;\n break;\n case 15:\n throw new Error(errorMessage);\n case 16:\n _context6.next = 21;\n break;\n case 18:\n _context6.prev = 18;\n _context6.t0 = _context6[\"catch\"](0);\n component.handleError();\n case 21:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 18]]);\n }));\n return _callPaymentFromComponent.apply(this, arguments);\n}\nfunction saveShopperDetails(_x3, _x4) {\n return _saveShopperDetails.apply(this, arguments);\n}\nfunction _saveShopperDetails() {\n _saveShopperDetails = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(details, actions) {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n return _context7.abrupt(\"return\", $.ajax({\n url: window.saveShopperData,\n type: 'post',\n data: {\n shopperDetails: JSON.stringify(details)\n },\n success: function success() {\n actions.resolve();\n },\n error: function error() {\n $.spinner().stop();\n }\n }));\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n return _saveShopperDetails.apply(this, arguments);\n}\nfunction redirectToReviewPage(data) {\n var redirect = $('
').appendTo(document.body).attr({\n method: 'POST',\n action: window.checkoutReview\n });\n $('').appendTo(redirect).attr({\n name: 'data',\n value: JSON.stringify(data)\n });\n redirect.submit();\n}\nfunction makeExpressPaymentDetailsCall(data) {\n return $.ajax({\n type: 'POST',\n url: window.makeExpressPaymentDetailsCall,\n data: JSON.stringify({\n data: data\n }),\n contentType: 'application/json; charset=utf-8',\n async: false,\n success: function success(response) {\n helpers.createShowConfirmationForm(window.showConfirmationAction);\n helpers.setOrderFormData(response);\n },\n error: function error() {\n $.spinner().stop();\n }\n });\n}\nfunction updateComponent(_x5, _x6) {\n return _updateComponent.apply(this, arguments);\n}\nfunction _updateComponent() {\n _updateComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(response, component) {\n var _yield$response$json2, paymentData, status, _yield$response$json3, errorMessage, _yield$response$json4, _yield$response$json5, _errorMessage;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n if (!response.ok) {\n _context8.next = 13;\n break;\n }\n _context8.next = 3;\n return response.json();\n case 3:\n _yield$response$json2 = _context8.sent;\n paymentData = _yield$response$json2.paymentData;\n status = _yield$response$json2.status;\n _yield$response$json3 = _yield$response$json2.errorMessage;\n errorMessage = _yield$response$json3 === void 0 ? '' : _yield$response$json3;\n if (!(!paymentData || status !== 'success')) {\n _context8.next = 10;\n break;\n }\n throw new Error(errorMessage);\n case 10:\n // Update the Component paymentData value with the new one.\n component.updatePaymentData(paymentData);\n _context8.next = 19;\n break;\n case 13:\n _context8.next = 15;\n return response.json();\n case 15:\n _yield$response$json4 = _context8.sent;\n _yield$response$json5 = _yield$response$json4.errorMessage;\n _errorMessage = _yield$response$json5 === void 0 ? '' : _yield$response$json5;\n throw new Error(_errorMessage);\n case 19:\n return _context8.abrupt(\"return\", false);\n case 20:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n return _updateComponent.apply(this, arguments);\n}\nfunction handleShippingAddressChange(_x7, _x8, _x9) {\n return _handleShippingAddressChange.apply(this, arguments);\n}\nfunction _handleShippingAddressChange() {\n _handleShippingAddressChange = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(data, actions, component) {\n var shippingAddress, errors, currentPaymentData, request, response;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n shippingAddress = data.shippingAddress, errors = data.errors;\n currentPaymentData = component.paymentData;\n if (shippingAddress) {\n _context9.next = 5;\n break;\n }\n throw new Error(errors === null || errors === void 0 ? void 0 : errors.ADDRESS_ERROR);\n case 5:\n request = {\n paymentMethodType: PAYPAL,\n currentPaymentData: currentPaymentData,\n address: {\n city: shippingAddress.city,\n country: shippingAddress.country,\n countryCode: shippingAddress.countryCode,\n stateCode: shippingAddress.state,\n postalCode: shippingAddress.postalCode\n }\n };\n _context9.next = 8;\n return fetch(window.shippingMethodsUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n },\n body: JSON.stringify(request)\n });\n case 8:\n response = _context9.sent;\n _context9.next = 11;\n return updateComponent(response, component);\n case 11:\n _context9.next = 16;\n break;\n case 13:\n _context9.prev = 13;\n _context9.t0 = _context9[\"catch\"](0);\n actions.reject();\n case 16:\n return _context9.abrupt(\"return\", false);\n case 17:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 13]]);\n }));\n return _handleShippingAddressChange.apply(this, arguments);\n}\nfunction handleShippingOptionChange(_x10, _x11, _x12) {\n return _handleShippingOptionChange.apply(this, arguments);\n}\nfunction _handleShippingOptionChange() {\n _handleShippingOptionChange = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(data, actions, component) {\n var selectedShippingOption, errors, currentPaymentData, request, response;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n selectedShippingOption = data.selectedShippingOption, errors = data.errors;\n currentPaymentData = component.paymentData;\n if (selectedShippingOption) {\n _context10.next = 5;\n break;\n }\n throw new Error(errors === null || errors === void 0 ? void 0 : errors.METHOD_UNAVAILABLE);\n case 5:\n request = {\n paymentMethodType: PAYPAL,\n currentPaymentData: currentPaymentData,\n methodID: selectedShippingOption === null || selectedShippingOption === void 0 ? void 0 : selectedShippingOption.id\n };\n _context10.next = 8;\n return fetch(window.selectShippingMethodUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n },\n body: JSON.stringify(request)\n });\n case 8:\n response = _context10.sent;\n _context10.next = 11;\n return updateComponent(response, component);\n case 11:\n _context10.next = 16;\n break;\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](0);\n actions.reject();\n case 16:\n return _context10.abrupt(\"return\", false);\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 13]]);\n }));\n return _handleShippingOptionChange.apply(this, arguments);\n}\nfunction getPaypalButtonConfig(paypalConfig) {\n var _window = window,\n paypalReviewPageEnabled = _window.paypalReviewPageEnabled;\n return _objectSpread(_objectSpread({\n showPayButton: true,\n configuration: paypalConfig,\n returnUrl: window.returnUrl,\n isExpress: true\n }, paypalReviewPageEnabled ? {\n userAction: 'continue'\n } : {}), {}, {\n onSubmit: function () {\n var _onSubmit = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(state, component) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return callPaymentFromComponent(state.data, component);\n case 2:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function onSubmit(_x13, _x14) {\n return _onSubmit.apply(this, arguments);\n }\n return onSubmit;\n }(),\n onError: function () {\n var _onError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n $.spinner().stop();\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n function onError() {\n return _onError.apply(this, arguments);\n }\n return onError;\n }(),\n onShopperDetails: function () {\n var _onShopperDetails = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(shopperDetails, rawData, actions) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return saveShopperDetails(shopperDetails, actions);\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function onShopperDetails(_x15, _x16, _x17) {\n return _onShopperDetails.apply(this, arguments);\n }\n return onShopperDetails;\n }(),\n onAdditionalDetails: function onAdditionalDetails(state) {\n if (paypalReviewPageEnabled) {\n redirectToReviewPage(state.data);\n } else {\n makeExpressPaymentDetailsCall(state.data);\n document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data);\n document.querySelector('#showConfirmationForm').submit();\n }\n },\n onShippingAddressChange: function () {\n var _onShippingAddressChange = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(data, actions, component) {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return handleShippingAddressChange(data, actions, component);\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n function onShippingAddressChange(_x18, _x19, _x20) {\n return _onShippingAddressChange.apply(this, arguments);\n }\n return onShippingAddressChange;\n }(),\n onShippingOptionsChange: function () {\n var _onShippingOptionsChange = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(data, actions, component) {\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return handleShippingOptionChange(data, actions, component);\n case 2:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n function onShippingOptionsChange(_x21, _x22, _x23) {\n return _onShippingOptionsChange.apply(this, arguments);\n }\n return onShippingOptionsChange;\n }()\n });\n}\nfunction mountPaypalComponent() {\n return _mountPaypalComponent.apply(this, arguments);\n}\nfunction _mountPaypalComponent() {\n _mountPaypalComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var _paymentMethodsRespon, paymentMethod, paymentMethodsResponse, applicationInfo, paypalConfig, checkout, paypalButtonConfig, paypalExpressButton;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n _context11.next = 3;\n return getPaymentMethods();\n case 3:\n paymentMethod = _context11.sent;\n paymentMethodsResponse = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.AdyenPaymentMethods;\n applicationInfo = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.applicationInfo;\n paypalConfig = paymentMethodsResponse === null || paymentMethodsResponse === void 0 ? void 0 : (_paymentMethodsRespon = paymentMethodsResponse.paymentMethods.find(function (pm) {\n return pm.type === PAYPAL;\n })) === null || _paymentMethodsRespon === void 0 ? void 0 : _paymentMethodsRespon.configuration;\n if (paypalConfig) {\n _context11.next = 9;\n break;\n }\n return _context11.abrupt(\"return\");\n case 9:\n _context11.next = 11;\n return AdyenCheckout({\n environment: window.environment,\n clientKey: window.clientKey,\n locale: window.locale,\n analytics: {\n analyticsData: {\n applicationInfo: applicationInfo\n }\n }\n });\n case 11:\n checkout = _context11.sent;\n paypalButtonConfig = getPaypalButtonConfig(paypalConfig);\n paypalExpressButton = checkout.create(PAYPAL, paypalButtonConfig);\n paypalExpressButton.mount('#paypal-container');\n updateLoadedExpressMethods(PAYPAL);\n checkIfExpressMethodsAreReady();\n _context11.next = 21;\n break;\n case 19:\n _context11.prev = 19;\n _context11.t0 = _context11[\"catch\"](0);\n case 21:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, null, [[0, 19]]);\n }));\n return _mountPaypalComponent.apply(this, arguments);\n}\nmountPaypalComponent();\nmodule.exports = {\n callPaymentFromComponent: callPaymentFromComponent,\n saveShopperDetails: saveShopperDetails,\n redirectToReviewPage: redirectToReviewPage,\n makeExpressPaymentDetailsCall: makeExpressPaymentDetailsCall,\n updateComponent: updateComponent,\n handleShippingAddressChange: handleShippingAddressChange,\n handleShippingOptionChange: handleShippingOptionChange,\n getPaypalButtonConfig: getPaypalButtonConfig,\n mountPaypalComponent: mountPaypalComponent\n};\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/client/default/js/paypalExpress.js?"); + +/***/ }), + +/***/ "./cartridges/app_adyen_SFRA/cartridge/store/index.js": +/*!************************************************************!*\ + !*** ./cartridges/app_adyen_SFRA/cartridge/store/index.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13;\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer && (Object.defineProperty(i, e, a), a = null), a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\n// eslint-disable-next-line\nvar _require = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\"),\n observable = _require.observable,\n computed = _require.computed;\nvar Store = (_class = /*#__PURE__*/function () {\n function Store() {\n _classCallCheck(this, Store);\n _defineProperty(this, \"MASKED_CC_PREFIX\", '************');\n _initializerDefineProperty(this, \"checkout\", _descriptor, this);\n _initializerDefineProperty(this, \"endDigits\", _descriptor2, this);\n _initializerDefineProperty(this, \"selectedMethod\", _descriptor3, this);\n _initializerDefineProperty(this, \"componentsObj\", _descriptor4, this);\n _initializerDefineProperty(this, \"checkoutConfiguration\", _descriptor5, this);\n _initializerDefineProperty(this, \"formErrorsExist\", _descriptor6, this);\n _initializerDefineProperty(this, \"isValid\", _descriptor7, this);\n _initializerDefineProperty(this, \"paypalTerminatedEarly\", _descriptor8, this);\n _initializerDefineProperty(this, \"componentState\", _descriptor9, this);\n _initializerDefineProperty(this, \"brand\", _descriptor10, this);\n _initializerDefineProperty(this, \"partialPaymentsOrderObj\", _descriptor11, this);\n _initializerDefineProperty(this, \"giftCardComponentListenersAdded\", _descriptor12, this);\n _initializerDefineProperty(this, \"addedGiftCards\", _descriptor13, this);\n }\n return _createClass(Store, [{\n key: \"maskedCardNumber\",\n get: function get() {\n return \"\".concat(this.MASKED_CC_PREFIX).concat(this.endDigits);\n }\n }, {\n key: \"selectedPayment\",\n get: function get() {\n return this.componentsObj[this.selectedMethod];\n }\n }, {\n key: \"selectedPaymentIsValid\",\n get: function get() {\n var _this$selectedPayment;\n return !!((_this$selectedPayment = this.selectedPayment) !== null && _this$selectedPayment !== void 0 && _this$selectedPayment.isValid);\n }\n }, {\n key: \"stateData\",\n get: function get() {\n var _this$selectedPayment2;\n return ((_this$selectedPayment2 = this.selectedPayment) === null || _this$selectedPayment2 === void 0 ? void 0 : _this$selectedPayment2.stateData) || {\n paymentMethod: _objectSpread({\n type: this.selectedMethod\n }, this.brand ? {\n brand: this.brand\n } : undefined)\n };\n }\n }, {\n key: \"updateSelectedPayment\",\n value: function updateSelectedPayment(method, key, val) {\n this.componentsObj[method][key] = val;\n }\n }]);\n}(), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"checkout\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"endDigits\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"selectedMethod\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"componentsObj\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return {};\n }\n}), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, \"checkoutConfiguration\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return window.Configuration || {};\n }\n}), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, \"formErrorsExist\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, \"isValid\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return false;\n }\n}), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, \"paypalTerminatedEarly\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return false;\n }\n}), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, \"componentState\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return {};\n }\n}), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, \"brand\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, \"partialPaymentsOrderObj\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, \"giftCardComponentListenersAdded\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, \"addedGiftCards\", [observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _applyDecoratedDescriptor(_class.prototype, \"maskedCardNumber\", [computed], Object.getOwnPropertyDescriptor(_class.prototype, \"maskedCardNumber\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"selectedPayment\", [computed], Object.getOwnPropertyDescriptor(_class.prototype, \"selectedPayment\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"selectedPaymentIsValid\", [computed], Object.getOwnPropertyDescriptor(_class.prototype, \"selectedPaymentIsValid\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"stateData\", [computed], Object.getOwnPropertyDescriptor(_class.prototype, \"stateData\"), _class.prototype)), _class);\nmodule.exports = new Store();\n\n//# sourceURL=webpack:///./cartridges/app_adyen_SFRA/cartridge/store/index.js?"); + +/***/ }), + +/***/ "./node_modules/mobx/dist/mobx.esm.js": +/*!********************************************!*\ + !*** ./node_modules/mobx/dist/mobx.esm.js ***! + \********************************************/ +/*! exports provided: $mobx, FlowCancellationError, ObservableMap, ObservableSet, Reaction, _allowStateChanges, _allowStateChangesInsideComputed, _allowStateReadsEnd, _allowStateReadsStart, _autoAction, _endAction, _getAdministration, _getGlobalState, _interceptReads, _isComputingDerivation, _resetGlobalState, _startAction, action, autorun, comparer, computed, configure, createAtom, defineProperty, entries, extendObservable, flow, flowResult, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isBoxedObservable, isComputed, isComputedProp, isFlow, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, makeAutoObservable, makeObservable, observable, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, override, ownKeys, reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$mobx\", function() { return $mobx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlowCancellationError\", function() { return FlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableMap\", function() { return ObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObservableSet\", function() { return ObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reaction\", function() { return Reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChanges\", function() { return allowStateChanges; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateChangesInsideComputed\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsEnd\", function() { return allowStateReadsEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_allowStateReadsStart\", function() { return allowStateReadsStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_autoAction\", function() { return autoAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_endAction\", function() { return _endAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getAdministration\", function() { return getAdministration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getGlobalState\", function() { return getGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_interceptReads\", function() { return interceptReads; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_isComputingDerivation\", function() { return isComputingDerivation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_resetGlobalState\", function() { return resetGlobalState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_startAction\", function() { return _startAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"action\", function() { return action; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autorun\", function() { return autorun; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"comparer\", function() { return comparer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computed\", function() { return computed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"configure\", function() { return configure; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAtom\", function() { return createAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineProperty\", function() { return apiDefineProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendObservable\", function() { return extendObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowResult\", function() { return flowResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAtom\", function() { return getAtom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugName\", function() { return getDebugName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependencyTree\", function() { return getDependencyTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getObserverTree\", function() { return getObserverTree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intercept\", function() { return intercept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAction\", function() { return isAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoxedObservable\", function() { return isObservableValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputed\", function() { return isComputed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isComputedProp\", function() { return isComputedProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlow\", function() { return isFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlowCancellationError\", function() { return isFlowCancellationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableArray\", function() { return isObservableArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableMap\", function() { return isObservableMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableObject\", function() { return isObservableObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableProp\", function() { return isObservableProp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservableSet\", function() { return isObservableSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAutoObservable\", function() { return makeAutoObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeObservable\", function() { return makeObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeObserved\", function() { return onBecomeObserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBecomeUnobserved\", function() { return onBecomeUnobserved; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onReactionError\", function() { return onReactionError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"override\", function() { return override; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownKeys\", function() { return apiOwnKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reaction\", function() { return reaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runInAction\", function() { return runInAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spy\", function() { return spy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return toJS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trace\", function() { return trace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transaction\", function() { return transaction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"untracked\", function() { return untracked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return when; });\nvar niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = true ? niceErrors : undefined;\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (true) {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die( true ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : undefined);\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if ( true && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if ( true && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if ( true && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if ( true && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = true ? \"Atom@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.batchId_ = void 0;\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN;\n }\n // onBecomeObservedListeners\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */;\n _proto.reportChanged = function reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion = globalState.stateVersion < Number.MAX_SAFE_INTEGER ? globalState.stateVersion + 1 : Number.MIN_SAFE_INTEGER;\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN;\n }\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (true) {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if ( true && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if ( true && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if ( true && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* Cancel */;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* Cancel */;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* Break */;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* Continue */;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if ( true && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if ( true && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* Cancel */ : 1 /* Break */;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if ( true && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* Cancel */ : 2 /* Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (true) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (true) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = true && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if ( true && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if ( true && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = true ? \"ObservableValue@\" + getNextId() : undefined;\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if ( true && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if ( true && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n\n // to check for cycles\n\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || ( true ? \"ComputedValue@\" + getNextId() : undefined);\n if (options.set) {\n this.setter_ = createAction( true ? this.name_ + \"-setter\" : undefined, options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */;\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if ( true && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if ( true && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (false) {}\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\n\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (false) {}\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if ( true && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (false) {}\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.batchId = Number.MIN_SAFE_INTEGER;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n this.stateVersion = Number.MIN_SAFE_INTEGER;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\nfunction startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId = globalState.batchId < Number.MAX_SAFE_INTEGER ? globalState.batchId + 1 : Number.MIN_SAFE_INTEGER;\n }\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if ( true && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = true ? \"Reaction@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if ( true && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if ( true && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if ( true && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = true ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : undefined;\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (true) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if ( true && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null ? void 0 : abortSignal.removeEventListener == null ? void 0 : abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null ? void 0 : abortSignal.addEventListener == null ? void 0 : abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error( true ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : undefined);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return true && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (false) {} // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (false) {}\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (false) {}\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (false) {} else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (true) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts2$signal, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : true ? view.name || \"Autorun@\" + getNextId() : undefined;\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2$signal = _opts2.signal) != null && _opts2$signal.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts4$signal, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (true) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : true ? \"Reaction@\" + getNextId() : undefined;\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed_) {\n return;\n }\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4$signal = _opts4.signal) != null && _opts4$signal.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if ( true && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (true) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if ( true && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\n\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if ( true && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (true) {\n return die(\"Expected observable map, object or array as first array\");\n }\n if ( true && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if ( true && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if ( true && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if ( true && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if ( true && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\nfunction toJS(source, options) {\n if ( true && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (false) {}\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = true ? opts.name || \"When@\" + getNextId() : undefined;\n var effectAction = createAction( true ? opts.name + \"-effect\" : undefined, effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if ( true && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if ( true && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (true) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (true) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if ( true && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if ( true && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (true) {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, true ? name + \"[..]\" : undefined);\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || \"development\" !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn( true ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : undefined);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableMap@\" + getNextId() : undefined;\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom( true ? _this.name_ + \".keys()\" : undefined);\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, true ? _this4.name_ + \".\" + stringifyKey(key) : undefined, false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n return ObservableMap;\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = true ? \"ObservableSet@\" + getNextId() : undefined;\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = true && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && \"development\" !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && \"development\" !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n return ObservableSet;\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom( true ? this.name_ + \".keys\" : undefined);\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if ( true && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (true) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if ( true && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, true ? this.name_ + \".\" + stringifyKey(key) + \"?\" : undefined, false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* Cancel */) {\n return;\n }\n if (outcome === 1 /* Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, true ? this.name_ + \".\" + key.toString() : undefined, false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = true ? this.name_ + \".\" + key.toString() : undefined);\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (true) {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if ( true && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if ( true && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = true && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if ( true && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if ( true && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if ( true && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if ( true && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if ( true && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : true ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : undefined;\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (true) {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if ( true && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n if ( true && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = true ? \"ObservableArray@\" + getNextId() : undefined;\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\r\n * Helper function for initializing observable structures, it applies:\r\n * 1. allowStateChanges so we don't violate enforceActions.\r\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\r\n * 3. batch to avoid state version updates\r\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false;\n }\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\n\n//# sourceMappingURL=mobx.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../sgmf-scripts/node_modules/webpack/buildin/global.js */ \"./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/mobx/dist/mobx.esm.js?"); + +/***/ }), + +/***/ "./node_modules/sgmf-scripts/node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?"); + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/cartridges/app_adyen_SFRA/cartridge/templates/default/adyen/checkoutReviewButtons.isml b/cartridges/app_adyen_SFRA/cartridge/templates/default/adyen/checkoutReviewButtons.isml new file mode 100644 index 000000000..cf4924988 --- /dev/null +++ b/cartridges/app_adyen_SFRA/cartridge/templates/default/adyen/checkoutReviewButtons.isml @@ -0,0 +1,23 @@ + + var assets = require('*/cartridge/scripts/assets.js'); + assets.addJs('/js/checkoutReviewButtons.js'); + assets.addCss('/css/checkout/checkout.css'); + + +
+
+
+ + + + + + + +
+
+
diff --git a/cartridges/app_adyen_SFRA/cartridge/templates/default/cart/checkoutButtons.isml b/cartridges/app_adyen_SFRA/cartridge/templates/default/cart/checkoutButtons.isml index b187a14c8..630c5db42 100644 --- a/cartridges/app_adyen_SFRA/cartridge/templates/default/cart/checkoutButtons.isml +++ b/cartridges/app_adyen_SFRA/cartridge/templates/default/cart/checkoutButtons.isml @@ -43,9 +43,9 @@
+ +
+
+ ${Resource.msgf('label.number.items.in.cart','cart', null, pdict.order.items.totalQuantity)} + ${pdict.order.totals.subTotal} +
+
+
+
+ + + +
+
+

${Resource.msg('heading.checkout.customer', 'checkout', null)}

+
+
+ +
+
+
+ + +
+
+

${Resource.msg('heading.checkout.shipping', 'checkout', null)}

+
+
+ +
+
+ + +
+
+

${Resource.msg('heading.payment', 'checkout', null)}

+
+ +
+ +
+
+ +
+ + + + +
+ +
+
+

${Resource.msg('heading.order.summary', 'checkout', null)}

+
+
+ +
+
+ + +
+
+
+ + diff --git a/cartridges/app_adyen_SFRA/cartridge/templates/resources/adyen.properties b/cartridges/app_adyen_SFRA/cartridge/templates/resources/adyen.properties index ef57083a9..4af6b7d5c 100644 --- a/cartridges/app_adyen_SFRA/cartridge/templates/resources/adyen.properties +++ b/cartridges/app_adyen_SFRA/cartridge/templates/resources/adyen.properties @@ -16,3 +16,5 @@ myAccount.SaveCard=Please add a new payment instrument through the checkout terminal.selectTerminal=Please select your terminal terminal.noTerminals=There are no terminals connected adyen.paymentFailed=Payment failed, please try again. +button.submit.checkout.review=Place Order +title.checkout.review=Checkout Review diff --git a/cartridges/bm_adyen/cartridge/static/default/css/configurationSettings.css b/cartridges/bm_adyen/cartridge/static/default/css/configurationSettings.css index bad57ac55..6cf3d0a85 100644 --- a/cartridges/bm_adyen/cartridge/static/default/css/configurationSettings.css +++ b/cartridges/bm_adyen/cartridge/static/default/css/configurationSettings.css @@ -65,7 +65,6 @@ padding-right: 51px; } - .form-check-input, .form-check-label{ width: 26px; height: 20px; @@ -240,7 +239,7 @@ html { #saveChangesAlert{ width: 420px; left: 0; - margin: auto; // Centers alert component + margin: auto; /* Centers alert component */ right: 0; text-align: center; top: 1em; @@ -276,8 +275,8 @@ html { #notSavedChangesAlert{ left: 0; - margin: auto; // Centers alert component - position: absolute; // So that it will display relative to the entire page + margin: auto; /* Centers alert component */ + position: absolute; /* So that it will display relative to the entire page */ right: 0; text-align: center; top: 1em; @@ -460,7 +459,8 @@ ul{ .draggable { cursor: move; display: flex; - align-items: center; + flex-direction: column; + align-items: flex-start; /* Align items to the start */ justify-content: space-between; padding: 15px; flex: 1; @@ -468,8 +468,7 @@ ul{ } .draggable .switch-button { - position: initial; - left: 95.5%; + left: 89%; } .draggable .title { @@ -513,3 +512,18 @@ ul{ font-style: normal; font-size: 14px; } + +.additional-item-container { + display: flex; + align-items: center; + margin-top: 10px; +} + +.additional-item-container .additional-switch-button{ + position: absolute; + left: 89%; +} + +.additional-item{ + margin-left: 48px; +} diff --git a/cartridges/bm_adyen/cartridge/static/default/icons/paypal.svg b/cartridges/bm_adyen/cartridge/static/default/icons/paypal.svg new file mode 100644 index 000000000..1b9444423 --- /dev/null +++ b/cartridges/bm_adyen/cartridge/static/default/icons/paypal.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/cartridges/bm_adyen/cartridge/static/default/js/adyenSettings.js b/cartridges/bm_adyen/cartridge/static/default/js/adyenSettings.js index 217dfd6d5..35945925c 100644 --- a/cartridges/bm_adyen/cartridge/static/default/js/adyenSettings.js +++ b/cartridges/bm_adyen/cartridge/static/default/js/adyenSettings.js @@ -10,6 +10,17 @@ const expressPaymentMethods = [{ text: 'Amazon Pay', icon: window.amazonPayIcon, checked: window.isAmazonPayEnabled +}, { + id: 'paypal', + name: 'PayPalExpress_Enabled', + text: 'PayPal', + icon: window.paypalIcon, + checked: window.isPayPalExpressEnabled, + reviewPage: window.isPayPalExpressReviewPageEnabled, + additionalField: { + name: 'PayPalExpress_ReviewPage_Enabled', + text: 'Show shopper order review page' + } }]; document.addEventListener('DOMContentLoaded', () => { const form = document.querySelector('#settingsForm'); @@ -120,6 +131,24 @@ document.addEventListener('DOMContentLoaded', () => { expressPaymentMethods.forEach((item, index) => { const listItem = document.createElement('li'); listItem.setAttribute('data-index', index.toString()); + let additionalFieldHtml = ''; + if (item.additionalField) { + additionalFieldHtml = ` +
+

${item.additionalField.text}

+
+
+ +
+
+
+ `; + } listItem.innerHTML = `
@@ -142,6 +171,7 @@ document.addEventListener('DOMContentLoaded', () => { >
+ ${additionalFieldHtml}
`; listItems.push(listItem); diff --git a/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/epmSettings.isml b/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/epmSettings.isml index b6d28d69e..5e0a81c31 100644 --- a/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/epmSettings.isml +++ b/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/epmSettings.isml @@ -4,9 +4,12 @@ window.dragIcon = "${URLUtils.staticURL('icons/drag.svg')}"; window.applePayIcon = "${URLUtils.staticURL('icons/applepay.svg')}"; window.amazonPayIcon = "${URLUtils.staticURL('icons/amazonpay.svg')}"; + window.paypalIcon = "${URLUtils.staticURL('icons/paypal.svg')}"; window.isApplePayEnabled = ${AdyenConfigs.isApplePayExpressEnabled() || false}; window.isAmazonPayEnabled = ${AdyenConfigs.isAmazonPayExpressEnabled() || false}; + window.isPayPalExpressEnabled = ${AdyenConfigs.isPayPalExpressEnabled() || false}; + window.isPayPalExpressReviewPageEnabled = ${AdyenConfigs.isPayPalExpressReviewPageEnabled() || false}; window.expressMethodsOrder = "${AdyenConfigs.getExpressPaymentsOrder()}";
diff --git a/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/optionalSettings.isml b/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/optionalSettings.isml index 5bac62a8b..e40494707 100644 --- a/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/optionalSettings.isml +++ b/cartridges/bm_adyen/cartridge/templates/default/adyenSettings/settingCards/optionalSettings.isml @@ -13,7 +13,7 @@ 2/3 Data gives you interchange discounts on US domestic transactions. Your shoppers will also see additional data about their purchases on their credit card statements. - Check if your business is eligible for Level 2/3 Data. + Check if your business is eligible for Level 2/3 Data.
diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js b/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js index e7c749857..7051d2c1a 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/config/constants.js @@ -30,7 +30,8 @@ module.exports = { CHECKOUT_COMPONENT_IMAGE_URL_PATH: 'images/logos/medium/', PAYMENTMETHODS: { APPLEPAY: 'applepay', - AMAZONPAY: 'amazonpay' + AMAZONPAY: 'amazonpay', + PAYPAL: 'paypal' }, CAN_SKIP_SUMMARY_PAGE: ['applepay', 'cashapp'], SERVICE: { @@ -43,7 +44,8 @@ module.exports = { ADYENGIVING: 'AdyenGiving', CHECKBALANCE: 'AdyenCheckBalance', CANCELPARTIALPAYMENTORDER: 'AdyenCancelPartialPaymentOrder', - PARTIALPAYMENTSORDER: 'AdyenPartialPaymentsOrder' + PARTIALPAYMENTSORDER: 'AdyenPartialPaymentsOrder', + PAYPALUPDATEORDER: 'AdyenPaypalUpdateOrder' }, CONTRACT: { ONECLICK: 'ONECLICK' @@ -83,6 +85,6 @@ module.exports = { EXTERNAL_PLATFORM_NAME: 'SalesforceCommerceCloud', EXTERNAL_PLATFORM_VERSION: 'SFRA', APPLE_DOMAIN_URL: '/.well-known/apple-developer-merchantid-domain-association', - CHECKOUT_COMPONENT_VERSION: '5.64.0', - VERSION: '24.2.1' + CHECKOUT_COMPONENT_VERSION: '5.65.0', + VERSION: '24.3.0' }; \ No newline at end of file diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/logs/adyenCustomLogs.js b/cartridges/int_adyen_SFRA/cartridge/adyen/logs/adyenCustomLogs.js index 456cd31a1..6b0e00fa6 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/logs/adyenCustomLogs.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/logs/adyenCustomLogs.js @@ -1,17 +1,19 @@ "use strict"; var Logger = require('dw/system/Logger'); -function fatal_log(msg) { - return Logger.getLogger('Adyen_fatal', 'Adyen').fatal(msg); +function fatal_log(msg, error) { + var logMsg = [msg, error === null || error === void 0 ? void 0 : error.toString(), error === null || error === void 0 ? void 0 : error.stack].join('\n').trim(); + Logger.getLogger('Adyen_fatal', 'Adyen').fatal(logMsg); } -function error_log(msg) { - return Logger.getLogger('Adyen_error', 'Adyen').error(msg); +function error_log(msg, error) { + var logMsg = [msg, error === null || error === void 0 ? void 0 : error.toString(), error === null || error === void 0 ? void 0 : error.stack].join('\n').trim(); + Logger.getLogger('Adyen_error', 'Adyen').error(logMsg); } function debug_log(msg) { - return Logger.getLogger('Adyen_debug', 'Adyen').debug(msg); + Logger.getLogger('Adyen_debug', 'Adyen').debug(msg); } function info_log(msg) { - return Logger.getLogger('Adyen_info', 'Adyen').info(msg); + Logger.getLogger('Adyen_info', 'Adyen').info(msg); } module.exports = { fatal_log: fatal_log, diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview.js new file mode 100644 index 000000000..e1c22d986 --- /dev/null +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview.js @@ -0,0 +1,81 @@ +"use strict"; + +var URLUtils = require('dw/web/URLUtils'); +var BasketMgr = require('dw/order/BasketMgr'); +var Locale = require('dw/util/Locale'); +var Transaction = require('dw/system/Transaction'); +var AccountModel = require('*/cartridge/models/account'); +var OrderModel = require('*/cartridge/models/order'); +var validationHelpers = require('*/cartridge/scripts/helpers/basketValidationHelpers'); +var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +var AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); +var paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); + +/** + * Sets Shipping and Billing address for the basket, + * also updated payment method on the paymentInstrument of Basket. + * @param {dw.order.Basket} currentBasket - the current basket + * @param {sfra.Request} req - request object + * @returns {undefined} + */ +function updateCurrentBasket(currentBasket, req) { + var _currentBasket$shipme; + var _JSON$parse = JSON.parse(req.form.data), + details = _JSON$parse.details; + if (((_currentBasket$shipme = currentBasket.shipments) === null || _currentBasket$shipme === void 0 ? void 0 : _currentBasket$shipme.length) <= 1) { + req.session.privacyCache.set('usingMultiShipping', false); + } + paypalHelper.setBillingAndShippingAddress(currentBasket); + var paymentInstrument = currentBasket.getPaymentInstruments()[0]; + Transaction.wrap(function () { + paymentInstrument.custom.adyenPaymentMethod = AdyenHelper.getAdyenComponentType(details === null || details === void 0 ? void 0 : details.paymentSource); + }); +} + +/** + * Controller for the checkout review page for express payment methods + * @param {sfra.Request} req - request + * @param {sfra.Response} res - response + * @param {sfra.Next} next - next + * @returns {sfra.Next} next - next + */ +function handleCheckoutReview(req, res, next) { + try { + if (!req.form.data) { + throw new Error('State data not present in the request'); + } + var currentBasket = BasketMgr.getCurrentBasket(); + if (!currentBasket) { + res.redirect(URLUtils.url('Cart-Show')); + return next(); + } + var validatedProducts = validationHelpers.validateProducts(currentBasket); + if (validatedProducts.error) { + res.redirect(URLUtils.url('Cart-Show')); + return next(); + } + updateCurrentBasket(currentBasket, req); + var currentCustomer = req.currentCustomer.raw; + var currentLocale = Locale.getLocale(req.locale.id); + var usingMultiShipping = req.session.privacyCache.get('usingMultiShipping'); + var orderModel = new OrderModel(currentBasket, { + customer: currentCustomer, + usingMultiShipping: usingMultiShipping, + shippable: true, + countryCode: currentLocale.country, + containerView: 'basket' + }); + var accountModel = new AccountModel(req.currentCustomer); + res.render('cart/checkoutReview', { + data: req.form.data, + showConfirmationUrl: URLUtils.https('Adyen-ShowConfirmationPaymentFromComponent'), + order: orderModel, + customer: accountModel + }); + } catch (error) { + AdyenLogs.error_log('Could not render checkout review page', error); + res.redirect(URLUtils.url('Error-ErrorCode', 'err', 'general')); + } + return next(); +} +module.exports = handleCheckoutReview; \ No newline at end of file diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall.js new file mode 100644 index 000000000..2c8536f71 --- /dev/null +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall.js @@ -0,0 +1,60 @@ +"use strict"; + +var URLUtils = require('dw/web/URLUtils'); +var OrderMgr = require('dw/order/OrderMgr'); +var Transaction = require('dw/system/Transaction'); +var BasketMgr = require('dw/order/BasketMgr'); +var adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); +var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +var COHelpers = require('*/cartridge/scripts/checkout/checkoutHelpers'); +var AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); +var paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); +var constants = require('*/cartridge/adyen/config/constants'); +function setPaymentInstrumentFields(paymentInstrument, response) { + paymentInstrument.custom.adyenPaymentMethod = AdyenHelper.getAdyenComponentType(response.paymentMethod.type); + paymentInstrument.custom["".concat(constants.OMS_NAMESPACE, "__Adyen_Payment_Method")] = AdyenHelper.getAdyenComponentType(response.paymentMethod.type); + paymentInstrument.custom.Adyen_Payment_Method_Variant = response.paymentMethod.type.toLowerCase(); + paymentInstrument.custom["".concat(constants.OMS_NAMESPACE, "__Adyen_Payment_Method_Variant")] = response.paymentMethod.type.toLowerCase(); +} + +/* + * Makes a payment details call to Adyen to confirm the current status of a payment. + It is currently used only for PayPal Express Flow + */ +function makeExpressPaymentDetailsCall(req, res, next) { + try { + var request = JSON.parse(req.body); + var currentBasket = BasketMgr.getCurrentBasket(); + var response = adyenCheckout.doPaymentsDetailsCall(request.data); + paypalHelper.setBillingAndShippingAddress(currentBasket); + + // Setting the session variable to null after assigning the shopper data to basket level + session.privacy.shopperDetails = null; + var order = OrderMgr.createOrder(currentBasket, session.privacy.paypalExpressOrderNo); + var fraudDetectionStatus = { + status: 'success' + }; + var placeOrderResult = COHelpers.placeOrder(order, fraudDetectionStatus); + if (placeOrderResult.error) { + throw new Error('Failed to place the PayPal express order'); + } + response.orderNo = order.orderNo; + response.orderToken = order.orderToken; + var paymentInstrument = order.getPaymentInstruments(AdyenHelper.getOrderMainPaymentInstrumentType(order))[0]; + // Storing the paypal express response to make use of show confirmation logic + Transaction.wrap(function () { + order.custom.Adyen_paypalExpressResponse = JSON.stringify(response); + setPaymentInstrumentFields(paymentInstrument, response); + }); + res.json({ + orderNo: response.orderNo, + orderToken: response.orderToken + }); + return next(); + } catch (error) { + AdyenLogs.error_log('Could not verify express /payment/details:', error); + res.redirect(URLUtils.url('Error-ErrorCode', 'err', 'general')); + return next(); + } +} +module.exports = makeExpressPaymentDetailsCall; \ No newline at end of file diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall.js new file mode 100644 index 000000000..dc80caf05 --- /dev/null +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall.js @@ -0,0 +1,52 @@ +"use strict"; + +var BasketMgr = require('dw/order/BasketMgr'); +var PaymentMgr = require('dw/order/PaymentMgr'); +var OrderMgr = require('dw/order/OrderMgr'); +var Transaction = require('dw/system/Transaction'); +var Resource = require('dw/web/Resource'); +var adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); +var constants = require('*/cartridge/adyen/config/constants'); +var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +var AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); +var paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); +function makeExpressPaymentsCall(req, res, next) { + try { + var currentBasket = BasketMgr.getCurrentBasket(); + var paymentInstrument; + Transaction.wrap(function () { + currentBasket.removeAllPaymentInstruments(); + paymentInstrument = currentBasket.createPaymentInstrument(constants.METHOD_ADYEN_COMPONENT, currentBasket.getAdjustedMerchandizeTotalGrossPrice()); + var _PaymentMgr$getPaymen = PaymentMgr.getPaymentMethod(paymentInstrument.paymentMethod), + paymentProcessor = _PaymentMgr$getPaymen.paymentProcessor; + paymentInstrument.paymentTransaction.paymentProcessor = paymentProcessor; + paymentInstrument.custom.adyenPaymentData = req.body; + }); + // creates order number to be utilized for PayPal express + var paypalExpressOrderNo = OrderMgr.createOrderNo(); + // Create request object with payment details + var paymentRequest = AdyenHelper.createAdyenRequestObject(paypalExpressOrderNo, null, paymentInstrument); + paymentRequest.amount = { + currency: paymentInstrument.paymentTransaction.amount.currencyCode, + value: AdyenHelper.getCurrencyValueForApi(paymentInstrument.paymentTransaction.amount).getValueOrNull() + }; + paymentRequest.lineItems = paypalHelper.getLineItems({ + Basket: currentBasket + }); + var result; + Transaction.wrap(function () { + result = adyenCheckout.doPaymentsCall(null, paymentInstrument, paymentRequest); + }); + session.privacy.paypalExpressOrderNo = paypalExpressOrderNo; + session.privacy.pspReference = result.pspReference; + res.json(result); + } catch (error) { + AdyenLogs.fatal_log('Paypal express payments request failed', error); + res.setStatusCode(500); + res.json({ + errorMessage: Resource.msg('error.express.paypal.payments', 'cart', null) + }); + } + return next(); +} +module.exports = makeExpressPaymentsCall; \ No newline at end of file diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData.js new file mode 100644 index 000000000..0946838d7 --- /dev/null +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData.js @@ -0,0 +1,19 @@ +"use strict"; + +var URLUtils = require('dw/web/URLUtils'); +var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +function saveShopperData(req, res, next) { + try { + var shopperDetails = JSON.parse(req.form.shopperDetails); + session.privacy.shopperDetails = JSON.stringify(shopperDetails); + res.json({ + success: true + }); + return next(); + } catch (error) { + AdyenLogs.error_log('Failed to save the shopper details:', error); + res.redirect(URLUtils.url('Error-ErrorCode', 'err', 'general')); + return next(); + } +} +module.exports = saveShopperData; \ No newline at end of file diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails.js index 03ee97aad..2b158ba34 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/saveExpressShopperDetails.js @@ -49,7 +49,9 @@ function saveExpressShopperDetails(req, res, next) { currentBasket.custom.amazonExpressShopperDetails = JSON.stringify(shopperDetails); }); setBillingAndShippingAddress(currentBasket); - var shippingMethods = AdyenHelper.callGetShippingMethods(shopperDetails.shippingAddress); + var _currentBasket$getDef2 = currentBasket.getDefaultShipment(), + shippingAddress = _currentBasket$getDef2.shippingAddress; + var shippingMethods = AdyenHelper.getApplicableShippingMethods(currentBasket.getDefaultShipment(), shippingAddress); res.json({ shippingMethods: shippingMethods }); diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/selectShippingMethods.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/selectShippingMethods.js index 45f497abd..85c78baeb 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/selectShippingMethods.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/selectShippingMethods.js @@ -13,6 +13,12 @@ var URLUtils = require('dw/web/URLUtils'); var CartModel = require('*/cartridge/models/cart'); var shippingHelper = require('*/cartridge/scripts/checkout/shippingHelpers'); var basketCalculationHelpers = require('*/cartridge/scripts/helpers/basketCalculationHelpers'); +var _require = require('*/cartridge/adyen/config/constants'), + PAYMENTMETHODS = _require.PAYMENTMETHODS; +var adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); +var AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); +var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); +var paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); /** * Make a request to Adyen to select shipping methods @@ -27,33 +33,47 @@ function callSelectShippingMethod(req, res, next) { }); return next(); } - var error = false; - var shipUUID = req.querystring.shipmentUUID || req.form.shipmentUUID; - var methodID = req.querystring.methodID || req.form.methodID; - var shipment; - if (shipUUID) { - shipment = shippingHelper.getShipmentByUUID(currentBasket, shipUUID); - } else { - shipment = currentBasket.defaultShipment; - } - Transaction.wrap(function () { - shippingHelper.selectShippingMethod(shipment, methodID); - if (currentBasket && !shipment.shippingMethod) { - error = true; - return; + try { + var _JSON$parse = JSON.parse(req.body), + shipmentUUID = _JSON$parse.shipmentUUID, + methodID = _JSON$parse.methodID, + currentPaymentData = _JSON$parse.currentPaymentData, + paymentMethodType = _JSON$parse.paymentMethodType; + var shipment; + if (shipmentUUID) { + shipment = shippingHelper.getShipmentByUUID(currentBasket, shipmentUUID); + } else { + shipment = currentBasket.defaultShipment; + } + Transaction.wrap(function () { + shippingHelper.selectShippingMethod(shipment, methodID); + if (currentBasket && !shipment.shippingMethod) { + var _shipment; + throw new Error("cannot set shippingMethod: ".concat(methodID, " for shipment:").concat((_shipment = shipment) === null || _shipment === void 0 ? void 0 : _shipment.UUID)); + } + basketCalculationHelpers.calculateTotals(currentBasket); + }); + var response = {}; + if (paymentMethodType === PAYMENTMETHODS.PAYPAL) { + var currentShippingMethodsModels = AdyenHelper.getApplicableShippingMethods(shipment); + if (!(currentShippingMethodsModels !== null && currentShippingMethodsModels !== void 0 && currentShippingMethodsModels.length)) { + throw new Error('No applicable shipping methods found'); + } + var paypalUpdateOrderResponse = adyenCheckout.doPaypalUpdateOrderCall(paypalHelper.createPaypalUpdateOrderRequest(session.privacy.pspReference, currentBasket, currentShippingMethodsModels, currentPaymentData)); + AdyenLogs.info_log("Paypal Order Update Call: ".concat(paypalUpdateOrderResponse.status)); + response = _objectSpread(_objectSpread({}, response), paypalUpdateOrderResponse); } - basketCalculationHelpers.calculateTotals(currentBasket); - }); - if (!error) { var basketModel = new CartModel(currentBasket); var grandTotalAmount = { value: currentBasket.getTotalGrossPrice().value, currency: currentBasket.getTotalGrossPrice().currencyCode }; - res.json(_objectSpread(_objectSpread({}, basketModel), {}, { + response = _objectSpread(_objectSpread(_objectSpread({}, response), basketModel), {}, { grandTotalAmount: grandTotalAmount - })); - } else { + }); + res.json(response); + } catch (error) { + AdyenLogs.error_log('Failed to set shipping method', error); res.setStatusCode(500); res.json({ errorMessage: Resource.msg('error.cannot.select.shipping.method', 'cart', null) diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js index db1c55ef1..a19a9323b 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/expressPayments/shippingMethods.js @@ -1,64 +1,75 @@ "use strict"; +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var BasketMgr = require('dw/order/BasketMgr'); var Transaction = require('dw/system/Transaction'); +var Resource = require('dw/web/Resource'); +var URLUtils = require('dw/web/URLUtils'); var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); var AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); -var addressMapping = { - city: 'setCity', - countryCode: 'setCountryCode', - stateCode: 'setStateCode', - postalCode: 'setPostalCode' -}; - -/** - * Sets address properties for express PM - * @param {dw.order.shippingAddress} shippingAddress - shippingAddress for the default shipment - * @param {object} inputAddress - address coming from the input field based on shopper selection - * @param {object} mapping - address mapping between property and setter for that property - */ -function setAddressProperties(shippingAddress, inputAddress, mapping) { - Object.keys(inputAddress).forEach(function (key) { - if (inputAddress[key] && mapping[key]) { - shippingAddress[mapping[key]](inputAddress[key]); - } - }); +var _require = require('*/cartridge/adyen/config/constants'), + PAYMENTMETHODS = _require.PAYMENTMETHODS; +var adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); +var paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); +function updateShippingAddress(currentBasket, address) { + if (address) { + var _currentBasket$getDef = currentBasket.getDefaultShipment(), + shippingAddress = _currentBasket$getDef.shippingAddress; + Transaction.wrap(function () { + if (!shippingAddress) { + shippingAddress = currentBasket.getDefaultShipment().createShippingAddress(); + } + shippingAddress.setCity(address === null || address === void 0 ? void 0 : address.city); + shippingAddress.setPostalCode(address === null || address === void 0 ? void 0 : address.postalCode); + shippingAddress.setStateCode(address === null || address === void 0 ? void 0 : address.stateCode); + shippingAddress.setCountryCode(address === null || address === void 0 ? void 0 : address.countryCode); + }); + } } - /** * Make a request to Adyen to get shipping methods */ function callGetShippingMethods(req, res, next) { try { - var address = null; - if (req.querystring) { - address = { - city: req.querystring.city, - countryCode: req.querystring.countryCode, - stateCode: req.querystring.stateCode, - postalCode: req.querystring.postalCode - }; - } + var _JSON$parse = JSON.parse(req.body), + address = _JSON$parse.address, + currentPaymentData = _JSON$parse.currentPaymentData, + paymentMethodType = _JSON$parse.paymentMethodType; var currentBasket = BasketMgr.getCurrentBasket(); - var shipment = currentBasket.getDefaultShipment(); - Transaction.wrap(function () { - var shippingAddress = shipment.shippingAddress; - if (!shippingAddress) { - shippingAddress = currentBasket.getDefaultShipment().createShippingAddress(); - } - if (address) { - setAddressProperties(shippingAddress, address, addressMapping); - } - }); - var currentShippingMethodsModels = AdyenHelper.getApplicableShippingMethods(shipment, address); - res.json({ - shippingMethods: currentShippingMethodsModels - }); + if (!currentBasket) { + res.json({ + error: true, + redirectUrl: URLUtils.url('Cart-Show').toString() + }); + return next(); + } + updateShippingAddress(currentBasket, address); + currentBasket.updateTotals(); + var currentShippingMethodsModels = AdyenHelper.getApplicableShippingMethods(currentBasket.getDefaultShipment(), address); + if (!(currentShippingMethodsModels !== null && currentShippingMethodsModels !== void 0 && currentShippingMethodsModels.length)) { + throw new Error('No applicable shipping methods found'); + } + var response = {}; + if (paymentMethodType === PAYMENTMETHODS.PAYPAL) { + var paypalUpdateOrderResponse = adyenCheckout.doPaypalUpdateOrderCall(paypalHelper.createPaypalUpdateOrderRequest(session.privacy.pspReference, currentBasket, currentShippingMethodsModels, currentPaymentData)); + AdyenLogs.info_log("Paypal Order Update Call: ".concat(paypalUpdateOrderResponse.status)); + response = _objectSpread(_objectSpread({}, response), paypalUpdateOrderResponse); + } + response.shippingMethods = currentShippingMethodsModels; + res.json(response); return next(); } catch (error) { - AdyenLogs.error_log('Failed to fetch shipping methods'); - AdyenLogs.error_log(error); + AdyenLogs.error_log('Failed to fetch shipping methods', error); + res.setStatusCode(500); + res.json({ + errorMessage: Resource.msg('error.cannot.find.shipping.methods', 'cart', null) + }); return next(); } } -module.exports = callGetShippingMethods; +module.exports = callGetShippingMethods; \ No newline at end of file diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/index.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/index.js index 3630f9929..b4ff00bb5 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/index.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/index.js @@ -15,6 +15,10 @@ var fetchGiftCards = require('*/cartridge/adyen/scripts/partialPayments/fetchGif var showConfirmationPaymentFromComponent = require('*/cartridge/adyen/scripts/showConfirmation/showConfirmationPaymentFromComponent'); var showConfirmation = require('*/cartridge/adyen/scripts/showConfirmation/showConfirmation'); var notify = require('*/cartridge/adyen/webhooks/notify'); +var makeExpressPaymentsCall = require('*/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentsCall'); +var makeExpressPaymentDetailsCall = require('*/cartridge/adyen/scripts/expressPayments/paypal/makeExpressPaymentDetailsCall'); +var saveShopperData = require('*/cartridge/adyen/scripts/expressPayments/paypal/saveShopperData'); +var handleCheckoutReview = require('*/cartridge/adyen/scripts/expressPayments/paypal/handleCheckoutReview'); module.exports = { getCheckoutPaymentMethods: getCheckoutPaymentMethods, paymentFromComponent: paymentFromComponent, @@ -30,5 +34,9 @@ module.exports = { fetchGiftCards: fetchGiftCards, showConfirmation: showConfirmation, showConfirmationPaymentFromComponent: showConfirmationPaymentFromComponent, - notify: notify + notify: notify, + makeExpressPaymentsCall: makeExpressPaymentsCall, + makeExpressPaymentDetailsCall: makeExpressPaymentDetailsCall, + saveShopperData: saveShopperData, + handleCheckoutReview: handleCheckoutReview }; \ No newline at end of file diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js index aae503949..47a19d789 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenCheckout.js @@ -34,7 +34,6 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e var Resource = require('dw/web/Resource'); var Order = require('dw/order/Order'); var StringUtils = require('dw/util/StringUtils'); - /* Script Modules */ var AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); var AdyenConfigs = require('*/cartridge/adyen/utils/adyenConfigs'); @@ -43,23 +42,19 @@ var AdyenGetOpenInvoiceData = require('*/cartridge/adyen/scripts/payments/adyenG var adyenLevelTwoThreeData = require('*/cartridge/adyen/scripts/payments/adyenLevelTwoThreeData'); var constants = require('*/cartridge/adyen/config/constants'); var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); -var paypalHelper = require('*/cartridge/adyen/scripts/payments/paypalHelper'); +var paypalHelper = require('*/cartridge/adyen/utils/paypalHelper'); // eslint-disable-next-line complexity function doPaymentsCall(order, paymentInstrument, paymentRequest) { var paymentResponse = {}; var errorMessage = ''; try { - var _paymentRequest$payme, _paymentRequest$payme2; var responseObject = AdyenHelper.executeCall(constants.SERVICE.PAYMENT, paymentRequest); // There is no order for zero auth transactions. // Return response directly to PaymentInstruments-SavePayment if (!order) { return responseObject; } - // set custom payment method field to sync with OMS. - // for card payments (scheme) we will store the brand - order.custom.Adyen_paymentMethod = (paymentRequest === null || paymentRequest === void 0 ? void 0 : (_paymentRequest$payme = paymentRequest.paymentMethod) === null || _paymentRequest$payme === void 0 ? void 0 : _paymentRequest$payme.brand) || (paymentRequest === null || paymentRequest === void 0 ? void 0 : (_paymentRequest$payme2 = paymentRequest.paymentMethod) === null || _paymentRequest$payme2 === void 0 ? void 0 : _paymentRequest$payme2.type); paymentResponse.fullResponse = responseObject; paymentResponse.redirectObject = responseObject.action ? responseObject.action : ''; paymentResponse.resultCode = responseObject.resultCode; @@ -117,10 +112,9 @@ function createPaymentRequest(args) { var paymentInstrument = args.PaymentInstrument; // Create request object with payment details - var paymentRequest = AdyenHelper.createAdyenRequestObject(order, paymentInstrument); - paymentRequest = AdyenHelper.add3DS2Data(paymentRequest); + var paymentRequest = AdyenHelper.createAdyenRequestObject(order.getOrderNo(), order.getOrderToken(), paymentInstrument); var paymentMethodType = paymentRequest.paymentMethod.type; - + paymentRequest = AdyenHelper.add3DS2Data(paymentRequest); // Add Risk data if (AdyenConfigs.getAdyenBasketFieldsEnabled()) { paymentRequest.additionalData = RiskDataHelper.createBasketContentFields(order); @@ -162,6 +156,7 @@ function createPaymentRequest(args) { // Create billing and delivery address objects for new orders, // no address fields for credit cards through My Account paymentRequest = AdyenHelper.createAddressObjects(order, paymentMethodType, paymentRequest); + // Create shopper data fields paymentRequest = AdyenHelper.createShopperObject({ order: order, @@ -209,7 +204,6 @@ function createPaymentRequest(args) { paymentRequest.recurringProcessingModel = constants.RECURRING_PROCESSING_MODEL.CARD_ON_FILE; } AdyenHelper.setPaymentTransactionType(paymentInstrument, paymentRequest.paymentMethod); - // make API call return doPaymentsCall(order, paymentInstrument, paymentRequest); } catch (e) { AdyenLogs.error_log("error processing payment. Error message: ".concat(e.message, " more details: ").concat(e.toString(), " in ").concat(e.fileName, ":").concat(e.lineNumber)); @@ -237,11 +231,15 @@ function doCancelPartialPaymentOrderCall(cancelOrderRequest) { function doCreatePartialPaymentOrderCall(partialPaymentRequest) { return AdyenHelper.executeCall(constants.SERVICE.PARTIALPAYMENTSORDER, partialPaymentRequest); } +function doPaypalUpdateOrderCall(paypalUpdateOrderRequest) { + return AdyenHelper.executeCall(constants.SERVICE.PAYPALUPDATEORDER, paypalUpdateOrderRequest); +} module.exports = { createPaymentRequest: createPaymentRequest, doPaymentsCall: doPaymentsCall, doPaymentsDetailsCall: doPaymentsDetailsCall, doCheckBalanceCall: doCheckBalanceCall, doCancelPartialPaymentOrderCall: doCancelPartialPaymentOrderCall, - doCreatePartialPaymentOrderCall: doCreatePartialPaymentOrderCall + doCreatePartialPaymentOrderCall: doCreatePartialPaymentOrderCall, + doPaypalUpdateOrderCall: doPaypalUpdateOrderCall }; \ No newline at end of file diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenZeroAuth.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenZeroAuth.js index eda8971fd..66584d9a5 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenZeroAuth.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenZeroAuth.js @@ -31,7 +31,7 @@ var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); var constants = require('*/cartridge/adyen/config/constants'); function zeroAuthPayment(customer, paymentInstrument) { try { - var zeroAuthRequest = AdyenHelper.createAdyenRequestObject(null, paymentInstrument); + var zeroAuthRequest = AdyenHelper.createAdyenRequestObject('recurringPayment-account', 'recurringPayment-token', paymentInstrument); zeroAuthRequest = AdyenHelper.add3DS2Data(zeroAuthRequest); zeroAuthRequest.amount = { currency: session.currency.currencyCode, diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods.js index e2badf6fb..d59c99e56 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/getCheckoutPaymentMethods.js @@ -3,6 +3,7 @@ var BasketMgr = require('dw/order/BasketMgr'); var Locale = require('dw/util/Locale'); var PaymentMgr = require('dw/order/PaymentMgr'); +var URLUtils = require('dw/web/URLUtils'); var AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); var adyenTerminalApi = require('*/cartridge/adyen/scripts/payments/adyenTerminalApi'); var paymentMethodDescriptions = require('*/cartridge/adyen/config/paymentMethodDescriptions'); @@ -10,13 +11,13 @@ var constants = require('*/cartridge/adyen/config/constants'); var getPaymentMethods = require('*/cartridge/adyen/scripts/payments/adyenGetPaymentMethods'); var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); function getCountryCode(currentBasket, locale) { - var _currentBasket$getShi; - var countryCode = Locale.getLocale(locale.id).country; - var firstItem = currentBasket === null || currentBasket === void 0 ? void 0 : (_currentBasket$getShi = currentBasket.getShipments()) === null || _currentBasket$getShi === void 0 ? void 0 : _currentBasket$getShi[0]; - if (firstItem !== null && firstItem !== void 0 && firstItem.shippingAddress) { - return firstItem.shippingAddress.getCountryCode().value; + var countryCode; + var _currentBasket$getDef = currentBasket.getDefaultShipment(), + shippingAddress = _currentBasket$getDef.shippingAddress; + if (shippingAddress) { + countryCode = shippingAddress.getCountryCode().value; } - return countryCode; + return countryCode || Locale.getLocale(locale.id).country; } function getConnectedTerminals() { if (PaymentMgr.getPaymentMethod(constants.METHOD_ADYEN_POS).isActive()) { @@ -27,7 +28,14 @@ function getConnectedTerminals() { function getCheckoutPaymentMethods(req, res, next) { try { var currentBasket = BasketMgr.getCurrentBasket(); - var countryCode = currentBasket.getShipments().length > 0 && currentBasket.getShipments()[0].shippingAddress ? currentBasket.getShipments()[0].shippingAddress.getCountryCode().value : getCountryCode(currentBasket, req.locale).value; + if (!currentBasket) { + res.json({ + error: true, + redirectUrl: URLUtils.url('Cart-Show').toString() + }); + return next(); + } + var countryCode = getCountryCode(currentBasket, req.locale); var adyenURL = "".concat(AdyenHelper.getLoadingContext(), "images/logos/medium/"); var connectedTerminals = JSON.parse(getConnectedTerminals()); var currency = currentBasket.getTotalGrossPrice().currencyCode; diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentsDetails.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentsDetails.js index f95d2d1b1..f0bbda7de 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentsDetails.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/paymentsDetails.js @@ -6,15 +6,15 @@ var Transaction = require('dw/system/Transaction'); var AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); var adyenCheckout = require('*/cartridge/adyen/scripts/payments/adyenCheckout'); var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); -function getSignature(paymentsDetailsResponse, orderToken) { +function getRedirectUrl(paymentsDetailsResponse, orderToken) { var order = OrderMgr.getOrder(paymentsDetailsResponse.merchantReference, orderToken); if (order) { var paymentInstruments = order.getPaymentInstruments(AdyenHelper.getOrderMainPaymentInstrumentType(order)); - var signature = AdyenHelper.createSignature(paymentInstruments[0], order.getUUID(), paymentsDetailsResponse.merchantReference); + var redirectUrl = AdyenHelper.createRedirectUrl(paymentInstruments[0], paymentsDetailsResponse.merchantReference, orderToken); Transaction.wrap(function () { paymentInstruments[0].paymentTransaction.custom.Adyen_authResult = JSON.stringify(paymentsDetailsResponse); }); - return signature; + return redirectUrl; } return undefined; } @@ -32,9 +32,8 @@ function paymentsDetails(req, res, next) { } var paymentsDetailsResponse = adyenCheckout.doPaymentsDetailsCall(request.data); var response = AdyenHelper.createAdyenCheckoutResponse(paymentsDetailsResponse); - // Create signature to verify returnUrl - var signature = getSignature(paymentsDetailsResponse, request.orderToken); + var redirectUrl = getRedirectUrl(paymentsDetailsResponse, request.orderToken); if (isAmazonpay) { response.fullResponse = { pspReference: paymentsDetailsResponse.pspReference, @@ -42,8 +41,8 @@ function paymentsDetails(req, res, next) { resultCode: paymentsDetailsResponse.resultCode }; } - if (signature !== null) { - response.redirectUrl = URLUtils.https('Adyen-ShowConfirmation', 'merchantReference', response.merchantReference, 'signature', signature, 'orderToken', request.orderToken).toString(); + if (redirectUrl) { + response.redirectUrl = redirectUrl; } res.json(response); return next(); diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent.js b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent.js index 8a40ceaae..e0689850c 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/showConfirmation/handlePaymentFromComponent.js @@ -44,14 +44,17 @@ function handleAuthorisedPayment(order, result, adyenPaymentInstrument, _ref2) { var fraudDetectionStatus = { status: 'success' }; + var isPayPalExpress = order.custom.Adyen_paypalExpressResponse; - // Places the order - var placeOrderResult = COHelpers.placeOrder(order, fraudDetectionStatus); - if (placeOrderResult.error) { - return handlePaymentError(order, adyenPaymentInstrument, { - res: res, - next: next - }); + // Places the order, for PayPal express the order is placed from makeExpressPaymentDetailsCall.js + if (!isPayPalExpress) { + var placeOrderResult = COHelpers.placeOrder(order, fraudDetectionStatus); + if (placeOrderResult.error) { + return handlePaymentError(order, adyenPaymentInstrument, { + res: res, + next: next + }); + } } Transaction.wrap(function () { AdyenHelper.savePaymentDetails(adyenPaymentInstrument, order, result); @@ -77,6 +80,10 @@ function handlePaymentResult(result, order, adyenPaymentInstrument, options) { Transaction.wrap(function () { order.custom.Adyen_pspReference = result.pspReference; order.custom.Adyen_eventCode = result.resultCode; + order.custom.Adyen_paypalExpressResponse = null; + adyenPaymentInstrument.custom.adyenPaymentData = null; + session.privacy.paypalExpressOrderNo = null; + session.privacy.pspReference = null; }); return handlePaymentError(order, adyenPaymentInstrument, options); } @@ -100,11 +107,14 @@ function handlePayment(stateData, order, options) { return handlePaymentError(order, adyenPaymentInstrument, options); } } - var detailsCall = hasStateData ? handlePaymentsDetailsCall(stateData, adyenPaymentInstrument) : null; - Transaction.wrap(function () { - adyenPaymentInstrument.custom.adyenPaymentData = null; - }); - finalResult = finalResult || (detailsCall === null || detailsCall === void 0 ? void 0 : detailsCall.result); + var paymentData = JSON.parse(adyenPaymentInstrument.custom.adyenPaymentData); + var isPayPalExpress = AdyenHelper.isPayPalExpress(paymentData.paymentMethod); + var detailsCall = hasStateData && !isPayPalExpress ? handlePaymentsDetailsCall(stateData, adyenPaymentInstrument) : null; + if (isPayPalExpress) { + finalResult = JSON.parse(order.custom.Adyen_paypalExpressResponse); + } else { + finalResult = finalResult || (detailsCall === null || detailsCall === void 0 ? void 0 : detailsCall.result); + } return handlePaymentResult(finalResult, order, adyenPaymentInstrument, options); } module.exports = handlePayment; \ No newline at end of file diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenConfigs.js b/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenConfigs.js index b2252a3e3..e2ad29b90 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenConfigs.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenConfigs.js @@ -112,6 +112,12 @@ var adyenConfigsObj = { isAmazonPayExpressEnabled: function isAmazonPayExpressEnabled() { return getCustomPreference('AmazonPayExpress_Enabled'); }, + isPayPalExpressEnabled: function isPayPalExpressEnabled() { + return getCustomPreference('PayPalExpress_Enabled'); + }, + isPayPalExpressReviewPageEnabled: function isPayPalExpressReviewPageEnabled() { + return getCustomPreference('PayPalExpress_ReviewPage_Enabled'); + }, getExpressPaymentsOrder: function getExpressPaymentsOrder() { return getCustomPreference('ExpressPayments_order'); }, diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js b/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js index 57c350e92..5ed776a8a 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/utils/adyenHelper.js @@ -24,26 +24,27 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e * This file is open source and available under the MIT license. * See the LICENSE file for more info. */ -var dwsvc = require('dw/svc'); -var dwsystem = require('dw/system'); -var dwutil = require('dw/util'); +var LocalServiceRegistry = require('dw/svc/LocalServiceRegistry'); +var Currency = require('dw/util/Currency'); var URLUtils = require('dw/web/URLUtils'); var Bytes = require('dw/util/Bytes'); var MessageDigest = require('dw/crypto/MessageDigest'); var Encoding = require('dw/crypto/Encoding'); var CustomerMgr = require('dw/customer/CustomerMgr'); -var constants = require('*/cartridge/adyen/config/constants'); -var AdyenConfigs = require('*/cartridge/adyen/utils/adyenConfigs'); var Transaction = require('dw/system/Transaction'); var UUIDUtils = require('dw/util/UUIDUtils'); -var collections = require('*/cartridge/scripts/util/collections'); var ShippingMgr = require('dw/order/ShippingMgr'); -var ShippingMethodModel = require('*/cartridge/models/shipping/shippingMethod'); var PaymentInstrument = require('dw/order/PaymentInstrument'); var StringUtils = require('dw/util/StringUtils'); +var Money = require('dw/value/Money'); +var TaxMgr = require('dw/order/TaxMgr'); +var ShippingLocation = require('dw/order/ShippingLocation'); //script includes +var ShippingMethodModel = require('*/cartridge/models/shipping/shippingMethod'); +var collections = require('*/cartridge/scripts/util/collections'); +var constants = require('*/cartridge/adyen/config/constants'); +var AdyenConfigs = require('*/cartridge/adyen/utils/adyenConfigs'); var AdyenLogs = require('*/cartridge/adyen/logs/adyenCustomLogs'); -var BasketMgr = require('dw/order/BasketMgr'); /* eslint no-var: off */ var adyenHelperObj = { @@ -51,7 +52,7 @@ var adyenHelperObj = { getService: function getService(service) { var adyenService = null; try { - adyenService = dwsvc.LocalServiceRegistry.createService(service, { + adyenService = LocalServiceRegistry.createService(service, { createRequest: function createRequest(svc, args) { svc.setRequestMethod('POST'); if (args) { @@ -81,14 +82,46 @@ var adyenHelperObj = { } return null; }, + /** + * Returns shippingCost including taxes for a specific Shipment / ShippingMethod pair including the product level shipping cost if any + * @param {dw.order.ShippingMethod} shippingMethod - the default shipment of the current basket + * @param {dw.order.Shipment} shipment - a shipment of the current basket + * @returns {{currencyCode: String, value: String}} - Shipping Cost including taxes + */ getShippingCost: function getShippingCost(shippingMethod, shipment) { + var shippingAddress = shipment.shippingAddress; var shipmentShippingModel = ShippingMgr.getShipmentShippingModel(shipment); - var shippingCost = shipmentShippingModel.getShippingCost(shippingMethod); + var shippingCost = shipmentShippingModel.getShippingCost(shippingMethod).getAmount(); + collections.forEach(shipment.getProductLineItems(), function (lineItem) { + var product = lineItem.getProduct(); + var productQuantity = lineItem.getQuantity(); + var productShippingModel = ShippingMgr.getProductShippingModel(product); + var productShippingCost = productShippingModel.getShippingCost(shippingMethod) ? productShippingModel.getShippingCost(shippingMethod).getAmount().multiply(productQuantity) : new Money(0, product.getPriceModel().getPrice().getCurrencyCode()); + shippingCost = shippingCost.add(productShippingCost); + }); + shippingCost = shippingAddress ? shippingCost.addRate(adyenHelperObj.getShippingTaxRate(shippingMethod, shippingAddress)) : shippingCost; return { - value: shippingCost.amount.value, - currencyCode: shippingCost.amount.currencyCode + value: shippingCost.getValue(), + currencyCode: shippingCost.getCurrencyCode() }; }, + /** + * Returns tax rate for specific Shipment / ShippingMethod pair. + * @param {dw.order.ShippingMethod} shippingMethod - the default shipment of the current basket + * @param {dw.order.shippingAddress} shippingAddress - shippingAddress for the default shipment + * @returns {Number} - tax rate in decimals.(eg.: 0.02 for 2%) + */ + getShippingTaxRate: function getShippingTaxRate(shippingMethod, shippingAddress) { + var taxClassID = shippingMethod.getTaxClassID(); + var taxJurisdictionID = TaxMgr.getTaxJurisdictionID(new ShippingLocation(shippingAddress)); + return TaxMgr.getTaxRate(taxClassID, taxJurisdictionID); + }, + /** + * Returns applicable shipping methods for specific Shipment / ShippingAddress pair. + * @param {dw.order.OrderAddress} address - the shipping address of the default shipment of the current basket + * @param {dw.order.Shipment} shipment - a shipment of the current basket + * @returns {dw.util.ArrayList | null} - list of applicable shipping methods or null + */ getShippingMethods: function getShippingMethods(shipment, address) { if (!shipment) return null; var shipmentShippingModel = ShippingMgr.getShipmentShippingModel(shipment); @@ -100,13 +133,33 @@ var adyenHelperObj = { } return shippingMethods; }, + /** + * Returns shipment UUID for the shipment. + * @param {dw.order.Shipment} shipment - a shipment of the current basket + * @returns {String | null} - shipment UUID or null + */ getShipmentUUID: function getShipmentUUID(shipment) { if (!shipment) return null; return shipment.UUID; }, + /** + * @typedef {object} ApplicableShippingMethodModel + * @property {string|null} ID + * @property {string|null} displayName + * @property {string|null} estimatedArrivalTime + * @property {boolean|null} default + * @property {boolean|null} [selected] + * @property {{currencyCode: String, value: String}} shippingCost + * @property {string|null} shipmentUUID + */ + /** + * Returns applicable shipping methods(excluding store pickup methods) for specific Shipment / ShippingAddress pair. + * @param {dw.order.OrderAddress} address - the shipping address of the default shipment of the current basket + * @param {dw.order.Shipment} shipment - a shipment of the current basket + * @returns {dw.util.ArrayList | null} - list of applicable shipping methods or null + */ getApplicableShippingMethods: function getApplicableShippingMethods(shipment, address) { - var _this = this; - var shippingMethods = this.getShippingMethods(shipment, address); + var shippingMethods = adyenHelperObj.getShippingMethods(shipment, address); if (!shippingMethods) { return null; } @@ -116,8 +169,8 @@ var adyenHelperObj = { collections.forEach(shippingMethods, function (shippingMethod) { if (!shippingMethod.custom.storePickupEnabled) { var shippingMethodModel = new ShippingMethodModel(shippingMethod, shipment); - var shippingCost = _this.getShippingCost(shippingMethod, shipment); - var shipmentUUID = _this.getShipmentUUID(shipment); + var shippingCost = adyenHelperObj.getShippingCost(shippingMethod, shipment); + var shipmentUUID = adyenHelperObj.getShipmentUUID(shipment); filteredMethods.push(_objectSpread(_objectSpread({}, shippingMethodModel), {}, { shippingCost: shippingCost, shipmentUUID: shipmentUUID @@ -126,22 +179,6 @@ var adyenHelperObj = { }); return filteredMethods; }, - callGetShippingMethods: function callGetShippingMethods(shippingAddress) { - var address; - try { - address = { - city: shippingAddress.city, - countryCode: shippingAddress.countryCode, - stateCode: shippingAddress.stateOrRegion - }; - var currentBasket = BasketMgr.getCurrentBasket(); - var currentShippingMethodsModels = this.getApplicableShippingMethods(currentBasket.getDefaultShipment(), address); - return currentShippingMethodsModels; - } catch (error) { - AdyenLogs.error_log('Failed to fetch shipping methods'); - AdyenLogs.error_log(error); - } - }, getAdyenGivingConfig: function getAdyenGivingConfig(order) { if (!order.getPaymentInstruments(adyenHelperObj.getOrderMainPaymentInstrumentType(order)).length) { return null; @@ -254,10 +291,9 @@ var adyenHelperObj = { } return returnValue; }, - // determines whether Adyen Giving is available based on the donation token + // determines whether Adyen Giving is available based on the donation token isAdyenGivingAvailable: function isAdyenGivingAvailable(paymentInstrument) { - // Adyen giving is only available for BCMC in POS - return paymentInstrument.paymentTransaction.custom.Adyen_donationToken && paymentInstrument.paymentTransaction.custom.Adyen_paymentMethod !== 'bcmc'; + return paymentInstrument.paymentTransaction.custom.Adyen_donationToken; }, // gets the ID for ratePay using the custom preference and the encoded session ID getRatePayID: function getRatePayID() { @@ -283,6 +319,12 @@ var adyenHelperObj = { } return false; }, + isPayPalExpress: function isPayPalExpress(paymentMethod) { + if (paymentMethod.type === 'paypal' && paymentMethod.subtype === 'express') { + return true; + } + return false; + }, // Get stored card token of customer saved card based on matched cardUUID getCardToken: function getCardToken(cardUUID, customer) { var token = ''; @@ -394,22 +436,11 @@ var adyenHelperObj = { return paymentRequest; }, // creates a request object to send to the Adyen Checkout API - createAdyenRequestObject: function createAdyenRequestObject(order, paymentInstrument) { + createAdyenRequestObject: function createAdyenRequestObject(orderNo, orderToken, paymentInstrument) { var _stateData$paymentMet; var jsonObject = JSON.parse(paymentInstrument.custom.adyenPaymentData); var filteredJson = adyenHelperObj.validateStateData(jsonObject); var stateData = filteredJson.stateData; - var reference = 'recurringPayment-account'; - var orderToken = 'recurringPayment-token'; - if (order && order.getOrderNo()) { - reference = order.getOrderNo(); - orderToken = order.getOrderToken(); - } - var signature = ''; - //Create signature to verify returnUrl if there is an order - if (order && order.getUUID()) { - signature = adyenHelperObj.createSignature(paymentInstrument, order.getUUID(), reference); - } // Add recurringProcessingModel in case shopper wants to save the card from checkout if (stateData.storePaymentMethod) { @@ -422,12 +453,19 @@ var adyenHelperObj = { stateData.shopperInteraction = constants.SHOPPER_INTERACTIONS.ECOMMERCE; } stateData.merchantAccount = AdyenConfigs.getAdyenMerchantAccount(); - stateData.reference = reference; - stateData.returnUrl = URLUtils.https('Adyen-ShowConfirmation', 'merchantReference', reference, 'signature', signature, 'orderToken', orderToken).toString(); + stateData.reference = orderNo; + stateData.returnUrl = adyenHelperObj.createRedirectUrl(paymentInstrument, orderNo, orderToken); stateData.applicationInfo = adyenHelperObj.getApplicationInfo(); stateData.additionalData = {}; return stateData; }, + /** + * Returns unique hashed signature. + * @param {dw.order.OrderPaymentInstrument} paymentInstrument - paymentInstrument for the current order or current basket. + * @param {String} value - UUID to be hashed for creating signature. + * @param {String} salt - order number for the current order or from createOrderNo() used as Salt for hash. + * @returns {String} - returns hashed signature. + */ createSignature: function createSignature(paymentInstrument, value, salt) { var newSignature = adyenHelperObj.getAdyenHash(value, salt); Transaction.wrap(function () { @@ -435,6 +473,20 @@ var adyenHelperObj = { }); return newSignature; }, + /** + * Returns redirectURL with 'Adyen-ShowConfirmation' route and query params . + * @param {dw.order.OrderPaymentInstrument} paymentInstrument - paymentInstrument for the current order or current basket + * @param {String} orderNo - order number for the current order or from createOrderNo() + * @param {String} [orderToken] - orderToken for current order if order exists + * @returns {String} - returns String representation of the redirectURL + */ + createRedirectUrl: function createRedirectUrl(paymentInstrument, orderNo, orderToken) { + if (!(paymentInstrument instanceof dw.order.OrderPaymentInstrument)) { + return null; + } + var signature = adyenHelperObj.createSignature(paymentInstrument, UUIDUtils.createUUID(), orderNo); + return URLUtils.https('Adyen-ShowConfirmation', 'merchantReference', orderNo, 'signature', signature, 'orderToken', orderToken).toString(); + }, // adds 3DS2 fields to an Adyen Checkout payments Request add3DS2Data: function add3DS2Data(jsonObject) { jsonObject.authenticationData = { @@ -456,6 +508,9 @@ var adyenHelperObj = { case 'amazonpay': methodName = 'Amazon Pay'; break; + case 'paypal': + methodName = 'PayPal'; + break; default: methodName = paymentMethod; } @@ -527,14 +582,17 @@ var adyenHelperObj = { throw new Error('cardType argument is not passed to getSfccCardType function'); }, // saves the payment details in the paymentInstrument's custom object + // set custom payment method field to sync with OMS savePaymentDetails: function savePaymentDetails(paymentInstrument, order, result) { var _result$additionalDat, _result$fullResponse; paymentInstrument.paymentTransaction.transactionID = result.pspReference; paymentInstrument.paymentTransaction.custom.Adyen_pspReference = result.pspReference; if ((_result$additionalDat = result.additionalData) !== null && _result$additionalDat !== void 0 && _result$additionalDat.paymentMethod) { paymentInstrument.paymentTransaction.custom.Adyen_paymentMethod = result.additionalData.paymentMethod; + order.custom.Adyen_paymentMethod = result.additionalData.paymentMethod; } else if (result.paymentMethod) { paymentInstrument.paymentTransaction.custom.Adyen_paymentMethod = JSON.stringify(result.paymentMethod.type); + order.custom.Adyen_paymentMethod = JSON.stringify(result.paymentMethod.type); } // For authenticated shoppers we are setting the token on other place already @@ -557,7 +615,7 @@ var adyenHelperObj = { }, // converts the currency value for the Adyen Checkout API getCurrencyValueForApi: function getCurrencyValueForApi(amount) { - var currencyCode = dwutil.Currency.getCurrency(amount.currencyCode) || session.currency.currencyCode; + var currencyCode = Currency.getCurrency(amount.currencyCode) || session.currency.currencyCode; var digitsNumber = adyenHelperObj.getFractionDigits(currencyCode.toString()); var value = Math.round(amount.multiply(Math.pow(10, digitsNumber)).value); // eslint-disable-line no-restricted-properties return new dw.value.Money(value, currencyCode); diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/utils/paypalHelper.js b/cartridges/int_adyen_SFRA/cartridge/adyen/utils/paypalHelper.js new file mode 100644 index 000000000..2003a77ff --- /dev/null +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/utils/paypalHelper.js @@ -0,0 +1,160 @@ +"use strict"; + +/** + * ###### + * ###### + * ############ ####( ###### #####. ###### ############ ############ + * ############# #####( ###### #####. ###### ############# ############# + * ###### #####( ###### #####. ###### ##### ###### ##### ###### + * ###### ###### #####( ###### #####. ###### ##### ##### ##### ###### + * ###### ###### #####( ###### #####. ###### ##### ##### ###### + * ############# ############# ############# ############# ##### ###### + * ############ ############ ############# ############ ##### ###### + * ###### + * ############# + * ############ + * Adyen Salesforce Commerce Cloud + * Copyright (c) 2021 Adyen B.V. + * This file is open source and available under the MIT license. + * See the LICENSE file for more info. + * + * Add all product and shipping line items to request + */ +var Money = require('dw/value/Money'); +var Transaction = require('dw/system/Transaction'); +var LineItemHelper = require('*/cartridge/adyen/utils/lineItemHelper'); +var AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); +var PAYPAL_ITEM_CATEGORY = ['PHYSICAL_GOODS', 'DIGITAL_GOODS', 'DONATION']; +function getLineItems(_ref) { + var order = _ref.Order, + basket = _ref.Basket; + if (!(order || basket)) return null; + var orderOrBasket = order || basket; + var allLineItems = LineItemHelper.getAllLineItems(orderOrBasket.getAllLineItems()); + return allLineItems.map(function (lineItem) { + var lineItemObject = {}; + var description = LineItemHelper.getDescription(lineItem); + var id = LineItemHelper.getId(lineItem); + var quantity = LineItemHelper.getQuantity(lineItem); + var itemAmount = LineItemHelper.getItemAmount(lineItem).divide(quantity); + var vatAmount = LineItemHelper.getVatAmount(lineItem).divide(quantity); + // eslint-disable-next-line + if (lineItem.hasOwnProperty('category')) { + if (PAYPAL_ITEM_CATEGORY.indexOf(lineItem.category) > -1) { + lineItemObject.itemCategory = lineItem.category; + } + } + lineItemObject.quantity = quantity; + lineItemObject.description = description; + lineItemObject.sku = id; + lineItemObject.amountExcludingTax = itemAmount.getValue().toFixed(); + lineItemObject.taxAmount = vatAmount.getValue().toFixed(); + return lineItemObject; + }); +} + +/** + * @typedef {object} paypalShippingOption + * @property {string} reference - shipping method id + * @property {string} description - shipping method displayName + * @property {('Shipping')} type + * @property {{currencyCode: String, value: String}} amount + * - shipping cost for shipping method including tax + * @property {boolean} selected - - shipping method is selected + */ + +/** + * @typedef {object} paypalUpdateOrderRequest + * @property {String} pspReference - the pspReference returned from adyen /payments endpoint + * @property {String} paymentData - encrypted payment data from paypal component + * @property {{currencyCode: String, value: String}} amount + * - adjustedMerchandizeTotalGrossPrice + adjustedShippingTotalGrossPrice + * @property {dw.util.ArrayList} deliveryMethods + * - list of paypalShippingOption + */ + +/** + * Returns applicable shipping methods(excluding store pickup methods) + * for specific Shipment / ShippingAddress pair. + * @param {String} pspReference - the pspReference returned from adyen /payments endpoint + * @param {dw.order.basket} amount - a shipment of the current basket + * @param {dw.util.ArrayList} currentShippingMethods + * - a shipment of the current basket + * @param {String} paymentData - encrypted payment data from paypal component + * @returns {paypalUpdateOrderRequest} - list of applicable shipping methods or null + */ +function createPaypalUpdateOrderRequest(pspReference, currentBasket, currentShippingMethods, paymentData) { + var adjustedShippingTotalGrossPrice = { + currency: currentBasket.currencyCode, + value: AdyenHelper.getCurrencyValueForApi(currentBasket.getAdjustedShippingTotalGrossPrice()).value + }; + var adjustedMerchandizeTotalGrossPrice = { + currency: currentBasket.currencyCode, + value: AdyenHelper.getCurrencyValueForApi(currentBasket.getAdjustedMerchandizeTotalGrossPrice()).value + adjustedShippingTotalGrossPrice.value + }; + var deliveryMethods = currentShippingMethods.map(function (shippingMethod) { + var _shippingMethod$shipp = shippingMethod.shippingCost, + currencyCode = _shippingMethod$shipp.currencyCode, + value = _shippingMethod$shipp.value; + return { + reference: shippingMethod.ID, + description: shippingMethod.displayName, + type: 'Shipping', + amount: { + currency: currencyCode, + value: AdyenHelper.getCurrencyValueForApi(new Money(value, currencyCode)).value + }, + selected: shippingMethod.selected + }; + }); + return { + pspReference: pspReference, + paymentData: paymentData, + amount: adjustedMerchandizeTotalGrossPrice, + deliveryMethods: deliveryMethods + }; +} + +/** + * sets Shipping and Billing address for the basket + * @param {dw.order.Basket} currentBasket - the current basket + * @returns {undefined} + */ +function setBillingAndShippingAddress(currentBasket) { + var billingAddress = currentBasket.billingAddress; + var _currentBasket$getDef = currentBasket.getDefaultShipment(), + shippingAddress = _currentBasket$getDef.shippingAddress; + Transaction.wrap(function () { + if (!shippingAddress) { + shippingAddress = currentBasket.getDefaultShipment().createShippingAddress(); + } + if (!billingAddress) { + billingAddress = currentBasket.createBillingAddress(); + } + }); + var shopperDetails = JSON.parse(session.privacy.shopperDetails); + Transaction.wrap(function () { + billingAddress.setFirstName(shopperDetails.shopperName.firstName); + billingAddress.setLastName(shopperDetails.shopperName.lastName); + billingAddress.setAddress1(shopperDetails.billingAddress.street); + billingAddress.setCity(shopperDetails.billingAddress.city); + billingAddress.setPhone(shopperDetails.telephoneNumber); + billingAddress.setPostalCode(shopperDetails.billingAddress.postalCode); + billingAddress.setStateCode(shopperDetails.billingAddress.stateOrProvince); + billingAddress.setCountryCode(shopperDetails.billingAddress.country); + shippingAddress.setFirstName(shopperDetails.shopperName.firstName); + shippingAddress.setLastName(shopperDetails.shopperName.lastName); + shippingAddress.setAddress1(shopperDetails.shippingAddress.street); + shippingAddress.setCity(shopperDetails.shippingAddress.city); + shippingAddress.setPhone(shopperDetails.telephoneNumber); + shippingAddress.setPostalCode(shopperDetails.shippingAddress.postalCode); + shippingAddress.setStateCode(shopperDetails.shippingAddress.stateOrProvince); + shippingAddress.setCountryCode(shopperDetails.shippingAddress.country); + currentBasket.setCustomerEmail(shopperDetails.shopperEmail); + }); +} +module.exports = { + createPaypalUpdateOrderRequest: createPaypalUpdateOrderRequest, + getLineItems: getLineItems, + setBillingAndShippingAddress: setBillingAndShippingAddress +}; \ No newline at end of file diff --git a/cartridges/int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper.js b/cartridges/int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper.js index a8051ce03..c0aa1100b 100644 --- a/cartridges/int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper.js +++ b/cartridges/int_adyen_SFRA/cartridge/adyen/utils/riskDataHelper.js @@ -37,7 +37,7 @@ var __RiskDataHelper = { basketData["riskdata.basket.item".concat(itemNr, ".upc")] = item.product ? item.product.UPC : ''; basketData["riskdata.basket.item".concat(itemNr, ".sku")] = item.product ? item.product.manufacturerSKU : ''; basketData["riskdata.basket.item".concat(itemNr, ".brand")] = item.product ? item.product.brand : ''; - basketData["riskdata.basket.item".concat(itemNr, ".manufacturerName")] = item.product ? item.product.manufacturerName : ''; + basketData["riskdata.basket.item".concat(itemNr, ".manufacturer")] = item.product ? item.product.manufacturerName : ''; basketData["riskdata.basket.item".concat(itemNr, ".category")] = item.product && item.product.primaryCategory ? item.product.primaryCategory.displayName : ''; basketData["riskdata.basket.item".concat(itemNr, ".quantity")] = quantity; itemNr++; diff --git a/cartridges/int_adyen_SFRA/cartridge/controllers/Adyen.js b/cartridges/int_adyen_SFRA/cartridge/controllers/Adyen.js index e668406dd..676897219 100644 --- a/cartridges/int_adyen_SFRA/cartridge/controllers/Adyen.js +++ b/cartridges/int_adyen_SFRA/cartridge/controllers/Adyen.js @@ -16,7 +16,16 @@ server.get('ShowConfirmation', server.middleware.https, adyen.showConfirmation); * Confirm payment status after receiving redirectResult from Adyen */ server.post('PaymentsDetails', server.middleware.https, consentTracking.consent, adyen.paymentsDetails); -server.get('ShippingMethods', server.middleware.https, adyen.callGetShippingMethods); + +/** + * Save shipping address to currentBasket and + * get applicable shipping methods from an Express component in the SFCC session + */ +server.post('ShippingMethods', server.middleware.https, adyen.callGetShippingMethods); + +/** + * Save selected shipping method to currentBasket from an Express component in the SFCC session + */ server.post('SelectShippingMethod', server.middleware.https, adyen.callSelectShippingMethod); /** @@ -55,6 +64,11 @@ server.post('PaymentFromComponent', server.middleware.https, adyen.paymentFromCo server.post('SaveExpressShopperDetails', server.middleware.https, adyen.saveExpressShopperDetails); server.get('GetPaymentMethods', server.middleware.https, adyen.getCheckoutPaymentMethods); +/** + * Show the review page template. + */ +server.post('CheckoutReview', server.middleware.https, adyen.handleCheckoutReview); + /** * Called by Adyen to update status of payments. It should always display [accepted] when finished. */ @@ -80,6 +94,20 @@ server.post('PartialPaymentsOrder', server.middleware.https, adyen.partialPaymen */ server.post('partialPayment', server.middleware.https, adyen.partialPayment); +/** + * Called by Adyen to make /payments call for PayPal Express flow + */ +server.post('MakeExpressPaymentsCall', server.middleware.https, adyen.makeExpressPaymentsCall); + +/** + * Called by Adyen to make /paymentsDetails for PayPal Express flow + */ +server.post('MakeExpressPaymentDetailsCall', server.middleware.https, adyen.makeExpressPaymentDetailsCall); + +/** + * Called by Adyen to save the shopper data coming from PayPal Express + */ +server.post('SaveShopperData', server.middleware.https, adyen.saveShopperData); /** * Called by Adyen to fetch applied giftcards */ From a1a08f60840337efd90e772a19673de3bfb431a4 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 23 Jul 2024 08:54:33 +0000 Subject: [PATCH 17/17] chore: committing the project files --- cartridges/app_adyen_SFRA/.project | 2 +- cartridges/bm_adyen/.project | 2 +- cartridges/int_adyen_SFRA/.project | 2 +- cartridges/int_custom_cartridge/.project | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cartridges/app_adyen_SFRA/.project b/cartridges/app_adyen_SFRA/.project index 8f854dbed..e15f5633f 100644 --- a/cartridges/app_adyen_SFRA/.project +++ b/cartridges/app_adyen_SFRA/.project @@ -1,7 +1,7 @@ app_adyen_SFRA - v24.2.1 + v24.3.0 diff --git a/cartridges/bm_adyen/.project b/cartridges/bm_adyen/.project index 1075d9832..f9a0ed99f 100644 --- a/cartridges/bm_adyen/.project +++ b/cartridges/bm_adyen/.project @@ -1,7 +1,7 @@ bm_adyen - v24.2.1 + v24.3.0 diff --git a/cartridges/int_adyen_SFRA/.project b/cartridges/int_adyen_SFRA/.project index 57b68f17d..f5ed18ecf 100644 --- a/cartridges/int_adyen_SFRA/.project +++ b/cartridges/int_adyen_SFRA/.project @@ -1,7 +1,7 @@ int_adyen_SFRA - v24.2.1 + v24.3.0 diff --git a/cartridges/int_custom_cartridge/.project b/cartridges/int_custom_cartridge/.project index 8b96d4963..50dba4cae 100644 --- a/cartridges/int_custom_cartridge/.project +++ b/cartridges/int_custom_cartridge/.project @@ -1,7 +1,7 @@ int_custom_cartridge - v24.2.1 + v24.3.0

Gtd%xQ!kJ*xkFTmW5_(8Q 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�lQ1o2Sn4u}&yx7A@^$#QtqN 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%0A<(ahZnW z%TagiUx^ePJ`8JKTp7)%P1bQ{5-X_ox&s@T9X%RfhwjV81Yv)>jsqf4XnNZG;e8%| z2g?%38uEH1VyN|tfxIP!z1e7cnrBa6c$*4e9H>e!bp`wMLvw1KS{H6W_dE24yqLZn zybKDm`WU2q0lnn}!~HIx%l*u5Zg=MjCjR*5XXX(W*=0&aVZ6)-jS^RH;*xQ)G=WUO zS2V8XrINjF?>l@{od&1xesSq;R}zPD+QGKe#aq)w)O*L@JB{Cc-!*Y|6lb{)9~2Ff71EAxb!6=d=&1I_9trCA1^pt>f?|IgDZA9p>x#ia zK|YDj!K^8Fm$`TlNzc!|$ovIwou}w?jxAs*Js!zRc0TsJgXHkNn-Qm+SV}oy@NJWp zYTeXnDUpvI*+5BkpN!VA!}_@Q%&FMH?Z;#viF0dokqAqhbJyDWwIUJg33rR^?q>>q za%x9=h{{PF?%vdI>k87KMbjEXQS*LK#X T%GW+vzrqJ7x77ejypl7C-?KKh_OhV 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�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

7pv4gavW%0^aTE})aD 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

ZC@!!^? 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 E57j4>_W%F@ literal 0 HcmV?d00001 diff --git a/documentation/diagrams/webhooks-flow.png b/documentation/diagrams/webhooks-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..746b295fe41940ec9df66452fbbad846aff1623e GIT binary patch literal 1159237 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 z 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 F`5)EdigDW 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